From 8a52b672bf0498b533a04bc462d6541a3ea35829 Mon Sep 17 00:00:00 2001 From: timlyeee <43355299+timlyeee@users.noreply.github.com> Date: Fri, 16 Jul 2021 11:12:25 +0800 Subject: [PATCH] Update websocket libs and so on (#161) * version of lib websocket has been return to old version 2.4.2 * freetype lib has been confirmed as static lib * delete unused librarys ( webpdecoder.dll, vorbisenc.dll etc ) * rename uv dir as the old version. --- ChangeLog.md | 133 + versions.txt | 27 +- win64/CMakeLists.txt | 3 +- win64/include/freetype/config/ftconfig.h | 477 +- win64/include/freetype/config/ftheader.h | 614 +- win64/include/freetype/config/ftmodule.h | 14 +- win64/include/freetype/config/ftoption.h | 1393 ++-- win64/include/freetype/config/ftstdlib.h | 169 +- win64/include/freetype/config/integer-types.h | 245 - win64/include/freetype/config/mac-support.h | 49 - win64/include/freetype/config/public-macros.h | 120 - win64/include/freetype/freetype.h | 6725 ++++++++--------- win64/include/freetype/ft2build.h | 66 +- win64/include/freetype/ftadvanc.h | 251 +- win64/include/freetype/ftautoh.h | 402 + win64/include/freetype/ftbbox.h | 130 +- win64/include/freetype/ftbdf.h | 250 +- win64/include/freetype/ftbitmap.h | 447 +- win64/include/freetype/ftbzip2.h | 150 +- win64/include/freetype/ftcache.h | 1218 ++- win64/include/freetype/ftcffdrv.h | 262 + win64/include/freetype/ftchapters.h | 242 +- win64/include/freetype/ftcid.h | 112 +- win64/include/freetype/ftcolor.h | 313 - win64/include/freetype/ftdriver.h | 1227 --- win64/include/freetype/fterrdef.h | 84 +- win64/include/freetype/fterrors.h | 264 +- win64/include/freetype/ftfntfmt.h | 93 - win64/include/freetype/ftgasp.h | 96 +- win64/include/freetype/ftglyph.h | 991 ++- win64/include/freetype/ftgxval.h | 503 +- win64/include/freetype/ftgzip.h | 229 +- win64/include/freetype/ftimage.h | 1791 +++-- win64/include/freetype/ftincrem.h | 161 +- win64/include/freetype/ftlcdfil.h | 307 +- win64/include/freetype/ftlist.h | 422 +- win64/include/freetype/ftlzw.h | 147 +- win64/include/freetype/ftmac.h | 415 +- win64/include/freetype/ftmm.h | 919 +-- win64/include/freetype/ftmodapi.h | 937 +-- win64/include/freetype/ftmoderr.h | 193 +- win64/include/freetype/ftotval.h | 316 +- win64/include/freetype/ftoutln.h | 932 ++- win64/include/freetype/ftparams.h | 203 - win64/include/freetype/ftpfr.h | 263 +- win64/include/freetype/ftrender.h | 233 +- win64/include/freetype/ftsizes.h | 240 +- win64/include/freetype/ftsnames.h | 352 +- win64/include/freetype/ftstroke.h | 444 +- win64/include/freetype/ftsynth.h | 53 +- win64/include/freetype/ftsystem.h | 143 +- win64/include/freetype/fttrigon.h | 92 +- win64/include/freetype/ftttdrv.h | 170 + win64/include/freetype/fttypes.h | 859 ++- win64/include/freetype/ftwinfnt.h | 173 +- win64/include/freetype/ftxf86.h | 84 + win64/include/freetype/internal/autohint.h | 244 + win64/include/freetype/internal/ftcalc.h | 406 + win64/include/freetype/internal/ftdebug.h | 255 + win64/include/freetype/internal/ftdriver.h | 409 + win64/include/freetype/internal/ftgloadr.h | 170 + win64/include/freetype/internal/ftmemory.h | 378 + win64/include/freetype/internal/ftobjs.h | 1571 ++++ win64/include/freetype/internal/ftpic.h | 71 + win64/include/freetype/internal/ftrfork.h | 266 + win64/include/freetype/internal/ftserv.h | 763 ++ win64/include/freetype/internal/ftstream.h | 536 ++ win64/include/freetype/internal/fttrace.h | 154 + win64/include/freetype/internal/ftvalid.h | 159 + win64/include/freetype/internal/internal.h | 63 + win64/include/freetype/internal/psaux.h | 877 +++ win64/include/freetype/internal/pshints.h | 722 ++ .../freetype/internal/services/svbdf.h | 82 + .../freetype/internal/services/svcid.h | 89 + .../freetype/internal/services/svgldict.h | 88 + .../freetype/internal/services/svgxval.h | 72 + .../freetype/internal/services/svkern.h | 51 + .../include/freetype/internal/services/svmm.h | 113 + .../freetype/internal/services/svotval.h | 55 + .../freetype/internal/services/svpfr.h | 66 + .../freetype/internal/services/svpostnm.h | 81 + .../freetype/internal/services/svprop.h | 81 + .../freetype/internal/services/svpscmap.h | 177 + .../freetype/internal/services/svpsinfo.h | 111 + .../freetype/internal/services/svsfnt.h | 103 + .../freetype/internal/services/svttcmap.h | 107 + .../freetype/internal/services/svtteng.h | 53 + .../freetype/internal/services/svttglyf.h | 68 + .../freetype/internal/services/svwinfnt.h | 50 + .../freetype/internal/services/svxf86nm.h | 55 + win64/include/freetype/internal/sfnt.h | 711 ++ win64/include/freetype/internal/t1types.h | 255 + win64/include/freetype/internal/tttypes.h | 1516 ++++ win64/include/freetype/t1tables.h | 625 +- win64/include/freetype/ttnameid.h | 740 +- win64/include/freetype/tttables.h | 1142 ++- win64/include/freetype/tttags.h | 54 +- win64/include/freetype/ttunpat.h | 60 + win64/include/gles/GL.h | 1534 ---- win64/include/gles/GLU.h | 591 -- win64/include/gles/eglew.h | 2618 +++++++ win64/include/{libuv => uv}/uv.h | 0 win64/include/{libuv => uv}/uv/aix.h | 0 .../{libuv => uv}/uv/android-ifaddrs.h | 0 win64/include/{libuv => uv}/uv/bsd.h | 0 win64/include/{libuv => uv}/uv/darwin.h | 0 win64/include/{libuv => uv}/uv/errno.h | 0 win64/include/{libuv => uv}/uv/linux.h | 0 win64/include/{libuv => uv}/uv/os390.h | 0 win64/include/{libuv => uv}/uv/posix.h | 0 .../{libuv => uv}/uv/stdint-msvc2008.h | 0 win64/include/{libuv => uv}/uv/sunos.h | 0 win64/include/{libuv => uv}/uv/threadpool.h | 0 win64/include/{libuv => uv}/uv/tree.h | 0 win64/include/{libuv => uv}/uv/unix.h | 0 win64/include/{libuv => uv}/uv/version.h | 0 win64/include/{libuv => uv}/uv/win.h | 0 win64/include/webp/config.h.in | 149 + win64/include/webp/decode.h | 2 +- win64/include/webp/encode.h | 8 +- win64/include/webp/format_constants.h | 87 + win64/include/websockets/libwebsockets.h | 5858 +++++++++++++- .../libwebsockets/abstract/abstract.h | 138 - .../libwebsockets/abstract/protocols.h | 88 - .../libwebsockets/abstract/protocols/smtp.h | 115 - .../libwebsockets/abstract/transports.h | 65 - .../abstract/transports/raw-skt.h | 29 - .../abstract/transports/unit-test.h | 81 - .../websockets/libwebsockets/lws-adopt.h | 233 - .../websockets/libwebsockets/lws-async-dns.h | 87 - .../websockets/libwebsockets/lws-bb-i2c.h | 66 - .../websockets/libwebsockets/lws-bb-spi.h | 62 - .../websockets/libwebsockets/lws-button.h | 120 - .../websockets/libwebsockets/lws-callbacks.h | 910 --- .../websockets/libwebsockets/lws-cgi.h | 104 - .../websockets/libwebsockets/lws-client.h | 343 - .../libwebsockets/lws-context-vhost.h | 1215 --- .../websockets/libwebsockets/lws-dbus.h | 94 - .../libwebsockets/lws-detailed-latency.h | 140 - .../websockets/libwebsockets/lws-diskcache.h | 187 - .../websockets/libwebsockets/lws-display.h | 158 - .../websockets/libwebsockets/lws-dll2.h | 298 - .../websockets/libwebsockets/lws-dsh.h | 145 - .../libwebsockets/lws-eventlib-exports.h | 86 - .../websockets/libwebsockets/lws-freertos.h | 87 - .../websockets/libwebsockets/lws-fts.h | 215 - .../websockets/libwebsockets/lws-genaes.h | 170 - .../websockets/libwebsockets/lws-gencrypto.h | 130 - .../websockets/libwebsockets/lws-genec.h | 211 - .../websockets/libwebsockets/lws-genhash.h | 187 - .../websockets/libwebsockets/lws-genrsa.h | 254 - .../websockets/libwebsockets/lws-gpio.h | 60 - .../websockets/libwebsockets/lws-http.h | 928 --- .../websockets/libwebsockets/lws-i2c.h | 54 - .../libwebsockets/lws-ili9341-spi.h | 54 - .../websockets/libwebsockets/lws-jose.h | 212 - .../websockets/libwebsockets/lws-jwe.h | 164 - .../websockets/libwebsockets/lws-jwk.h | 218 - .../websockets/libwebsockets/lws-jws.h | 559 -- .../websockets/libwebsockets/lws-led.h | 146 - .../websockets/libwebsockets/lws-lejp.h | 301 - .../websockets/libwebsockets/lws-logs.h | 302 - .../websockets/libwebsockets/lws-lwsac.h | 290 - .../websockets/libwebsockets/lws-misc.h | 1045 --- .../websockets/libwebsockets/lws-mqtt.h | 330 - .../websockets/libwebsockets/lws-netdev.h | 283 - .../libwebsockets/lws-network-helper.h | 193 - .../websockets/libwebsockets/lws-optee.h | 77 - .../libwebsockets/lws-protocols-plugins.h | 309 - .../websockets/libwebsockets/lws-purify.h | 105 - .../websockets/libwebsockets/lws-pwm.h | 67 - .../websockets/libwebsockets/lws-retry.h | 95 - .../websockets/libwebsockets/lws-ring.h | 306 - .../libwebsockets/lws-secure-streams-client.h | 218 - .../libwebsockets/lws-secure-streams-policy.h | 317 - .../libwebsockets/lws-secure-streams.h | 645 -- .../websockets/libwebsockets/lws-sequencer.h | 243 - .../websockets/libwebsockets/lws-service.h | 201 - .../websockets/libwebsockets/lws-settings.h | 112 - .../libwebsockets/lws-sha1-base64.h | 109 - .../websockets/libwebsockets/lws-smd.h | 175 - .../websockets/libwebsockets/lws-spa.h | 176 - .../websockets/libwebsockets/lws-spi.h | 73 - .../libwebsockets/lws-ssd1306-i2c.h | 64 - .../websockets/libwebsockets/lws-state.h | 119 - .../websockets/libwebsockets/lws-stats.h | 81 - .../websockets/libwebsockets/lws-struct.h | 284 - .../websockets/libwebsockets/lws-system.h | 336 - .../libwebsockets/lws-test-sequencer.h | 61 - .../websockets/libwebsockets/lws-threadpool.h | 280 - .../libwebsockets/lws-timeout-timer.h | 362 - .../websockets/libwebsockets/lws-tokenize.h | 253 - .../websockets/libwebsockets/lws-vfs.h | 273 - .../websockets/libwebsockets/lws-write.h | 264 - .../websockets/libwebsockets/lws-writeable.h | 246 - .../websockets/libwebsockets/lws-ws-close.h | 125 - .../websockets/libwebsockets/lws-ws-ext.h | 198 - .../websockets/libwebsockets/lws-ws-state.h | 93 - .../websockets/libwebsockets/lws-x509.h | 279 - win64/include/websockets/lws_config.h | 316 +- win64/libs/GlU32.Lib | Bin 11758 -> 0 bytes win64/libs/freetype.dll | Bin 636416 -> 0 bytes win64/libs/freetype.lib | Bin 46584 -> 1550114 bytes win64/libs/glew32.dll | Bin 457216 -> 422912 bytes win64/libs/glew32.lib | Bin 701288 -> 701288 bytes win64/libs/libuv.dll | Bin 196608 -> 202240 bytes win64/libs/libuv.lib | Bin 58448 -> 58448 bytes win64/libs/vorbisenc.dll | Bin 561664 -> 0 bytes win64/libs/vorbisenc.lib | Bin 2978 -> 0 bytes win64/libs/webp.dll | Bin 515584 -> 0 bytes win64/libs/webp.lib | Bin 19162 -> 954050 bytes win64/libs/webpdecoder.dll | Bin 246272 -> 0 bytes win64/libs/webpdecoder.lib | Bin 10756 -> 0 bytes win64/libs/webpdemux.dll | Bin 19968 -> 0 bytes win64/libs/webpdemux.lib | Bin 6372 -> 0 bytes win64/libs/websockets.dll | Bin 300032 -> 206336 bytes win64/libs/websockets.lib | Bin 105444 -> 66588 bytes 217 files changed, 33028 insertions(+), 36635 deletions(-) create mode 100644 ChangeLog.md delete mode 100644 win64/include/freetype/config/integer-types.h delete mode 100644 win64/include/freetype/config/mac-support.h delete mode 100644 win64/include/freetype/config/public-macros.h create mode 100644 win64/include/freetype/ftautoh.h create mode 100644 win64/include/freetype/ftcffdrv.h delete mode 100644 win64/include/freetype/ftcolor.h delete mode 100644 win64/include/freetype/ftdriver.h delete mode 100644 win64/include/freetype/ftfntfmt.h delete mode 100644 win64/include/freetype/ftparams.h create mode 100644 win64/include/freetype/ftttdrv.h create mode 100644 win64/include/freetype/ftxf86.h create mode 100644 win64/include/freetype/internal/autohint.h create mode 100644 win64/include/freetype/internal/ftcalc.h create mode 100644 win64/include/freetype/internal/ftdebug.h create mode 100644 win64/include/freetype/internal/ftdriver.h create mode 100644 win64/include/freetype/internal/ftgloadr.h create mode 100644 win64/include/freetype/internal/ftmemory.h create mode 100644 win64/include/freetype/internal/ftobjs.h create mode 100644 win64/include/freetype/internal/ftpic.h create mode 100644 win64/include/freetype/internal/ftrfork.h create mode 100644 win64/include/freetype/internal/ftserv.h create mode 100644 win64/include/freetype/internal/ftstream.h create mode 100644 win64/include/freetype/internal/fttrace.h create mode 100644 win64/include/freetype/internal/ftvalid.h create mode 100644 win64/include/freetype/internal/internal.h create mode 100644 win64/include/freetype/internal/psaux.h create mode 100644 win64/include/freetype/internal/pshints.h create mode 100644 win64/include/freetype/internal/services/svbdf.h create mode 100644 win64/include/freetype/internal/services/svcid.h create mode 100644 win64/include/freetype/internal/services/svgldict.h create mode 100644 win64/include/freetype/internal/services/svgxval.h create mode 100644 win64/include/freetype/internal/services/svkern.h create mode 100644 win64/include/freetype/internal/services/svmm.h create mode 100644 win64/include/freetype/internal/services/svotval.h create mode 100644 win64/include/freetype/internal/services/svpfr.h create mode 100644 win64/include/freetype/internal/services/svpostnm.h create mode 100644 win64/include/freetype/internal/services/svprop.h create mode 100644 win64/include/freetype/internal/services/svpscmap.h create mode 100644 win64/include/freetype/internal/services/svpsinfo.h create mode 100644 win64/include/freetype/internal/services/svsfnt.h create mode 100644 win64/include/freetype/internal/services/svttcmap.h create mode 100644 win64/include/freetype/internal/services/svtteng.h create mode 100644 win64/include/freetype/internal/services/svttglyf.h create mode 100644 win64/include/freetype/internal/services/svwinfnt.h create mode 100644 win64/include/freetype/internal/services/svxf86nm.h create mode 100644 win64/include/freetype/internal/sfnt.h create mode 100644 win64/include/freetype/internal/t1types.h create mode 100644 win64/include/freetype/internal/tttypes.h create mode 100644 win64/include/freetype/ttunpat.h delete mode 100644 win64/include/gles/GL.h delete mode 100644 win64/include/gles/GLU.h create mode 100644 win64/include/gles/eglew.h rename win64/include/{libuv => uv}/uv.h (100%) rename win64/include/{libuv => uv}/uv/aix.h (100%) rename win64/include/{libuv => uv}/uv/android-ifaddrs.h (100%) rename win64/include/{libuv => uv}/uv/bsd.h (100%) rename win64/include/{libuv => uv}/uv/darwin.h (100%) rename win64/include/{libuv => uv}/uv/errno.h (100%) rename win64/include/{libuv => uv}/uv/linux.h (100%) rename win64/include/{libuv => uv}/uv/os390.h (100%) rename win64/include/{libuv => uv}/uv/posix.h (100%) rename win64/include/{libuv => uv}/uv/stdint-msvc2008.h (100%) rename win64/include/{libuv => uv}/uv/sunos.h (100%) rename win64/include/{libuv => uv}/uv/threadpool.h (100%) rename win64/include/{libuv => uv}/uv/tree.h (100%) rename win64/include/{libuv => uv}/uv/unix.h (100%) rename win64/include/{libuv => uv}/uv/version.h (100%) rename win64/include/{libuv => uv}/uv/win.h (100%) create mode 100644 win64/include/webp/config.h.in create mode 100644 win64/include/webp/format_constants.h delete mode 100644 win64/include/websockets/libwebsockets/abstract/abstract.h delete mode 100644 win64/include/websockets/libwebsockets/abstract/protocols.h delete mode 100644 win64/include/websockets/libwebsockets/abstract/protocols/smtp.h delete mode 100644 win64/include/websockets/libwebsockets/abstract/transports.h delete mode 100644 win64/include/websockets/libwebsockets/abstract/transports/raw-skt.h delete mode 100644 win64/include/websockets/libwebsockets/abstract/transports/unit-test.h delete mode 100644 win64/include/websockets/libwebsockets/lws-adopt.h delete mode 100644 win64/include/websockets/libwebsockets/lws-async-dns.h delete mode 100644 win64/include/websockets/libwebsockets/lws-bb-i2c.h delete mode 100644 win64/include/websockets/libwebsockets/lws-bb-spi.h delete mode 100644 win64/include/websockets/libwebsockets/lws-button.h delete mode 100644 win64/include/websockets/libwebsockets/lws-callbacks.h delete mode 100644 win64/include/websockets/libwebsockets/lws-cgi.h delete mode 100644 win64/include/websockets/libwebsockets/lws-client.h delete mode 100644 win64/include/websockets/libwebsockets/lws-context-vhost.h delete mode 100644 win64/include/websockets/libwebsockets/lws-dbus.h delete mode 100644 win64/include/websockets/libwebsockets/lws-detailed-latency.h delete mode 100644 win64/include/websockets/libwebsockets/lws-diskcache.h delete mode 100644 win64/include/websockets/libwebsockets/lws-display.h delete mode 100644 win64/include/websockets/libwebsockets/lws-dll2.h delete mode 100644 win64/include/websockets/libwebsockets/lws-dsh.h delete mode 100644 win64/include/websockets/libwebsockets/lws-eventlib-exports.h delete mode 100644 win64/include/websockets/libwebsockets/lws-freertos.h delete mode 100644 win64/include/websockets/libwebsockets/lws-fts.h delete mode 100644 win64/include/websockets/libwebsockets/lws-genaes.h delete mode 100644 win64/include/websockets/libwebsockets/lws-gencrypto.h delete mode 100644 win64/include/websockets/libwebsockets/lws-genec.h delete mode 100644 win64/include/websockets/libwebsockets/lws-genhash.h delete mode 100644 win64/include/websockets/libwebsockets/lws-genrsa.h delete mode 100644 win64/include/websockets/libwebsockets/lws-gpio.h delete mode 100644 win64/include/websockets/libwebsockets/lws-http.h delete mode 100644 win64/include/websockets/libwebsockets/lws-i2c.h delete mode 100644 win64/include/websockets/libwebsockets/lws-ili9341-spi.h delete mode 100644 win64/include/websockets/libwebsockets/lws-jose.h delete mode 100644 win64/include/websockets/libwebsockets/lws-jwe.h delete mode 100644 win64/include/websockets/libwebsockets/lws-jwk.h delete mode 100644 win64/include/websockets/libwebsockets/lws-jws.h delete mode 100644 win64/include/websockets/libwebsockets/lws-led.h delete mode 100644 win64/include/websockets/libwebsockets/lws-lejp.h delete mode 100644 win64/include/websockets/libwebsockets/lws-logs.h delete mode 100644 win64/include/websockets/libwebsockets/lws-lwsac.h delete mode 100644 win64/include/websockets/libwebsockets/lws-misc.h delete mode 100644 win64/include/websockets/libwebsockets/lws-mqtt.h delete mode 100644 win64/include/websockets/libwebsockets/lws-netdev.h delete mode 100644 win64/include/websockets/libwebsockets/lws-network-helper.h delete mode 100644 win64/include/websockets/libwebsockets/lws-optee.h delete mode 100644 win64/include/websockets/libwebsockets/lws-protocols-plugins.h delete mode 100644 win64/include/websockets/libwebsockets/lws-purify.h delete mode 100644 win64/include/websockets/libwebsockets/lws-pwm.h delete mode 100644 win64/include/websockets/libwebsockets/lws-retry.h delete mode 100644 win64/include/websockets/libwebsockets/lws-ring.h delete mode 100644 win64/include/websockets/libwebsockets/lws-secure-streams-client.h delete mode 100644 win64/include/websockets/libwebsockets/lws-secure-streams-policy.h delete mode 100644 win64/include/websockets/libwebsockets/lws-secure-streams.h delete mode 100644 win64/include/websockets/libwebsockets/lws-sequencer.h delete mode 100644 win64/include/websockets/libwebsockets/lws-service.h delete mode 100644 win64/include/websockets/libwebsockets/lws-settings.h delete mode 100644 win64/include/websockets/libwebsockets/lws-sha1-base64.h delete mode 100644 win64/include/websockets/libwebsockets/lws-smd.h delete mode 100644 win64/include/websockets/libwebsockets/lws-spa.h delete mode 100644 win64/include/websockets/libwebsockets/lws-spi.h delete mode 100644 win64/include/websockets/libwebsockets/lws-ssd1306-i2c.h delete mode 100644 win64/include/websockets/libwebsockets/lws-state.h delete mode 100644 win64/include/websockets/libwebsockets/lws-stats.h delete mode 100644 win64/include/websockets/libwebsockets/lws-struct.h delete mode 100644 win64/include/websockets/libwebsockets/lws-system.h delete mode 100644 win64/include/websockets/libwebsockets/lws-test-sequencer.h delete mode 100644 win64/include/websockets/libwebsockets/lws-threadpool.h delete mode 100644 win64/include/websockets/libwebsockets/lws-timeout-timer.h delete mode 100644 win64/include/websockets/libwebsockets/lws-tokenize.h delete mode 100644 win64/include/websockets/libwebsockets/lws-vfs.h delete mode 100644 win64/include/websockets/libwebsockets/lws-write.h delete mode 100644 win64/include/websockets/libwebsockets/lws-writeable.h delete mode 100644 win64/include/websockets/libwebsockets/lws-ws-close.h delete mode 100644 win64/include/websockets/libwebsockets/lws-ws-ext.h delete mode 100644 win64/include/websockets/libwebsockets/lws-ws-state.h delete mode 100644 win64/include/websockets/libwebsockets/lws-x509.h delete mode 100644 win64/libs/GlU32.Lib delete mode 100644 win64/libs/freetype.dll delete mode 100644 win64/libs/vorbisenc.dll delete mode 100644 win64/libs/vorbisenc.lib delete mode 100644 win64/libs/webp.dll delete mode 100644 win64/libs/webpdecoder.dll delete mode 100644 win64/libs/webpdecoder.lib delete mode 100644 win64/libs/webpdemux.dll delete mode 100644 win64/libs/webpdemux.lib diff --git a/ChangeLog.md b/ChangeLog.md new file mode 100644 index 00000000..f10b8450 --- /dev/null +++ b/ChangeLog.md @@ -0,0 +1,133 @@ +# External Change Log + +## 2021.07 new platform x64 + +| libs | win32 | x64 | +| :--------: | :--------: | :--------: | +| openssl | 1.1.1g | 1.1.1k | +| websockets | 2.4.2 | ---- | +| mpg123 | 40 | 45 | +| curl | 7.52.1 | 7.74.0 | +| png | 1.6.37 | ---- | +| sdl | 2.0.10 | 2.0.14 | +| jpeg | 9d | ---- | +| freetype2 | 2.5.5 | 2.10.4 | +| libz | 1.2.11 | ---- | +| v8 | 6.0.286.52 | 9.1.269 | +| libuv | 1.23.1 | 1.41.0-rel | +| sqlite3 | 3.35.4 | 3.7.15.1 | +| tbb | 2020.2 | ---- | +| PVRVFrame | 10.13 | ---- | +| iconv | 0x0109 | 0x0110 | +| glslang | unk | 11.4.0 | +| physx | 4.1.1 | ---- | + +## Current Version + +* websockets: + * mac: 2.1.0 + * win32: 2.4.2 + * ios: 2.1.0 + * android: 2.1.0 + * win64: 2.4.2 +* openssl + * mac: 1.1.1g + * win32: 1.1.1g + * ios: 1.1.1g + * android: 1.1.1g + * win64: 1.1.1k +* mpg123 + * win32: 40 + * win64: 45 +* curl + * mac: 7.52.1 + * win32: 7.52.1 + * win64: 7.74.0 +* png + * mac: 1.6.37 + * win32: 1.6.37 + * ios: 1.6.37 + * android: 1.6.37 + * win64: 1.6.37 +* sdl + * win32: 2.0.10 + * win64: 2.0.14 +* jpeg + * mac: 9d + * win32: 9d + * ios: 9d + * android: 9d + * win64: 9d +* freetype2 + * mac: 2.6.3 + * win32: 2.5.5 + * ios: 2.6.3 + * android: 2.6.3 + * win64: 2.10.4 +* libz + * mac: 1.2.11 + * win32: 1.2.11 + * ios: -- + * android: 1.2.11 + * win64: 1.2.11 +* spidermonkey + * mac: v52 + * win32: v52 + * ios: v52 + * android: v52 + * win64: -- +* anysdk + * mac: -- + * win32: -- + * android: 2.2.5 + * ios: 2.2.5 + * win64: -- +* rapidjson + * mac: 1.1.0 + * win32: 1.1.0 + * ios: 1.1.0 + * android: 1.1.0 + * win64: -- +* tinydir + * mac: 1.2.1 + * win32: 1.2.1 + * android: 1.2.1 + * ios: 1.2.1 + * win64: -- +* v8 + * win32: 6.0.286.52 + * android: 6.0.286.52 + * win64: 9.1.269.0 +* libuv + * mac: 1.23.1 + * win32: 1.13.1 + * android: 1.13.1 + * ios: 1.23.1 + * win64: 1.41.0-release +* sqlite3 + * win64: 3.35.4 + * win32: 3.7.15.1 +* tbb + * mac: 2020.2 + * win32: 2020.2 + * android: 2020.2 + * ios: 2020.2 + * win64: 2020.2 +* PVRVFrame + * mac: 10.13 + * win32: 10.13 + * win64: 10.13 +* spirv_cross + * mac: 2021.1.15 + * ios: 2021.1.15 +* iconv + * win32: 0x0109 + * win64: 0x0110 +* glslang + * win32: + * win64: 11.4.0 +* physx # + * win32: 4.1.1 + * win64: 4.1.1 +* glew # + * win64: 2.1.0 diff --git a/versions.txt b/versions.txt index 01af7a9c..75c97a7c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,42 +1,56 @@ websockets mac: 2.1.0 - win32: 2.1.0 + win32: 2.4.2 ios: 2.1.0 android: 2.1.0 + win64: 2.4.2 openssl mac: 1.1.1g win32: 1.1.1g ios: 1.1.1g android: 1.1.1g + win64: 1.1.1k + +mpg123 + win32: 40 + win64: 45 curl mac: 7.52.1 win32: 7.52.1 + win64: 7.74.0 png mac: 1.6.37 win32: 1.6.37 ios: 1.6.37 android: 1.6.37 + win64: 1.6.37 +sdl + win32: 2.0.10 + win64: 2.0.14 jpeg mac: 9d win32: 9d ios: 9d android: 9d + win64: 9d freetype2 mac: 2.6.3 win32: 2.5.5 ios: 2.6.3 android: 2.6.3 + win64: 2.10.4 libz mac: 1.2.11 win32: 1.2.11 ios: -- android: 1.2.11 + win64: 1.2.11 spidermonkey mac: v52 @@ -73,7 +87,10 @@ libuv win32: 1.13.1 android: 1.13.1 ios: 1.23.1 - + win64: 1.41.0-release +sqlite3 + win64: 3.35.4 + win32: 3.7.15.1 tbb mac: 2020.2 win32: 2020.2 @@ -87,9 +104,11 @@ PVRVFrame spirv_cross mac: 2021.1.15 ios: 2021.1.15 - - +iconv + win32: 0x0109 + win64: 0x0110 glslang + win32: win64: 11.4.0 config: -DENABLE_OPT=OFF -DENABLE_SPVREMAPPER=OFF (otherwise it will depend on 2 other libs) ios: 3641ff73 \ No newline at end of file diff --git a/win64/CMakeLists.txt b/win64/CMakeLists.txt index 3202a186..3fc0925c 100644 --- a/win64/CMakeLists.txt +++ b/win64/CMakeLists.txt @@ -92,7 +92,7 @@ add_library(uv STATIC IMPORTED GLOBAL) set_target_properties(uv PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_LIST_DIR}/libs/libuv.lib - INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/include/libuv + INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/include/uv ) @@ -186,7 +186,6 @@ if(USE_SE_V8) set_target_properties(v8 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/include/v8 - INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_LIST_DIR}/include/v8 ) set(se_libs_name v8) diff --git a/win64/include/freetype/config/ftconfig.h b/win64/include/freetype/config/ftconfig.h index b464e0b7..22d70fd3 100644 --- a/win64/include/freetype/config/ftconfig.h +++ b/win64/include/freetype/config/ftconfig.h @@ -1,51 +1,450 @@ -/**************************************************************************** - * - * ftconfig.h - * - * ANSI-specific configuration file (specification only). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftconfig.h */ +/* */ +/* ANSI-specific configuration file (specification only). */ +/* */ +/* Copyright 1996-2004, 2006-2008, 2010-2011, 2013, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * This header file contains a number of macro definitions that are used by - * the rest of the engine. Most of the macros here are automatically - * determined at compile time, and you should not need to change it to port - * FreeType, except to compile the library with a non-ANSI compiler. - * - * Note however that if some specific modifications are needed, we advise - * you to place a modified copy in your build directory. - * - * The build directory is usually `builds/`, and contains - * system-specific files that are always included first when building the - * library. - * - * This ANSI version should stay in `include/config/`. - * - */ + /*************************************************************************/ + /* */ + /* This header file contains a number of macro definitions that are used */ + /* by the rest of the engine. Most of the macros here are automatically */ + /* determined at compile time, and you should not need to change it to */ + /* port FreeType, except to compile the library with a non-ANSI */ + /* compiler. */ + /* */ + /* Note however that if some specific modifications are needed, we */ + /* advise you to place a modified copy in your build directory. */ + /* */ + /* The build directory is usually `builds/', and contains */ + /* system-specific files that are always included first when building */ + /* the library. */ + /* */ + /* This ANSI version should stay in `include/config/'. */ + /* */ + /*************************************************************************/ -#ifndef FTCONFIG_H_ -#define FTCONFIG_H_ +#ifndef __FTCONFIG_H__ +#define __FTCONFIG_H__ #include #include FT_CONFIG_OPTIONS_H #include FT_CONFIG_STANDARD_LIBRARY_H -#include -#include -#include -#endif /* FTCONFIG_H_ */ +FT_BEGIN_HEADER + + + /*************************************************************************/ + /* */ + /* PLATFORM-SPECIFIC CONFIGURATION MACROS */ + /* */ + /* These macros can be toggled to suit a specific system. The current */ + /* ones are defaults used to compile FreeType in an ANSI C environment */ + /* (16bit compilers are also supported). Copy this file to your own */ + /* `builds/' directory, and edit it to port the engine. */ + /* */ + /*************************************************************************/ + + + /* There are systems (like the Texas Instruments 'C54x) where a `char' */ + /* has 16 bits. ANSI C says that sizeof(char) is always 1. Since an */ + /* `int' has 16 bits also for this system, sizeof(int) gives 1 which */ + /* is probably unexpected. */ + /* */ + /* `CHAR_BIT' (defined in limits.h) gives the number of bits in a */ + /* `char' type. */ + +#ifndef FT_CHAR_BIT +#define FT_CHAR_BIT CHAR_BIT +#endif + + + /* The size of an `int' type. */ +#if FT_UINT_MAX == 0xFFFFUL +#define FT_SIZEOF_INT (16 / FT_CHAR_BIT) +#elif FT_UINT_MAX == 0xFFFFFFFFUL +#define FT_SIZEOF_INT (32 / FT_CHAR_BIT) +#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL +#define FT_SIZEOF_INT (64 / FT_CHAR_BIT) +#else +#error "Unsupported size of `int' type!" +#endif + + /* The size of a `long' type. A five-byte `long' (as used e.g. on the */ + /* DM642) is recognized but avoided. */ +#if FT_ULONG_MAX == 0xFFFFFFFFUL +#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT) +#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL +#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT) +#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL +#define FT_SIZEOF_LONG (64 / FT_CHAR_BIT) +#else +#error "Unsupported size of `long' type!" +#endif + + + /* FT_UNUSED is a macro used to indicate that a given parameter is not */ + /* used -- this is only used to get rid of unpleasant compiler warnings */ +#ifndef FT_UNUSED +#define FT_UNUSED( arg ) ( (arg) = (arg) ) +#endif + + + /*************************************************************************/ + /* */ + /* AUTOMATIC CONFIGURATION MACROS */ + /* */ + /* These macros are computed from the ones defined above. Don't touch */ + /* their definition, unless you know precisely what you are doing. No */ + /* porter should need to mess with them. */ + /* */ + /*************************************************************************/ + + + /*************************************************************************/ + /* */ + /* Mac support */ + /* */ + /* This is the only necessary change, so it is defined here instead */ + /* providing a new configuration file. */ + /* */ +#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) ) + /* no Carbon frameworks for 64bit 10.4.x */ + /* AvailabilityMacros.h is available since Mac OS X 10.2, */ + /* so guess the system version by maximum errno before inclusion */ +#include +#ifdef ECANCELED /* defined since 10.2 */ +#include "AvailabilityMacros.h" +#endif +#if defined( __LP64__ ) && \ + ( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 ) +#undef FT_MACINTOSH +#endif + +#elif defined( __SC__ ) || defined( __MRC__ ) + /* Classic MacOS compilers */ +#include "ConditionalMacros.h" +#if TARGET_OS_MAC +#define FT_MACINTOSH 1 +#endif + +#endif + + + /*************************************************************************/ + /* */ + /*
*/ + /* basic_types */ + /* */ + /*************************************************************************/ + + + /*************************************************************************/ + /* */ + /* */ + /* FT_Int16 */ + /* */ + /* */ + /* A typedef for a 16bit signed integer type. */ + /* */ + typedef signed short FT_Int16; + + + /*************************************************************************/ + /* */ + /* */ + /* FT_UInt16 */ + /* */ + /* */ + /* A typedef for a 16bit unsigned integer type. */ + /* */ + typedef unsigned short FT_UInt16; + + /* */ + + + /* this #if 0 ... #endif clause is for documentation purposes */ +#if 0 + + /*************************************************************************/ + /* */ + /* */ + /* FT_Int32 */ + /* */ + /* */ + /* A typedef for a 32bit signed integer type. The size depends on */ + /* the configuration. */ + /* */ + typedef signed XXX FT_Int32; + + + /*************************************************************************/ + /* */ + /* */ + /* FT_UInt32 */ + /* */ + /* A typedef for a 32bit unsigned integer type. The size depends on */ + /* the configuration. */ + /* */ + typedef unsigned XXX FT_UInt32; + + + /*************************************************************************/ + /* */ + /* */ + /* FT_Int64 */ + /* */ + /* A typedef for a 64bit signed integer type. The size depends on */ + /* the configuration. Only defined if there is real 64bit support; */ + /* otherwise, it gets emulated with a structure (if necessary). */ + /* */ + typedef signed XXX FT_Int64; + + + /*************************************************************************/ + /* */ + /* */ + /* FT_UInt64 */ + /* */ + /* A typedef for a 64bit unsigned integer type. The size depends on */ + /* the configuration. Only defined if there is real 64bit support; */ + /* otherwise, it gets emulated with a structure (if necessary). */ + /* */ + typedef unsigned XXX FT_UInt64; + + /* */ + +#endif + +#if FT_SIZEOF_INT == (32 / FT_CHAR_BIT) + + typedef signed int FT_Int32; + typedef unsigned int FT_UInt32; + +#elif FT_SIZEOF_LONG == (32 / FT_CHAR_BIT) + + typedef signed long FT_Int32; + typedef unsigned long FT_UInt32; + +#else +#error "no 32bit type found -- please check your configuration files" +#endif + + + /* look up an integer type that is at least 32 bits */ +#if FT_SIZEOF_INT >= (32 / FT_CHAR_BIT) + + typedef int FT_Fast; + typedef unsigned int FT_UFast; + +#elif FT_SIZEOF_LONG >= (32 / FT_CHAR_BIT) + + typedef long FT_Fast; + typedef unsigned long FT_UFast; + +#endif + + + /* determine whether we have a 64-bit int type for platforms without */ + /* Autoconf */ +#if FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) + + /* FT_LONG64 must be defined if a 64-bit type is available */ +#define FT_LONG64 +#define FT_INT64 long +#define FT_UINT64 unsigned long + + /*************************************************************************/ + /* */ + /* A 64-bit data type may create compilation problems if you compile */ + /* in strict ANSI mode. To avoid them, we disable other 64-bit data */ + /* types if __STDC__ is defined. You can however ignore this rule */ + /* by defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */ + /* */ +#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 ) + +#if defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */ + + /* this compiler provides the __int64 type */ +#define FT_LONG64 +#define FT_INT64 __int64 +#define FT_UINT64 unsigned __int64 + +#elif defined( __BORLANDC__ ) /* Borland C++ */ + + /* XXXX: We should probably check the value of __BORLANDC__ in order */ + /* to test the compiler version. */ + + /* this compiler provides the __int64 type */ +#define FT_LONG64 +#define FT_INT64 __int64 +#define FT_UINT64 unsigned __int64 + +#elif defined( __WATCOMC__ ) /* Watcom C++ */ + + /* Watcom doesn't provide 64-bit data types */ + +#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */ + +#define FT_LONG64 +#define FT_INT64 long long int +#define FT_UINT64 unsigned long long int + +#elif defined( __GNUC__ ) + + /* GCC provides the `long long' type */ +#define FT_LONG64 +#define FT_INT64 long long int +#define FT_UINT64 unsigned long long int + +#endif /* _MSC_VER */ + +#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */ + +#ifdef FT_LONG64 + typedef FT_INT64 FT_Int64; + typedef FT_UINT64 FT_UInt64; +#endif + + +#define FT_BEGIN_STMNT do { +#define FT_END_STMNT } while ( 0 ) +#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT + + +#ifdef FT_MAKE_OPTION_SINGLE_OBJECT + +#define FT_LOCAL( x ) static x +#define FT_LOCAL_DEF( x ) static x + +#else + +#ifdef __cplusplus +#define FT_LOCAL( x ) extern "C" x +#define FT_LOCAL_DEF( x ) extern "C" x +#else +#define FT_LOCAL( x ) extern x +#define FT_LOCAL_DEF( x ) x +#endif + +#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */ + +#define FT_LOCAL_ARRAY( x ) extern const x +#define FT_LOCAL_ARRAY_DEF( x ) const x + + +#ifndef FT_BASE + +#ifdef __cplusplus +#define FT_BASE( x ) extern "C" x +#else +#define FT_BASE( x ) extern x +#endif + +#endif /* !FT_BASE */ + + +#ifndef FT_BASE_DEF + +#ifdef __cplusplus +#define FT_BASE_DEF( x ) x +#else +#define FT_BASE_DEF( x ) x +#endif + +#endif /* !FT_BASE_DEF */ + + +#ifndef FT_EXPORT + +#ifdef __cplusplus +#define FT_EXPORT( x ) extern "C" x +#else +#define FT_EXPORT( x ) extern x +#endif + +#endif /* !FT_EXPORT */ + + +#ifndef FT_EXPORT_DEF + +#ifdef __cplusplus +#define FT_EXPORT_DEF( x ) extern "C" x +#else +#define FT_EXPORT_DEF( x ) extern x +#endif + +#endif /* !FT_EXPORT_DEF */ + + +#ifndef FT_EXPORT_VAR + +#ifdef __cplusplus +#define FT_EXPORT_VAR( x ) extern "C" x +#else +#define FT_EXPORT_VAR( x ) extern x +#endif + +#endif /* !FT_EXPORT_VAR */ + + /* The following macros are needed to compile the library with a */ + /* C++ compiler and with 16bit compilers. */ + /* */ + + /* This is special. Within C++, you must specify `extern "C"' for */ + /* functions which are used via function pointers, and you also */ + /* must do that for structures which contain function pointers to */ + /* assure C linkage -- it's not possible to have (local) anonymous */ + /* functions which are accessed by (global) function pointers. */ + /* */ + /* */ + /* FT_CALLBACK_DEF is used to _define_ a callback function. */ + /* */ + /* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */ + /* contains pointers to callback functions. */ + /* */ + /* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */ + /* that contains pointers to callback functions. */ + /* */ + /* */ + /* Some 16bit compilers have to redefine these macros to insert */ + /* the infamous `_cdecl' or `__fastcall' declarations. */ + /* */ +#ifndef FT_CALLBACK_DEF +#ifdef __cplusplus +#define FT_CALLBACK_DEF( x ) extern "C" x +#else +#define FT_CALLBACK_DEF( x ) static x +#endif +#endif /* FT_CALLBACK_DEF */ + +#ifndef FT_CALLBACK_TABLE +#ifdef __cplusplus +#define FT_CALLBACK_TABLE extern "C" +#define FT_CALLBACK_TABLE_DEF extern "C" +#else +#define FT_CALLBACK_TABLE extern +#define FT_CALLBACK_TABLE_DEF /* nothing */ +#endif +#endif /* FT_CALLBACK_TABLE */ + + +FT_END_HEADER + + +#endif /* __FTCONFIG_H__ */ /* END */ diff --git a/win64/include/freetype/config/ftheader.h b/win64/include/freetype/config/ftheader.h index 28b5cc60..b6236299 100644 --- a/win64/include/freetype/config/ftheader.h +++ b/win64/include/freetype/config/ftheader.h @@ -1,22 +1,22 @@ -/**************************************************************************** - * - * ftheader.h - * - * Build macros of the FreeType 2 library. - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftheader.h */ +/* */ +/* Build macros of the FreeType 2 library. */ +/* */ +/* Copyright 1996-2008, 2010, 2012, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTHEADER_H_ -#define FTHEADER_H_ +#ifndef __FT_HEADER_H__ +#define __FT_HEADER_H__ /*@***********************************************************************/ @@ -27,15 +27,13 @@ /* */ /* This macro is used in association with @FT_END_HEADER in header */ /* files to ensure that the declarations within are properly */ - /* encapsulated in an `extern "C" { .. }` block when included from a */ + /* encapsulated in an `extern "C" { .. }' block when included from a */ /* C++ compiler. */ /* */ -#ifndef FT_BEGIN_HEADER -# ifdef __cplusplus -# define FT_BEGIN_HEADER extern "C" { -# else -# define FT_BEGIN_HEADER /* nothing */ -# endif +#ifdef __cplusplus +#define FT_BEGIN_HEADER extern "C" { +#else +#define FT_BEGIN_HEADER /* nothing */ #endif @@ -47,778 +45,788 @@ /* */ /* This macro is used in association with @FT_BEGIN_HEADER in header */ /* files to ensure that the declarations within are properly */ - /* encapsulated in an `extern "C" { .. }` block when included from a */ + /* encapsulated in an `extern "C" { .. }' block when included from a */ /* C++ compiler. */ /* */ -#ifndef FT_END_HEADER -# ifdef __cplusplus -# define FT_END_HEADER } -# else -# define FT_END_HEADER /* nothing */ -# endif +#ifdef __cplusplus +#define FT_END_HEADER } +#else +#define FT_END_HEADER /* nothing */ #endif - /************************************************************************** - * - * Aliases for the FreeType 2 public and configuration files. - * - */ + /*************************************************************************/ + /* */ + /* Aliases for the FreeType 2 public and configuration files. */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @section: - * header_file_macros - * - * @title: - * Header File Macros - * - * @abstract: - * Macro definitions used to `#include` specific header files. - * - * @description: - * In addition to the normal scheme of including header files like - * - * ``` - * #include - * #include - * #include - * ``` - * - * it is possible to used named macros instead. They can be used - * directly in `#include` statements as in - * - * ``` - * #include FT_FREETYPE_H - * #include FT_MULTIPLE_MASTERS_H - * #include FT_GLYPH_H - * ``` - * - * These macros were introduced to overcome the infamous 8.3~naming rule - * required by DOS (and `FT_MULTIPLE_MASTERS_H` is a lot more meaningful - * than `ftmm.h`). - * - */ + /*************************************************************************/ + /* */ + /*
*/ + /* header_file_macros */ + /* */ + /* */ + /* Header File Macros */ + /* */ + /* <Abstract> */ + /* Macro definitions used to #include specific header files. */ + /* */ + /* <Description> */ + /* The following macros are defined to the name of specific */ + /* FreeType~2 header files. They can be used directly in #include */ + /* statements as in: */ + /* */ + /* { */ + /* #include FT_FREETYPE_H */ + /* #include FT_MULTIPLE_MASTERS_H */ + /* #include FT_GLYPH_H */ + /* } */ + /* */ + /* There are several reasons why we are now using macros to name */ + /* public header files. The first one is that such macros are not */ + /* limited to the infamous 8.3~naming rule required by DOS (and */ + /* `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h'). */ + /* */ + /* The second reason is that it allows for more flexibility in the */ + /* way FreeType~2 is installed on a given system. */ + /* */ + /*************************************************************************/ /* configuration files */ - /************************************************************************** + /************************************************************************* * * @macro: * FT_CONFIG_CONFIG_H * * @description: - * A macro used in `#include` statements to name the file containing + * A macro used in #include statements to name the file containing * FreeType~2 configuration data. * */ #ifndef FT_CONFIG_CONFIG_H -#define FT_CONFIG_CONFIG_H <freetype/config/ftconfig.h> +#define FT_CONFIG_CONFIG_H <config/ftconfig.h> #endif - /************************************************************************** + /************************************************************************* * * @macro: * FT_CONFIG_STANDARD_LIBRARY_H * * @description: - * A macro used in `#include` statements to name the file containing + * A macro used in #include statements to name the file containing * FreeType~2 interface to the standard C library functions. * */ #ifndef FT_CONFIG_STANDARD_LIBRARY_H -#define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h> +#define FT_CONFIG_STANDARD_LIBRARY_H <config/ftstdlib.h> #endif - /************************************************************************** + /************************************************************************* * * @macro: * FT_CONFIG_OPTIONS_H * * @description: - * A macro used in `#include` statements to name the file containing + * A macro used in #include statements to name the file containing * FreeType~2 project-specific configuration options. * */ #ifndef FT_CONFIG_OPTIONS_H -#define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h> +#define FT_CONFIG_OPTIONS_H <config/ftoption.h> #endif - /************************************************************************** + /************************************************************************* * * @macro: * FT_CONFIG_MODULES_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * list of FreeType~2 modules that are statically linked to new library * instances in @FT_Init_FreeType. * */ #ifndef FT_CONFIG_MODULES_H -#define FT_CONFIG_MODULES_H <freetype/config/ftmodule.h> +#define FT_CONFIG_MODULES_H <config/ftmodule.h> #endif /* */ /* public headers */ - /************************************************************************** + /************************************************************************* * * @macro: * FT_FREETYPE_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * base FreeType~2 API. * */ -#define FT_FREETYPE_H <freetype/freetype.h> +#define FT_FREETYPE_H <freetype.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_ERRORS_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * list of FreeType~2 error codes (and messages). * * It is included by @FT_FREETYPE_H. * */ -#define FT_ERRORS_H <freetype/fterrors.h> +#define FT_ERRORS_H <fterrors.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_MODULE_ERRORS_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * list of FreeType~2 module error offsets (and messages). * */ -#define FT_MODULE_ERRORS_H <freetype/ftmoderr.h> +#define FT_MODULE_ERRORS_H <ftmoderr.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_SYSTEM_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * FreeType~2 interface to low-level operations (i.e., memory management * and stream i/o). * * It is included by @FT_FREETYPE_H. * */ -#define FT_SYSTEM_H <freetype/ftsystem.h> +#define FT_SYSTEM_H <ftsystem.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_IMAGE_H * * @description: - * A macro used in `#include` statements to name the file containing type + * A macro used in #include statements to name the file containing type * definitions related to glyph images (i.e., bitmaps, outlines, * scan-converter parameters). * * It is included by @FT_FREETYPE_H. * */ -#define FT_IMAGE_H <freetype/ftimage.h> +#define FT_IMAGE_H <ftimage.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_TYPES_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * basic data types defined by FreeType~2. * * It is included by @FT_FREETYPE_H. * */ -#define FT_TYPES_H <freetype/fttypes.h> +#define FT_TYPES_H <fttypes.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_LIST_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * list management API of FreeType~2. * * (Most applications will never need to include this file.) * */ -#define FT_LIST_H <freetype/ftlist.h> +#define FT_LIST_H <ftlist.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_OUTLINE_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * scalable outline management API of FreeType~2. * */ -#define FT_OUTLINE_H <freetype/ftoutln.h> +#define FT_OUTLINE_H <ftoutln.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_SIZES_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * API which manages multiple @FT_Size objects per face. * */ -#define FT_SIZES_H <freetype/ftsizes.h> +#define FT_SIZES_H <ftsizes.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_MODULE_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * module management API of FreeType~2. * */ -#define FT_MODULE_H <freetype/ftmodapi.h> +#define FT_MODULE_H <ftmodapi.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_RENDER_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * renderer module management API of FreeType~2. * */ -#define FT_RENDER_H <freetype/ftrender.h> +#define FT_RENDER_H <ftrender.h> - /************************************************************************** - * - * @macro: - * FT_DRIVER_H - * - * @description: - * A macro used in `#include` statements to name the file containing - * structures and macros related to the driver modules. - * - */ -#define FT_DRIVER_H <freetype/ftdriver.h> - - - /************************************************************************** + /************************************************************************* * * @macro: * FT_AUTOHINTER_H * * @description: - * A macro used in `#include` statements to name the file containing + * A macro used in #include statements to name the file containing * structures and macros related to the auto-hinting module. * - * Deprecated since version~2.9; use @FT_DRIVER_H instead. - * */ -#define FT_AUTOHINTER_H FT_DRIVER_H +#define FT_AUTOHINTER_H <ftautoh.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_CFF_DRIVER_H * * @description: - * A macro used in `#include` statements to name the file containing + * A macro used in #include statements to name the file containing * structures and macros related to the CFF driver module. * - * Deprecated since version~2.9; use @FT_DRIVER_H instead. - * */ -#define FT_CFF_DRIVER_H FT_DRIVER_H +#define FT_CFF_DRIVER_H <ftcffdrv.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_TRUETYPE_DRIVER_H * * @description: - * A macro used in `#include` statements to name the file containing + * A macro used in #include statements to name the file containing * structures and macros related to the TrueType driver module. * - * Deprecated since version~2.9; use @FT_DRIVER_H instead. - * */ -#define FT_TRUETYPE_DRIVER_H FT_DRIVER_H +#define FT_TRUETYPE_DRIVER_H <ftttdrv.h> - /************************************************************************** - * - * @macro: - * FT_PCF_DRIVER_H - * - * @description: - * A macro used in `#include` statements to name the file containing - * structures and macros related to the PCF driver module. - * - * Deprecated since version~2.9; use @FT_DRIVER_H instead. - * - */ -#define FT_PCF_DRIVER_H FT_DRIVER_H - - - /************************************************************************** + /************************************************************************* * * @macro: * FT_TYPE1_TABLES_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * types and API specific to the Type~1 format. * */ -#define FT_TYPE1_TABLES_H <freetype/t1tables.h> +#define FT_TYPE1_TABLES_H <t1tables.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_TRUETYPE_IDS_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * enumeration values which identify name strings, languages, encodings, * etc. This file really contains a _large_ set of constant macro * definitions, taken from the TrueType and OpenType specifications. * */ -#define FT_TRUETYPE_IDS_H <freetype/ttnameid.h> +#define FT_TRUETYPE_IDS_H <ttnameid.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_TRUETYPE_TABLES_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * types and API specific to the TrueType (as well as OpenType) format. * */ -#define FT_TRUETYPE_TABLES_H <freetype/tttables.h> +#define FT_TRUETYPE_TABLES_H <tttables.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_TRUETYPE_TAGS_H * * @description: - * A macro used in `#include` statements to name the file containing the - * definitions of TrueType four-byte 'tags' which identify blocks in + * A macro used in #include statements to name the file containing the + * definitions of TrueType four-byte `tags' which identify blocks in * SFNT-based font formats (i.e., TrueType and OpenType). * */ -#define FT_TRUETYPE_TAGS_H <freetype/tttags.h> +#define FT_TRUETYPE_TAGS_H <tttags.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_BDF_H * * @description: - * A macro used in `#include` statements to name the file containing the - * definitions of an API which accesses BDF-specific strings from a face. + * A macro used in #include statements to name the file containing the + * definitions of an API which accesses BDF-specific strings from a + * face. * */ -#define FT_BDF_H <freetype/ftbdf.h> +#define FT_BDF_H <ftbdf.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_CID_H * * @description: - * A macro used in `#include` statements to name the file containing the - * definitions of an API which access CID font information from a face. + * A macro used in #include statements to name the file containing the + * definitions of an API which access CID font information from a + * face. * */ -#define FT_CID_H <freetype/ftcid.h> +#define FT_CID_H <ftcid.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_GZIP_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * definitions of an API which supports gzip-compressed files. * */ -#define FT_GZIP_H <freetype/ftgzip.h> +#define FT_GZIP_H <ftgzip.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_LZW_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * definitions of an API which supports LZW-compressed files. * */ -#define FT_LZW_H <freetype/ftlzw.h> +#define FT_LZW_H <ftlzw.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_BZIP2_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * definitions of an API which supports bzip2-compressed files. * */ -#define FT_BZIP2_H <freetype/ftbzip2.h> +#define FT_BZIP2_H <ftbzip2.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_WINFONTS_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * definitions of an API which supports Windows FNT files. * */ -#define FT_WINFONTS_H <freetype/ftwinfnt.h> +#define FT_WINFONTS_H <ftwinfnt.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_GLYPH_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * API of the optional glyph management component. * */ -#define FT_GLYPH_H <freetype/ftglyph.h> +#define FT_GLYPH_H <ftglyph.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_BITMAP_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * API of the optional bitmap conversion component. * */ -#define FT_BITMAP_H <freetype/ftbitmap.h> +#define FT_BITMAP_H <ftbitmap.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_BBOX_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * API of the optional exact bounding box computation routines. * */ -#define FT_BBOX_H <freetype/ftbbox.h> +#define FT_BBOX_H <ftbbox.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_CACHE_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * API of the optional FreeType~2 cache sub-system. * */ -#define FT_CACHE_H <freetype/ftcache.h> +#define FT_CACHE_H <ftcache.h> - /************************************************************************** + /************************************************************************* + * + * @macro: + * FT_CACHE_IMAGE_H + * + * @description: + * A macro used in #include statements to name the file containing the + * `glyph image' API of the FreeType~2 cache sub-system. + * + * It is used to define a cache for @FT_Glyph elements. You can also + * use the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need to + * store small glyph bitmaps, as it will use less memory. + * + * This macro is deprecated. Simply include @FT_CACHE_H to have all + * glyph image-related cache declarations. + * + */ +#define FT_CACHE_IMAGE_H FT_CACHE_H + + + /************************************************************************* + * + * @macro: + * FT_CACHE_SMALL_BITMAPS_H + * + * @description: + * A macro used in #include statements to name the file containing the + * `small bitmaps' API of the FreeType~2 cache sub-system. + * + * It is used to define a cache for small glyph bitmaps in a relatively + * memory-efficient way. You can also use the API defined in + * @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images, + * including scalable outlines. + * + * This macro is deprecated. Simply include @FT_CACHE_H to have all + * small bitmaps-related cache declarations. + * + */ +#define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H + + + /************************************************************************* + * + * @macro: + * FT_CACHE_CHARMAP_H + * + * @description: + * A macro used in #include statements to name the file containing the + * `charmap' API of the FreeType~2 cache sub-system. + * + * This macro is deprecated. Simply include @FT_CACHE_H to have all + * charmap-based cache declarations. + * + */ +#define FT_CACHE_CHARMAP_H FT_CACHE_H + + + /************************************************************************* * * @macro: * FT_MAC_H * * @description: - * A macro used in `#include` statements to name the file containing the - * Macintosh-specific FreeType~2 API. The latter is used to access fonts - * embedded in resource forks. + * A macro used in #include statements to name the file containing the + * Macintosh-specific FreeType~2 API. The latter is used to access + * fonts embedded in resource forks. * * This header file must be explicitly included by client applications * compiled on the Mac (note that the base API still works though). * */ -#define FT_MAC_H <freetype/ftmac.h> +#define FT_MAC_H <ftmac.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_MULTIPLE_MASTERS_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * optional multiple-masters management API of FreeType~2. * */ -#define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h> +#define FT_MULTIPLE_MASTERS_H <ftmm.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_SFNT_NAMES_H * * @description: - * A macro used in `#include` statements to name the file containing the - * optional FreeType~2 API which accesses embedded 'name' strings in + * A macro used in #include statements to name the file containing the + * optional FreeType~2 API which accesses embedded `name' strings in * SFNT-based font formats (i.e., TrueType and OpenType). * */ -#define FT_SFNT_NAMES_H <freetype/ftsnames.h> +#define FT_SFNT_NAMES_H <ftsnames.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_OPENTYPE_VALIDATE_H * * @description: - * A macro used in `#include` statements to name the file containing the - * optional FreeType~2 API which validates OpenType tables ('BASE', - * 'GDEF', 'GPOS', 'GSUB', 'JSTF'). + * A macro used in #include statements to name the file containing the + * optional FreeType~2 API which validates OpenType tables (BASE, GDEF, + * GPOS, GSUB, JSTF). * */ -#define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h> +#define FT_OPENTYPE_VALIDATE_H <ftotval.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_GX_VALIDATE_H * * @description: - * A macro used in `#include` statements to name the file containing the - * optional FreeType~2 API which validates TrueTypeGX/AAT tables ('feat', - * 'mort', 'morx', 'bsln', 'just', 'kern', 'opbd', 'trak', 'prop'). + * A macro used in #include statements to name the file containing the + * optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat, + * mort, morx, bsln, just, kern, opbd, trak, prop). * */ -#define FT_GX_VALIDATE_H <freetype/ftgxval.h> +#define FT_GX_VALIDATE_H <ftgxval.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_PFR_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * FreeType~2 API which accesses PFR-specific data. * */ -#define FT_PFR_H <freetype/ftpfr.h> +#define FT_PFR_H <ftpfr.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_STROKER_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * FreeType~2 API which provides functions to stroke outline paths. */ -#define FT_STROKER_H <freetype/ftstroke.h> +#define FT_STROKER_H <ftstroke.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_SYNTHESIS_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * FreeType~2 API which performs artificial obliquing and emboldening. */ -#define FT_SYNTHESIS_H <freetype/ftsynth.h> +#define FT_SYNTHESIS_H <ftsynth.h> - /************************************************************************** + /************************************************************************* * * @macro: - * FT_FONT_FORMATS_H + * FT_XFREE86_H * * @description: - * A macro used in `#include` statements to name the file containing the - * FreeType~2 API which provides functions specific to font formats. + * A macro used in #include statements to name the file containing the + * FreeType~2 API which provides functions specific to the XFree86 and + * X.Org X11 servers. */ -#define FT_FONT_FORMATS_H <freetype/ftfntfmt.h> - - /* deprecated */ -#define FT_XFREE86_H FT_FONT_FORMATS_H +#define FT_XFREE86_H <ftxf86.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_TRIGONOMETRY_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * FreeType~2 API which performs trigonometric computations (e.g., * cosines and arc tangents). */ -#define FT_TRIGONOMETRY_H <freetype/fttrigon.h> +#define FT_TRIGONOMETRY_H <fttrigon.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_LCD_FILTER_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * FreeType~2 API which performs color filtering for subpixel rendering. */ -#define FT_LCD_FILTER_H <freetype/ftlcdfil.h> +#define FT_LCD_FILTER_H <ftlcdfil.h> - /************************************************************************** + /************************************************************************* + * + * @macro: + * FT_UNPATENTED_HINTING_H + * + * @description: + * A macro used in #include statements to name the file containing the + * FreeType~2 API which performs color filtering for subpixel rendering. + */ +#define FT_UNPATENTED_HINTING_H <ttunpat.h> + + + /************************************************************************* * * @macro: * FT_INCREMENTAL_H * * @description: - * A macro used in `#include` statements to name the file containing the - * FreeType~2 API which performs incremental glyph loading. + * A macro used in #include statements to name the file containing the + * FreeType~2 API which performs color filtering for subpixel rendering. */ -#define FT_INCREMENTAL_H <freetype/ftincrem.h> +#define FT_INCREMENTAL_H <ftincrem.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_GASP_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * FreeType~2 API which returns entries from the TrueType GASP table. */ -#define FT_GASP_H <freetype/ftgasp.h> +#define FT_GASP_H <ftgasp.h> - /************************************************************************** + /************************************************************************* * * @macro: * FT_ADVANCES_H * * @description: - * A macro used in `#include` statements to name the file containing the + * A macro used in #include statements to name the file containing the * FreeType~2 API which returns individual and ranged glyph advances. */ -#define FT_ADVANCES_H <freetype/ftadvanc.h> - - - /************************************************************************** - * - * @macro: - * FT_COLOR_H - * - * @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> +#define FT_ADVANCES_H <ftadvanc.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> +#define FT_ERROR_DEFINITIONS_H <fterrdef.h> - /* Deprecated macros. */ -#define FT_UNPATENTED_HINTING_H <freetype/ftparams.h> -#define FT_TRUETYPE_UNPATENTED_H <freetype/ftparams.h> - - /* `FT_CACHE_H` is the only header file needed for the cache subsystem. */ -#define FT_CACHE_IMAGE_H FT_CACHE_H -#define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H -#define FT_CACHE_CHARMAP_H FT_CACHE_H /* The internals of the cache sub-system are no longer exposed. We */ - /* default to `FT_CACHE_H` at the moment just in case, but we know */ - /* of no rogue client that uses them. */ + /* default to FT_CACHE_H at the moment just in case, but we know of */ + /* no rogue client that uses them. */ /* */ -#define FT_CACHE_MANAGER_H FT_CACHE_H -#define FT_CACHE_INTERNAL_MRU_H FT_CACHE_H -#define FT_CACHE_INTERNAL_MANAGER_H FT_CACHE_H -#define FT_CACHE_INTERNAL_CACHE_H FT_CACHE_H -#define FT_CACHE_INTERNAL_GLYPH_H FT_CACHE_H -#define FT_CACHE_INTERNAL_IMAGE_H FT_CACHE_H -#define FT_CACHE_INTERNAL_SBITS_H FT_CACHE_H +#define FT_CACHE_MANAGER_H <ftcache.h> +#define FT_CACHE_INTERNAL_MRU_H <ftcache.h> +#define FT_CACHE_INTERNAL_MANAGER_H <ftcache.h> +#define FT_CACHE_INTERNAL_CACHE_H <ftcache.h> +#define FT_CACHE_INTERNAL_GLYPH_H <ftcache.h> +#define FT_CACHE_INTERNAL_IMAGE_H <ftcache.h> +#define FT_CACHE_INTERNAL_SBITS_H <ftcache.h> -/* TODO(david): Move this section below to a different header */ + +#define FT_INCREMENTAL_H <ftincrem.h> + +#define FT_TRUETYPE_UNPATENTED_H <ttunpat.h> + + + /* + * Include internal headers definitions from <internal/...> + * only when building the library. + */ #ifdef FT2_BUILD_LIBRARY -#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */ - - /* We disable the warning `conditional expression is constant' here */ - /* in order to compile cleanly with the maximum level of warnings. */ - /* In particular, the warning complains about stuff like `while(0)' */ - /* which is very useful in macro definitions. There is no benefit */ - /* in having it enabled. */ -#pragma warning( disable : 4127 ) - -#endif /* _MSC_VER */ +#define FT_INTERNAL_INTERNAL_H <internal/internal.h> +#include FT_INTERNAL_INTERNAL_H #endif /* FT2_BUILD_LIBRARY */ -#endif /* FTHEADER_H_ */ + +#endif /* __FT2_BUILD_H__ */ /* END */ diff --git a/win64/include/freetype/config/ftmodule.h b/win64/include/freetype/config/ftmodule.h index b5c4b1ee..76d271a7 100644 --- a/win64/include/freetype/config/ftmodule.h +++ b/win64/include/freetype/config/ftmodule.h @@ -1,12 +1,12 @@ /* - * This file registers the FreeType modules compiled into the library. + * This file registers the FreeType modules compiled into the library. * - * If you use GNU make, this file IS NOT USED! Instead, it is created in - * the objects directory (normally `<topdir>/objs/`) based on information - * from `<topdir>/modules.cfg`. + * If you use GNU make, this file IS NOT USED! Instead, it is created in + * the objects directory (normally `<topdir>/objs/') based on information + * from `<topdir>/modules.cfg'. * - * Please read `docs/INSTALL.ANY` and `docs/CUSTOMIZE` how to compile - * FreeType without GNU make. + * Please read `docs/INSTALL.ANY' and `docs/CUSTOMIZE' how to compile + * FreeType without GNU make. * */ @@ -25,6 +25,8 @@ FT_USE_MODULE( FT_Module_Class, pshinter_module_class ) FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_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_smooth_lcd_renderer_class ) +FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcdv_renderer_class ) FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class ) /* EOF */ diff --git a/win64/include/freetype/config/ftoption.h b/win64/include/freetype/config/ftoption.h index 02a0fcd8..2b0b67e7 100644 --- a/win64/include/freetype/config/ftoption.h +++ b/win64/include/freetype/config/ftoption.h @@ -1,23 +1,23 @@ -/**************************************************************************** - * - * ftoption.h - * - * User-selectable configuration macros (specification only). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftoption.h */ +/* */ +/* User-selectable configuration macros (specification only). */ +/* */ +/* Copyright 1996-2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTOPTION_H_ -#define FTOPTION_H_ +#ifndef __FTOPTION_H__ +#define __FTOPTION_H__ #include <ft2build.h> @@ -25,47 +25,45 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * USER-SELECTABLE CONFIGURATION MACROS - * - * This file contains the default configuration macro definitions for a - * standard build of the FreeType library. There are three ways to use - * this file to build project-specific versions of the library: - * - * - You can modify this file by hand, but this is not recommended in - * cases where you would like to build several versions of the library - * from a single source directory. - * - * - You can put a copy of this file in your build directory, more - * precisely in `$BUILD/freetype/config/ftoption.h`, where `$BUILD` is - * the name of a directory that is included _before_ the FreeType include - * path during compilation. - * - * The default FreeType Makefiles use the build directory - * `builds/<system>` by default, but you can easily change that for your - * own projects. - * - * - Copy the file <ft2build.h> to `$BUILD/ft2build.h` and modify it - * slightly to pre-define the macro `FT_CONFIG_OPTIONS_H` used to locate - * this file during the build. For example, - * - * ``` - * #define FT_CONFIG_OPTIONS_H <myftoptions.h> - * #include <freetype/config/ftheader.h> - * ``` - * - * will use `$BUILD/myftoptions.h` instead of this file for macro - * definitions. - * - * Note also that you can similarly pre-define the macro - * `FT_CONFIG_MODULES_H` used to locate the file listing of the modules - * that are statically linked to the library at compile time. By - * default, this file is `<freetype/config/ftmodule.h>`. - * - * We highly recommend using the third method whenever possible. - * - */ + /*************************************************************************/ + /* */ + /* USER-SELECTABLE CONFIGURATION MACROS */ + /* */ + /* This file contains the default configuration macro definitions for */ + /* a standard build of the FreeType library. There are three ways to */ + /* use this file to build project-specific versions of the library: */ + /* */ + /* - You can modify this file by hand, but this is not recommended in */ + /* cases where you would like to build several versions of the */ + /* library from a single source directory. */ + /* */ + /* - You can put a copy of this file in your build directory, more */ + /* precisely in `$BUILD/config/ftoption.h', where `$BUILD' is the */ + /* name of a directory that is included _before_ the FreeType include */ + /* path during compilation. */ + /* */ + /* The default FreeType Makefiles and Jamfiles use the build */ + /* directory `builds/<system>' by default, but you can easily change */ + /* that for your own projects. */ + /* */ + /* - Copy the file <ft2build.h> to `$BUILD/ft2build.h' and modify it */ + /* slightly to pre-define the macro FT_CONFIG_OPTIONS_H used to */ + /* locate this file during the build. For example, */ + /* */ + /* #define FT_CONFIG_OPTIONS_H <myftoptions.h> */ + /* #include <config/ftheader.h> */ + /* */ + /* will use `$BUILD/myftoptions.h' instead of this file for macro */ + /* definitions. */ + /* */ + /* Note also that you can similarly pre-define the macro */ + /* FT_CONFIG_MODULES_H used to locate the file listing of the modules */ + /* that are statically linked to the library at compile time. By */ + /* default, this file is <config/ftmodule.h>. */ + /* */ + /* We highly recommend using the third method whenever possible. */ + /* */ + /*************************************************************************/ /*************************************************************************/ @@ -77,447 +75,428 @@ FT_BEGIN_HEADER /*************************************************************************/ - /*#************************************************************************ - * - * If you enable this configuration option, FreeType recognizes an - * environment variable called `FREETYPE_PROPERTIES`, which can be used to - * control the various font drivers and modules. The controllable - * properties are listed in the section @properties. - * - * You have to undefine this configuration option on platforms that lack - * the concept of environment variables (and thus don't have the `getenv` - * function), for example Windows CE. - * - * `FREETYPE_PROPERTIES` has the following syntax form (broken here into - * multiple lines for better readability). - * - * ``` - * <optional whitespace> - * <module-name1> ':' - * <property-name1> '=' <property-value1> - * <whitespace> - * <module-name2> ':' - * <property-name2> '=' <property-value2> - * ... - * ``` - * - * Example: - * - * ``` - * FREETYPE_PROPERTIES=truetype:interpreter-version=35 \ - * cff:no-stem-darkening=1 \ - * autofitter:warping=1 - * ``` - * - */ -#define FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES - - - /************************************************************************** - * - * Uncomment the line below if you want to activate LCD rendering - * technology similar to ClearType in this build of the library. This - * technology triples the resolution in the direction color subpixels. To - * mitigate color fringes inherent to this technology, you also need to - * explicitly set up LCD filtering. - * - * When this macro is not defined, FreeType offers alternative LCD - * rendering technology that produces excellent output. - */ + /*************************************************************************/ + /* */ + /* Uncomment the line below if you want to activate sub-pixel rendering */ + /* (a.k.a. LCD rendering, or ClearType) in this build of the library. */ + /* */ + /* Note that this feature is covered by several Microsoft patents */ + /* and should not be activated in any default build of the library. */ + /* */ + /* This macro has no impact on the FreeType API, only on its */ + /* _implementation_. For example, using FT_RENDER_MODE_LCD when calling */ + /* FT_Render_Glyph still generates a bitmap that is 3 times wider than */ + /* the original size in case this macro isn't defined; however, each */ + /* triplet of subpixels has R=G=B. */ + /* */ + /* This is done to allow FreeType clients to run unmodified, forcing */ + /* them to display normal gray-level anti-aliased glyphs. */ + /* */ /* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ - /************************************************************************** - * - * Many compilers provide a non-ANSI 64-bit data type that can be used by - * FreeType to speed up some computations. However, this will create some - * problems when compiling the library in strict ANSI mode. - * - * For this reason, the use of 64-bit integers is normally disabled when - * the `__STDC__` macro is defined. You can however disable this by - * defining the macro `FT_CONFIG_OPTION_FORCE_INT64` here. - * - * For most compilers, this will only create compilation warnings when - * building the library. - * - * ObNote: The compiler-specific 64-bit integers are detected in the - * file `ftconfig.h` either statically or through the `configure` - * script on supported platforms. - */ + /*************************************************************************/ + /* */ + /* Many compilers provide a non-ANSI 64-bit data type that can be used */ + /* by FreeType to speed up some computations. However, this will create */ + /* some problems when compiling the library in strict ANSI mode. */ + /* */ + /* For this reason, the use of 64-bit integers is normally disabled when */ + /* the __STDC__ macro is defined. You can however disable this by */ + /* defining the macro FT_CONFIG_OPTION_FORCE_INT64 here. */ + /* */ + /* For most compilers, this will only create compilation warnings when */ + /* building the library. */ + /* */ + /* ObNote: The compiler-specific 64-bit integers are detected in the */ + /* file `ftconfig.h' either statically or through the */ + /* `configure' script on supported platforms. */ + /* */ #undef FT_CONFIG_OPTION_FORCE_INT64 - /************************************************************************** - * - * If this macro is defined, do not try to use an assembler version of - * performance-critical functions (e.g., @FT_MulFix). You should only do - * that to verify that the assembler function works properly, or to execute - * benchmark tests of the various implementations. - */ + /*************************************************************************/ + /* */ + /* If this macro is defined, do not try to use an assembler version of */ + /* performance-critical functions (e.g. FT_MulFix). You should only do */ + /* that to verify that the assembler function works properly, or to */ + /* execute benchmark tests of the various implementations. */ /* #define FT_CONFIG_OPTION_NO_ASSEMBLER */ - /************************************************************************** - * - * If this macro is defined, try to use an inlined assembler version of the - * @FT_MulFix function, which is a 'hotspot' when loading and hinting - * glyphs, and which should be executed as fast as possible. - * - * Note that if your compiler or CPU is not supported, this will default to - * the standard and portable implementation found in `ftcalc.c`. - */ + /*************************************************************************/ + /* */ + /* If this macro is defined, try to use an inlined assembler version of */ + /* the `FT_MulFix' function, which is a `hotspot' when loading and */ + /* hinting glyphs, and which should be executed as fast as possible. */ + /* */ + /* Note that if your compiler or CPU is not supported, this will default */ + /* to the standard and portable implementation found in `ftcalc.c'. */ + /* */ #define FT_CONFIG_OPTION_INLINE_MULFIX - /************************************************************************** - * - * LZW-compressed file support. - * - * FreeType now handles font files that have been compressed with the - * `compress` program. This is mostly used to parse many of the PCF - * files that come with various X11 distributions. The implementation - * uses NetBSD's `zopen` to partially uncompress the file on the fly (see - * `src/lzw/ftgzip.c`). - * - * Define this macro if you want to enable this 'feature'. - */ + /*************************************************************************/ + /* */ + /* LZW-compressed file support. */ + /* */ + /* FreeType now handles font files that have been compressed with the */ + /* `compress' program. This is mostly used to parse many of the PCF */ + /* files that come with various X11 distributions. The implementation */ + /* uses NetBSD's `zopen' to partially uncompress the file on the fly */ + /* (see src/lzw/ftgzip.c). */ + /* */ + /* Define this macro if you want to enable this `feature'. */ + /* */ #define FT_CONFIG_OPTION_USE_LZW - /************************************************************************** - * - * Gzip-compressed file support. - * - * FreeType now handles font files that have been compressed with the - * `gzip` program. This is mostly used to parse many of the PCF files - * that come with XFree86. The implementation uses 'zlib' to partially - * uncompress the file on the fly (see `src/gzip/ftgzip.c`). - * - * Define this macro if you want to enable this 'feature'. See also the - * macro `FT_CONFIG_OPTION_SYSTEM_ZLIB` below. - */ + /*************************************************************************/ + /* */ + /* Gzip-compressed file support. */ + /* */ + /* FreeType now handles font files that have been compressed with the */ + /* `gzip' program. This is mostly used to parse many of the PCF files */ + /* that come with XFree86. The implementation uses `zlib' to */ + /* partially uncompress the file on the fly (see src/gzip/ftgzip.c). */ + /* */ + /* Define this macro if you want to enable this `feature'. See also */ + /* the macro FT_CONFIG_OPTION_SYSTEM_ZLIB below. */ + /* */ #define FT_CONFIG_OPTION_USE_ZLIB - /************************************************************************** - * - * ZLib library selection - * - * This macro is only used when `FT_CONFIG_OPTION_USE_ZLIB` is defined. - * It allows FreeType's 'ftgzip' component to link to the system's - * installation of the ZLib library. This is useful on systems like - * Unix or VMS where it generally is already available. - * - * If you let it undefined, the component will use its own copy of the - * zlib sources instead. These have been modified to be included - * directly within the component and **not** export external function - * names. This allows you to link any program with FreeType _and_ ZLib - * without linking conflicts. - * - * 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 + /*************************************************************************/ + /* */ + /* ZLib library selection */ + /* */ + /* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */ + /* It allows FreeType's `ftgzip' component to link to the system's */ + /* installation of the ZLib library. This is useful on systems like */ + /* Unix or VMS where it generally is already available. */ + /* */ + /* If you let it undefined, the component will use its own copy */ + /* of the zlib sources instead. These have been modified to be */ + /* included directly within the component and *not* export external */ + /* function names. This allows you to link any program with FreeType */ + /* _and_ ZLib without linking conflicts. */ + /* */ + /* Do not #undef this macro here since the build system might define */ + /* it for certain configurations only. */ + /* */ +/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ - /************************************************************************** - * - * Bzip2-compressed file support. - * - * FreeType now handles font files that have been compressed with the - * `bzip2` program. This is mostly used to parse many of the PCF files - * that come with XFree86. The implementation uses `libbz2` to partially - * uncompress the file on the fly (see `src/bzip2/ftbzip2.c`). Contrary - * to gzip, bzip2 currently is not included and need to use the system - * available bzip2 implementation. - * - * Define this macro if you want to enable this 'feature'. - * - * 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_USE_BZIP2 + /*************************************************************************/ + /* */ + /* Bzip2-compressed file support. */ + /* */ + /* FreeType now handles font files that have been compressed with the */ + /* `bzip2' program. This is mostly used to parse many of the PCF */ + /* files that come with XFree86. The implementation uses `libbz2' to */ + /* partially uncompress the file on the fly (see src/bzip2/ftbzip2.c). */ + /* Contrary to gzip, bzip2 currently is not included and need to use */ + /* the system available bzip2 implementation. */ + /* */ + /* Define this macro if you want to enable this `feature'. */ + /* */ +/* #define FT_CONFIG_OPTION_USE_BZIP2 */ - /************************************************************************** - * - * Define to disable the use of file stream functions and types, `FILE`, - * `fopen`, etc. Enables the use of smaller system libraries on embedded - * systems that have multiple system libraries, some with or without file - * stream support, in the cases where file stream support is not necessary - * such as memory loading of font files. - */ + /*************************************************************************/ + /* */ + /* Define to disable the use of file stream functions and types, FILE, */ + /* fopen() etc. Enables the use of smaller system libraries on embedded */ + /* systems that have multiple system libraries, some with or without */ + /* file stream support, in the cases where file stream support is not */ + /* necessary such as memory loading of font files. */ + /* */ /* #define FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT */ - /************************************************************************** - * - * PNG bitmap support. - * - * FreeType now handles loading color bitmap glyphs in the PNG format. - * This requires help from the external libpng library. Uncompressed - * color bitmaps do not need any external libraries and will be supported - * regardless of this configuration. - * - * Define this macro if you want to enable this 'feature'. - * - * 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_USE_PNG + /*************************************************************************/ + /* */ + /* PNG bitmap support. */ + /* */ + /* FreeType now handles loading color bitmap glyphs in the PNG format. */ + /* This requires help from the external libpng library. Uncompressed */ + /* color bitmaps do not need any external libraries and will be */ + /* supported regardless of this configuration. */ + /* */ + /* Define this macro if you want to enable this `feature'. */ + /* */ +/* #define FT_CONFIG_OPTION_USE_PNG */ - /************************************************************************** - * - * HarfBuzz support. - * - * FreeType uses the HarfBuzz library to improve auto-hinting of OpenType - * fonts. If available, many glyphs not directly addressable by a font's - * character map will be hinted also. - * - * Define this macro if you want to enable this 'feature'. - * - * 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. - */ + /*************************************************************************/ + /* */ + /* HarfBuzz support. */ + /* */ + /* FreeType uses the HarfBuzz library to improve auto-hinting of */ + /* OpenType fonts. If available, many glyphs not directly addressable */ + /* by a font's character map will be hinted also. */ + /* */ + /* Define this macro if you want to enable this `feature'. */ + /* */ /* #define FT_CONFIG_OPTION_USE_HARFBUZZ */ - /************************************************************************** - * - * Brotli support. - * - * FreeType uses the Brotli library to provide support for decompressing - * WOFF2 streams. - * - * Define this macro if you want to enable this 'feature'. - * - * 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_USE_BROTLI + /*************************************************************************/ + /* */ + /* DLL export compilation */ + /* */ + /* When compiling FreeType as a DLL, some systems/compilers need a */ + /* special keyword in front OR after the return type of function */ + /* declarations. */ + /* */ + /* Two macros are used within the FreeType source code to define */ + /* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */ + /* */ + /* FT_EXPORT( return_type ) */ + /* */ + /* is used in a function declaration, as in */ + /* */ + /* FT_EXPORT( FT_Error ) */ + /* FT_Init_FreeType( FT_Library* alibrary ); */ + /* */ + /* */ + /* FT_EXPORT_DEF( return_type ) */ + /* */ + /* is used in a function definition, as in */ + /* */ + /* FT_EXPORT_DEF( FT_Error ) */ + /* FT_Init_FreeType( FT_Library* alibrary ) */ + /* { */ + /* ... some code ... */ + /* return FT_Err_Ok; */ + /* } */ + /* */ + /* You can provide your own implementation of FT_EXPORT and */ + /* FT_EXPORT_DEF here if you want. If you leave them undefined, they */ + /* will be later automatically defined as `extern return_type' to */ + /* allow normal compilation. */ + /* */ + /* Do not #undef these macros here since the build system might define */ + /* them for certain configurations only. */ + /* */ +/* #define FT_EXPORT(x) extern x */ +/* #define FT_EXPORT_DEF(x) x */ - /************************************************************************** - * - * Glyph Postscript Names handling - * - * By default, FreeType 2 is compiled with the 'psnames' module. This - * module is in charge of converting a glyph name string into a Unicode - * value, or return a Macintosh standard glyph name for the use with the - * TrueType 'post' table. - * - * Undefine this macro if you do not want 'psnames' compiled in your - * build of FreeType. This has the following effects: - * - * - The TrueType driver will provide its own set of glyph names, if you - * build it to support postscript names in the TrueType 'post' table, - * but will not synthesize a missing Unicode charmap. - * - * - The Type~1 driver will not be able to synthesize a Unicode charmap - * out of the glyphs found in the fonts. - * - * You would normally undefine this configuration macro when building a - * version of FreeType that doesn't contain a Type~1 or CFF driver. - */ + /*************************************************************************/ + /* */ + /* Glyph Postscript Names handling */ + /* */ + /* By default, FreeType 2 is compiled with the `psnames' module. This */ + /* module is in charge of converting a glyph name string into a */ + /* Unicode value, or return a Macintosh standard glyph name for the */ + /* use with the TrueType `post' table. */ + /* */ + /* Undefine this macro if you do not want `psnames' compiled in your */ + /* build of FreeType. This has the following effects: */ + /* */ + /* - The TrueType driver will provide its own set of glyph names, */ + /* if you build it to support postscript names in the TrueType */ + /* `post' table. */ + /* */ + /* - The Type 1 driver will not be able to synthesize a Unicode */ + /* charmap out of the glyphs found in the fonts. */ + /* */ + /* You would normally undefine this configuration macro when building */ + /* a version of FreeType that doesn't contain a Type 1 or CFF driver. */ + /* */ #define FT_CONFIG_OPTION_POSTSCRIPT_NAMES - /************************************************************************** - * - * Postscript Names to Unicode Values support - * - * By default, FreeType~2 is built with the 'psnames' module compiled in. - * Among other things, the module is used to convert a glyph name into a - * Unicode value. This is especially useful in order to synthesize on - * the fly a Unicode charmap from the CFF/Type~1 driver through a big - * table named the 'Adobe Glyph List' (AGL). - * - * Undefine this macro if you do not want the Adobe Glyph List compiled - * in your 'psnames' module. The Type~1 driver will not be able to - * synthesize a Unicode charmap out of the glyphs found in the fonts. - */ + /*************************************************************************/ + /* */ + /* Postscript Names to Unicode Values support */ + /* */ + /* By default, FreeType 2 is built with the `PSNames' module compiled */ + /* in. Among other things, the module is used to convert a glyph name */ + /* into a Unicode value. This is especially useful in order to */ + /* synthesize on the fly a Unicode charmap from the CFF/Type 1 driver */ + /* through a big table named the `Adobe Glyph List' (AGL). */ + /* */ + /* Undefine this macro if you do not want the Adobe Glyph List */ + /* compiled in your `PSNames' module. The Type 1 driver will not be */ + /* able to synthesize a Unicode charmap out of the glyphs found in the */ + /* fonts. */ + /* */ #define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST - /************************************************************************** - * - * Support for Mac fonts - * - * Define this macro if you want support for outline fonts in Mac format - * (mac dfont, mac resource, macbinary containing a mac resource) on - * non-Mac platforms. - * - * Note that the 'FOND' resource isn't checked. - */ + /*************************************************************************/ + /* */ + /* Support for Mac fonts */ + /* */ + /* Define this macro if you want support for outline fonts in Mac */ + /* format (mac dfont, mac resource, macbinary containing a mac */ + /* resource) on non-Mac platforms. */ + /* */ + /* Note that the `FOND' resource isn't checked. */ + /* */ #define FT_CONFIG_OPTION_MAC_FONTS - /************************************************************************** - * - * Guessing methods to access embedded resource forks - * - * Enable extra Mac fonts support on non-Mac platforms (e.g., GNU/Linux). - * - * Resource forks which include fonts data are stored sometimes in - * locations which users or developers don't expected. In some cases, - * resource forks start with some offset from the head of a file. In - * other cases, the actual resource fork is stored in file different from - * what the user specifies. If this option is activated, FreeType tries - * to guess whether such offsets or different file names must be used. - * - * Note that normal, direct access of resource forks is controlled via - * the `FT_CONFIG_OPTION_MAC_FONTS` option. - */ + /*************************************************************************/ + /* */ + /* Guessing methods to access embedded resource forks */ + /* */ + /* Enable extra Mac fonts support on non-Mac platforms (e.g. */ + /* GNU/Linux). */ + /* */ + /* Resource forks which include fonts data are stored sometimes in */ + /* locations which users or developers don't expected. In some cases, */ + /* resource forks start with some offset from the head of a file. In */ + /* other cases, the actual resource fork is stored in file different */ + /* from what the user specifies. If this option is activated, */ + /* FreeType tries to guess whether such offsets or different file */ + /* names must be used. */ + /* */ + /* Note that normal, direct access of resource forks is controlled via */ + /* the FT_CONFIG_OPTION_MAC_FONTS option. */ + /* */ #ifdef FT_CONFIG_OPTION_MAC_FONTS #define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK #endif - /************************************************************************** - * - * Allow the use of `FT_Incremental_Interface` to load typefaces that - * contain no glyph data, but supply it via a callback function. This is - * required by clients supporting document formats which supply font data - * incrementally as the document is parsed, such as the Ghostscript - * interpreter for the PostScript language. - */ + /*************************************************************************/ + /* */ + /* Allow the use of FT_Incremental_Interface to load typefaces that */ + /* contain no glyph data, but supply it via a callback function. */ + /* This is required by clients supporting document formats which */ + /* supply font data incrementally as the document is parsed, such */ + /* as the Ghostscript interpreter for the PostScript language. */ + /* */ #define FT_CONFIG_OPTION_INCREMENTAL - /************************************************************************** - * - * The size in bytes of the render pool used by the scan-line converter to - * do all of its work. - */ + /*************************************************************************/ + /* */ + /* The size in bytes of the render pool used by the scan-line converter */ + /* to do all of its work. */ + /* */ + /* This must be greater than 4KByte if you use FreeType to rasterize */ + /* glyphs; otherwise, you may set it to zero to avoid unnecessary */ + /* allocation of the render pool. */ + /* */ #define FT_RENDER_POOL_SIZE 16384L - /************************************************************************** - * - * FT_MAX_MODULES - * - * The maximum number of modules that can be registered in a single - * FreeType library object. 32~is the default. - */ + /*************************************************************************/ + /* */ + /* FT_MAX_MODULES */ + /* */ + /* The maximum number of modules that can be registered in a single */ + /* FreeType library object. 32 is the default. */ + /* */ #define FT_MAX_MODULES 32 - /************************************************************************** - * - * Debug level - * - * FreeType can be compiled in debug or trace mode. In debug mode, - * errors are reported through the 'ftdebug' component. In trace mode, - * additional messages are sent to the standard output during execution. - * - * Define `FT_DEBUG_LEVEL_ERROR` to build the library in debug mode. - * Define `FT_DEBUG_LEVEL_TRACE` to build it in trace mode. - * - * Don't define any of these macros to compile in 'release' mode! - * - * Do not `#undef` these macros here since the build system might define - * them for certain configurations only. - */ + /*************************************************************************/ + /* */ + /* Debug level */ + /* */ + /* FreeType can be compiled in debug or trace mode. In debug mode, */ + /* errors are reported through the `ftdebug' component. In trace */ + /* mode, additional messages are sent to the standard output during */ + /* execution. */ + /* */ + /* Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode. */ + /* Define FT_DEBUG_LEVEL_TRACE to build it in trace mode. */ + /* */ + /* Don't define any of these macros to compile in `release' mode! */ + /* */ + /* Do not #undef these macros here since the build system might define */ + /* them for certain configurations only. */ + /* */ /* #define FT_DEBUG_LEVEL_ERROR */ /* #define FT_DEBUG_LEVEL_TRACE */ - /************************************************************************** - * - * Autofitter debugging - * - * If `FT_DEBUG_AUTOFIT` is defined, FreeType provides some means to - * control the autofitter behaviour for debugging purposes with global - * boolean variables (consequently, you should **never** enable this - * while compiling in 'release' mode): - * - * ``` - * _af_debug_disable_horz_hints - * _af_debug_disable_vert_hints - * _af_debug_disable_blue_hints - * ``` - * - * Additionally, the following functions provide dumps of various - * internal autofit structures to stdout (using `printf`): - * - * ``` - * af_glyph_hints_dump_points - * af_glyph_hints_dump_segments - * af_glyph_hints_dump_edges - * af_glyph_hints_get_num_segments - * af_glyph_hints_get_segment_offset - * ``` - * - * As an argument, they use another global variable: - * - * ``` - * _af_debug_hints - * ``` - * - * Please have a look at the `ftgrid` demo program to see how those - * variables and macros should be used. - * - * Do not `#undef` these macros here since the build system might define - * them for certain configurations only. - */ + /*************************************************************************/ + /* */ + /* Autofitter debugging */ + /* */ + /* If FT_DEBUG_AUTOFIT is defined, FreeType provides some means to */ + /* control the autofitter behaviour for debugging purposes with global */ + /* boolean variables (consequently, you should *never* enable this */ + /* while compiling in `release' mode): */ + /* */ + /* _af_debug_disable_horz_hints */ + /* _af_debug_disable_vert_hints */ + /* _af_debug_disable_blue_hints */ + /* */ + /* Additionally, the following functions provide dumps of various */ + /* internal autofit structures to stdout (using `printf'): */ + /* */ + /* af_glyph_hints_dump_points */ + /* af_glyph_hints_dump_segments */ + /* af_glyph_hints_dump_edges */ + /* */ + /* As an argument, they use another global variable: */ + /* */ + /* _af_debug_hints */ + /* */ + /* Please have a look at the `ftgrid' demo program to see how those */ + /* variables and macros should be used. */ + /* */ + /* Do not #undef these macros here since the build system might define */ + /* them for certain configurations only. */ + /* */ /* #define FT_DEBUG_AUTOFIT */ - /************************************************************************** - * - * Memory Debugging - * - * FreeType now comes with an integrated memory debugger that is capable - * of detecting simple errors like memory leaks or double deletes. To - * compile it within your build of the library, you should define - * `FT_DEBUG_MEMORY` here. - * - * Note that the memory debugger is only activated at runtime when when - * the _environment_ variable `FT2_DEBUG_MEMORY` is defined also! - * - * Do not `#undef` this macro here since the build system might define it - * for certain configurations only. - */ + /*************************************************************************/ + /* */ + /* Memory Debugging */ + /* */ + /* FreeType now comes with an integrated memory debugger that is */ + /* capable of detecting simple errors like memory leaks or double */ + /* deletes. To compile it within your build of the library, you */ + /* should define FT_DEBUG_MEMORY here. */ + /* */ + /* Note that the memory debugger is only activated at runtime when */ + /* when the _environment_ variable `FT2_DEBUG_MEMORY' is defined also! */ + /* */ + /* Do not #undef this macro here since the build system might define */ + /* it for certain configurations only. */ + /* */ /* #define FT_DEBUG_MEMORY */ - /************************************************************************** - * - * Module errors - * - * If this macro is set (which is _not_ the default), the higher byte of - * an error code gives the module in which the error has occurred, while - * the lower byte is the real error code. - * - * Setting this macro makes sense for debugging purposes only, since it - * would break source compatibility of certain programs that use - * FreeType~2. - * - * More details can be found in the files `ftmoderr.h` and `fterrors.h`. - */ + /*************************************************************************/ + /* */ + /* Module errors */ + /* */ + /* If this macro is set (which is _not_ the default), the higher byte */ + /* of an error code gives the module in which the error has occurred, */ + /* while the lower byte is the real error code. */ + /* */ + /* Setting this macro makes sense for debugging purposes only, since */ + /* it 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 - * size of FreeType. - * - * More details can be found in the file `fterrors.h`. - */ -/* #define FT_CONFIG_OPTION_ERROR_STRINGS */ + /*************************************************************************/ + /* */ + /* Position Independent Code */ + /* */ + /* If this macro is set (which is _not_ the default), FreeType2 will */ + /* avoid creating constants that require address fixups. Instead the */ + /* constants will be moved into a struct and additional intialization */ + /* code will be used. */ + /* */ + /* Setting this macro is needed for systems that prohibit address */ + /* fixups, such as BREW. */ + /* */ +/* #define FT_CONFIG_OPTION_PIC */ /*************************************************************************/ @@ -529,60 +508,50 @@ FT_BEGIN_HEADER /*************************************************************************/ - /************************************************************************** - * - * Define `TT_CONFIG_OPTION_EMBEDDED_BITMAPS` if you want to support - * embedded bitmaps in all formats using the 'sfnt' module (namely - * TrueType~& OpenType). - */ + /*************************************************************************/ + /* */ + /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support */ + /* embedded bitmaps in all formats using the SFNT module (namely */ + /* TrueType & OpenType). */ + /* */ #define TT_CONFIG_OPTION_EMBEDDED_BITMAPS - /************************************************************************** - * - * Define `TT_CONFIG_OPTION_COLOR_LAYERS` if you want to support colored - * outlines (from the 'COLR'/'CPAL' tables) in all formats using the 'sfnt' - * module (namely TrueType~& OpenType). - */ -#define TT_CONFIG_OPTION_COLOR_LAYERS - - - /************************************************************************** - * - * Define `TT_CONFIG_OPTION_POSTSCRIPT_NAMES` if you want to be able to - * load and enumerate the glyph Postscript names in a TrueType or OpenType - * file. - * - * Note that when you do not compile the 'psnames' module by undefining the - * above `FT_CONFIG_OPTION_POSTSCRIPT_NAMES`, the 'sfnt' module will - * contain additional code used to read the PS Names table from a font. - * - * (By default, the module uses 'psnames' to extract glyph names.) - */ + /*************************************************************************/ + /* */ + /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to */ + /* load and enumerate the glyph Postscript names in a TrueType or */ + /* OpenType file. */ + /* */ + /* Note that when you do not compile the `PSNames' module by undefining */ + /* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the `sfnt' module will */ + /* contain additional code used to read the PS Names table from a font. */ + /* */ + /* (By default, the module uses `PSNames' to extract glyph names.) */ + /* */ #define TT_CONFIG_OPTION_POSTSCRIPT_NAMES - /************************************************************************** - * - * Define `TT_CONFIG_OPTION_SFNT_NAMES` if your applications need to access - * the internal name table in a SFNT-based format like TrueType or - * OpenType. The name table contains various strings used to describe the - * font, like family name, copyright, version, etc. It does not contain - * any glyph name though. - * - * Accessing SFNT names is done through the functions declared in - * `ftsnames.h`. - */ + /*************************************************************************/ + /* */ + /* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to */ + /* access the internal name table in a SFNT-based format like TrueType */ + /* or OpenType. The name table contains various strings used to */ + /* describe the font, like family name, copyright, version, etc. It */ + /* does not contain any glyph name though. */ + /* */ + /* Accessing SFNT names is done through the functions declared in */ + /* `ftsnames.h'. */ + /* */ #define TT_CONFIG_OPTION_SFNT_NAMES - /************************************************************************** - * - * TrueType CMap support - * - * Here you can fine-tune which TrueType CMap table format shall be - * supported. - */ + /*************************************************************************/ + /* */ + /* TrueType CMap support */ + /* */ + /* Here you can fine-tune which TrueType CMap table format shall be */ + /* supported. */ #define TT_CONFIG_CMAP_FORMAT_0 #define TT_CONFIG_CMAP_FORMAT_2 #define TT_CONFIG_CMAP_FORMAT_4 @@ -602,135 +571,142 @@ FT_BEGIN_HEADER /*************************************************************************/ /*************************************************************************/ - /************************************************************************** - * - * Define `TT_CONFIG_OPTION_BYTECODE_INTERPRETER` if you want to compile a - * bytecode interpreter in the TrueType driver. - * - * By undefining this, you will only compile the code necessary to load - * TrueType glyphs without hinting. - * - * Do not `#undef` this macro here, since the build system might define it - * for certain configurations only. - */ + /*************************************************************************/ + /* */ + /* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile */ + /* a bytecode interpreter in the TrueType driver. */ + /* */ + /* By undefining this, you will only compile the code necessary to load */ + /* TrueType glyphs without hinting. */ + /* */ + /* Do not #undef this macro here, since the build system might */ + /* define it for certain configurations only. */ + /* */ #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER - /************************************************************************** - * - * Define `TT_CONFIG_OPTION_SUBPIXEL_HINTING` if you want to compile - * subpixel hinting support into the TrueType driver. This modifies the - * TrueType hinting mechanism when anything but `FT_RENDER_MODE_MONO` is - * requested. - * - * In particular, it modifies the bytecode interpreter to interpret (or - * not) instructions in a certain way so that all TrueType fonts look like - * they do in a Windows ClearType (DirectWrite) environment. See [1] for a - * technical overview on what this means. See `ttinterp.h` for more - * details on the LEAN option. - * - * There are three possible values. - * - * Value 1: - * This value is associated with the 'Infinality' moniker, contributed by - * an individual nicknamed Infinality with the goal of making TrueType - * fonts render better than on Windows. A high amount of configurability - * and flexibility, down to rules for single glyphs in fonts, but also - * very slow. Its experimental and slow nature and the original - * developer losing interest meant that this option was never enabled in - * default builds. - * - * The corresponding interpreter version is v38. - * - * Value 2: - * The new default mode for the TrueType driver. The Infinality code - * base was stripped to the bare minimum and all configurability removed - * in the name of speed and simplicity. The configurability was mainly - * aimed at legacy fonts like 'Arial', 'Times New Roman', or 'Courier'. - * Legacy fonts are fonts that modify vertical stems to achieve clean - * black-and-white bitmaps. The new mode focuses on applying a minimal - * set of rules to all fonts indiscriminately so that modern and web - * fonts render well while legacy fonts render okay. - * - * The corresponding interpreter version is v40. - * - * Value 3: - * Compile both, making both v38 and v40 available (the latter is the - * default). - * - * By undefining these, you get rendering behavior like on Windows without - * ClearType, i.e., Windows XP without ClearType enabled and Win9x - * (interpreter version v35). Or not, depending on how much hinting blood - * and testing tears the font designer put into a given font. If you - * define one or both subpixel hinting options, you can switch between - * between v35 and the ones you define (using `FT_Property_Set`). - * - * This option requires `TT_CONFIG_OPTION_BYTECODE_INTERPRETER` to be - * defined. - * - * [1] - * https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx - */ -/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 1 */ -#define TT_CONFIG_OPTION_SUBPIXEL_HINTING 2 -/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING ( 1 | 2 ) */ + /*************************************************************************/ + /* */ + /* Define TT_CONFIG_OPTION_SUBPIXEL_HINTING if you want to compile */ + /* EXPERIMENTAL subpixel hinting support into the TrueType driver. This */ + /* replaces the native TrueType hinting mechanism when anything but */ + /* FT_RENDER_MODE_MONO is requested. */ + /* */ + /* Enabling this causes the TrueType driver to ignore instructions under */ + /* certain conditions. This is done in accordance with the guide here, */ + /* with some minor differences: */ + /* */ + /* http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx */ + /* */ + /* By undefining this, you only compile the code necessary to hint */ + /* TrueType glyphs with native TT hinting. */ + /* */ + /* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be */ + /* defined. */ + /* */ +/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING */ - /************************************************************************** - * - * Define `TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED` to compile the - * TrueType glyph loader to use Apple's definition of how to handle - * component offsets in composite glyphs. - * - * Apple and MS disagree on the default behavior of component offsets in - * composites. Apple says that they should be scaled by the scaling - * factors in the transformation matrix (roughly, it's more complex) while - * MS says they should not. OpenType defines two bits in the composite - * flags array which can be used to disambiguate, but old fonts will not - * have them. - * - * https://www.microsoft.com/typography/otspec/glyf.htm - * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html - */ + /*************************************************************************/ + /* */ + /* If you define TT_CONFIG_OPTION_UNPATENTED_HINTING, a special version */ + /* of the TrueType bytecode interpreter is used that doesn't implement */ + /* any of the patented opcodes and algorithms. The patents related to */ + /* TrueType hinting have expired worldwide since May 2010; this option */ + /* is now deprecated. */ + /* */ + /* Note that the TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* */ + /* if you define TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, */ + /* either define TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */ + /* TT_CONFIG_OPTION_UNPATENTED_HINTING but not both at the same time. */ + /* */ + /* This macro is only useful for a small number of font files (mostly */ + /* for Asian scripts) that require bytecode interpretation to properly */ + /* load glyphs. For all other fonts, this produces unpleasant results, */ + /* thus the unpatented interpreter is never used to load glyphs from */ + /* TrueType fonts unless one of the following two options is used. */ + /* */ + /* - The unpatented interpreter is explicitly activated by the user */ + /* through the FT_PARAM_TAG_UNPATENTED_HINTING parameter tag */ + /* when opening the FT_Face. */ + /* */ + /* - FreeType detects that the FT_Face corresponds to one of the */ + /* `trick' fonts (e.g., `Mingliu') it knows about. The font engine */ + /* contains a hard-coded list of font names and other matching */ + /* parameters (see function `tt_face_init' in file */ + /* `src/truetype/ttobjs.c'). */ + /* */ + /* Here a sample code snippet for using FT_PARAM_TAG_UNPATENTED_HINTING. */ + /* */ + /* { */ + /* FT_Parameter parameter; */ + /* FT_Open_Args open_args; */ + /* */ + /* */ + /* parameter.tag = FT_PARAM_TAG_UNPATENTED_HINTING; */ + /* */ + /* open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; */ + /* open_args.pathname = my_font_pathname; */ + /* open_args.num_params = 1; */ + /* open_args.params = ¶meter; */ + /* */ + /* error = FT_Open_Face( library, &open_args, index, &face ); */ + /* ... */ + /* } */ + /* */ +/* #define TT_CONFIG_OPTION_UNPATENTED_HINTING */ + + + /*************************************************************************/ + /* */ + /* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType */ + /* bytecode interpreter with a huge switch statement, rather than a call */ + /* table. This results in smaller and faster code for a number of */ + /* architectures. */ + /* */ + /* Note however that on some compiler/processor combinations, undefining */ + /* this macro will generate faster, though larger, code. */ + /* */ +#define TT_CONFIG_OPTION_INTERPRETER_SWITCH + + + /*************************************************************************/ + /* */ + /* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */ + /* TrueType glyph loader to use Apple's definition of how to handle */ + /* component offsets in composite glyphs. */ + /* */ + /* Apple and MS disagree on the default behavior of component offsets */ + /* in composites. Apple says that they should be scaled by the scaling */ + /* factors in the transformation matrix (roughly, it's more complex) */ + /* while MS says they should not. OpenType defines two bits in the */ + /* composite flags array which can be used to disambiguate, but old */ + /* fonts will not have them. */ + /* */ + /* http://www.microsoft.com/typography/otspec/glyf.htm */ + /* http://fonts.apple.com/TTRefMan/RM06/Chap6glyf.html */ + /* */ #undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED - /************************************************************************** - * - * Define `TT_CONFIG_OPTION_GX_VAR_SUPPORT` if you want to include support - * for Apple's distortable font technology ('fvar', 'gvar', 'cvar', and - * 'avar' tables). Tagged 'Font Variations', this is now part of OpenType - * also. This has many similarities to Type~1 Multiple Masters support. - */ + /*************************************************************************/ + /* */ + /* Define TT_CONFIG_OPTION_GX_VAR_SUPPORT if you want to include */ + /* support for Apple's distortable font technology (fvar, gvar, cvar, */ + /* and avar tables). This has many similarities to Type 1 Multiple */ + /* Masters support. */ + /* */ #define TT_CONFIG_OPTION_GX_VAR_SUPPORT - /************************************************************************** - * - * Define `TT_CONFIG_OPTION_BDF` if you want to include support for an - * embedded 'BDF~' table within SFNT-based bitmap formats. - */ + /*************************************************************************/ + /* */ + /* Define TT_CONFIG_OPTION_BDF if you want to include support for */ + /* an embedded `BDF ' table within SFNT-based bitmap formats. */ + /* */ #define TT_CONFIG_OPTION_BDF - /************************************************************************** - * - * Option `TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES` controls the maximum - * number of bytecode instructions executed for a single run of the - * bytecode interpreter, needed to prevent infinite loops. You don't want - * to change this except for very special situations (e.g., making a - * library fuzzer spend less time to handle broken fonts). - * - * It is not expected that this value is ever modified by a configuring - * script; instead, it gets surrounded with `#ifndef ... #endif` so that - * the value can be set as a preprocessor option on the compiler's command - * line. - */ -#ifndef TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES -#define TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES 1000000L -#endif - - /*************************************************************************/ /*************************************************************************/ /**** ****/ @@ -740,61 +716,52 @@ FT_BEGIN_HEADER /*************************************************************************/ - /************************************************************************** - * - * `T1_MAX_DICT_DEPTH` is the maximum depth of nest dictionaries and arrays - * in the Type~1 stream (see `t1load.c`). A minimum of~4 is required. - */ + /*************************************************************************/ + /* */ + /* T1_MAX_DICT_DEPTH is the maximum depth of nest dictionaries and */ + /* arrays in the Type 1 stream (see t1load.c). A minimum of 4 is */ + /* required. */ + /* */ #define T1_MAX_DICT_DEPTH 5 - /************************************************************************** - * - * `T1_MAX_SUBRS_CALLS` details the maximum number of nested sub-routine - * calls during glyph loading. - */ + /*************************************************************************/ + /* */ + /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */ + /* calls during glyph loading. */ + /* */ #define T1_MAX_SUBRS_CALLS 16 - /************************************************************************** - * - * `T1_MAX_CHARSTRING_OPERANDS` is the charstring stack's capacity. A - * minimum of~16 is required. - * - * The Chinese font 'MingTiEG-Medium' (covering the CNS 11643 character - * set) needs 256. - */ + /*************************************************************************/ + /* */ + /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */ + /* minimum of 16 is required. */ + /* */ + /* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256. */ + /* */ #define T1_MAX_CHARSTRINGS_OPERANDS 256 - /************************************************************************** - * - * Define this configuration macro if you want to prevent the compilation - * of the 't1afm' module, which is in charge of reading Type~1 AFM files - * into an existing face. Note that if set, the Type~1 driver will be - * unable to produce kerning distances. - */ + /*************************************************************************/ + /* */ + /* Define this configuration macro if you want to prevent the */ + /* compilation of `t1afm', which is in charge of reading Type 1 AFM */ + /* files into an existing face. Note that if set, the T1 driver will be */ + /* unable to produce kerning distances. */ + /* */ #undef T1_CONFIG_OPTION_NO_AFM - /************************************************************************** - * - * Define this configuration macro if you want to prevent the compilation - * of the Multiple Masters font support in the Type~1 driver. - */ + /*************************************************************************/ + /* */ + /* Define this configuration macro if you want to prevent the */ + /* compilation of the Multiple Masters font support in the Type 1 */ + /* driver. */ + /* */ #undef T1_CONFIG_OPTION_NO_MM_SUPPORT - /************************************************************************** - * - * `T1_CONFIG_OPTION_OLD_ENGINE` controls whether the pre-Adobe Type~1 - * engine gets compiled into FreeType. If defined, it is possible to - * switch between the two engines using the `hinting-engine` property of - * the 'type1' driver module. - */ -/* #define T1_CONFIG_OPTION_OLD_ENGINE */ - - /*************************************************************************/ /*************************************************************************/ /**** ****/ @@ -804,16 +771,17 @@ FT_BEGIN_HEADER /*************************************************************************/ - /************************************************************************** - * - * Using `CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}` it is - * possible to set up the default values of the four control points that - * define the stem darkening behaviour of the (new) CFF engine. For more - * details please read the documentation of the `darkening-parameters` - * property (file `ftdriver.h`), which allows the control at run-time. - * - * Do **not** undefine these macros! - */ + /*************************************************************************/ + /* */ + /* Using CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4} it is */ + /* possible to set up the default values of the four control points that */ + /* define the stem darkening behaviour of the (new) CFF engine. For */ + /* more details please read the documentation of the */ + /* `darkening-parameters' property of the cff driver module (file */ + /* `ftcffdrv.h'), which allows the control at run-time. */ + /* */ + /* Do *not* undefine these macros! */ + /* */ #define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 500 #define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 400 @@ -827,43 +795,16 @@ FT_BEGIN_HEADER #define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 0 - /************************************************************************** - * - * `CFF_CONFIG_OPTION_OLD_ENGINE` controls whether the pre-Adobe CFF engine - * gets compiled into FreeType. If defined, it is possible to switch - * between the two engines using the `hinting-engine` property of the 'cff' - * driver module. - */ + /*************************************************************************/ + /* */ + /* CFF_CONFIG_OPTION_OLD_ENGINE controls whether the pre-Adobe CFF */ + /* engine gets compiled into FreeType. If defined, it is possible to */ + /* switch between the two engines using the `hinting-engine' property of */ + /* the cff driver module. */ + /* */ /* #define CFF_CONFIG_OPTION_OLD_ENGINE */ - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** P C F D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /************************************************************************** - * - * There are many PCF fonts just called 'Fixed' which look completely - * different, and which have nothing to do with each other. When selecting - * 'Fixed' in KDE or Gnome one gets results that appear rather random, the - * style changes often if one changes the size and one cannot select some - * fonts at all. This option makes the 'pcf' module prepend the foundry - * name (plus a space) to the family name. - * - * We also check whether we have 'wide' characters; all put together, we - * get family names like 'Sony Fixed' or 'Misc Fixed Wide'. - * - * If this option is activated, it can be controlled with the - * `no-long-family-names` property of the 'pcf' driver module. - */ -/* #define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */ - - /*************************************************************************/ /*************************************************************************/ /**** ****/ @@ -873,97 +814,57 @@ FT_BEGIN_HEADER /*************************************************************************/ - /************************************************************************** - * - * Compile 'autofit' module with CJK (Chinese, Japanese, Korean) script - * support. - */ + /*************************************************************************/ + /* */ + /* Compile autofit module with CJK (Chinese, Japanese, Korean) script */ + /* support. */ + /* */ #define AF_CONFIG_OPTION_CJK - - /************************************************************************** - * - * Compile 'autofit' module with fallback Indic script support, covering - * some scripts that the 'latin' submodule of the 'autofit' module doesn't - * (yet) handle. Currently, this needs option `AF_CONFIG_OPTION_CJK`. - */ -#ifdef AF_CONFIG_OPTION_CJK + /*************************************************************************/ + /* */ + /* Compile autofit module with Indic script support. */ + /* */ #define AF_CONFIG_OPTION_INDIC -#endif - - /************************************************************************** - * - * Compile 'autofit' module with warp hinting. The idea of the warping - * code is to slightly scale and shift a glyph within a single dimension so - * that as much of its segments are aligned (more or less) on the grid. To - * find out the optimal scaling and shifting value, various parameter - * combinations are tried and scored. - * - * You can switch warping on and off with the `warping` property of the - * auto-hinter (see file `ftdriver.h` for more information; by default it - * is switched off). - * - * This experimental option is not active if the rendering mode is - * `FT_RENDER_MODE_LIGHT`. - */ -#define AF_CONFIG_OPTION_USE_WARPER - - - /************************************************************************** - * - * Use TrueType-like size metrics for 'light' auto-hinting. - * - * It is strongly recommended to avoid this option, which exists only to - * help some legacy applications retain its appearance and behaviour with - * respect to auto-hinted TrueType fonts. - * - * The very reason this option exists at all are GNU/Linux distributions - * like Fedora that did not un-patch the following change (which was - * present in FreeType between versions 2.4.6 and 2.7.1, inclusive). - * - * ``` - * 2011-07-16 Steven Chu <steven.f.chu@gmail.com> - * - * [truetype] Fix metrics on size request for scalable fonts. - * ``` - * - * This problematic commit is now reverted (more or less). - */ -/* #define AF_CONFIG_OPTION_TT_SIZE_METRICS */ + /*************************************************************************/ + /* */ + /* Compile autofit module with warp hinting. The idea of the warping */ + /* code is to slightly scale and shift a glyph within a single dimension */ + /* so that as much of its segments are aligned (more or less) on the */ + /* grid. To find out the optimal scaling and shifting value, various */ + /* parameter combinations are tried and scored. */ + /* */ + /* This experimental option is only active if the render mode is */ + /* FT_RENDER_MODE_LIGHT. */ + /* */ +/* #define AF_CONFIG_OPTION_USE_WARPER */ /* */ /* - * This macro is obsolete. Support has been removed in FreeType version - * 2.5. + * This macro is obsolete. Support has been removed in FreeType + * version 2.5. */ /* #define FT_CONFIG_OPTION_OLD_INTERNALS */ /* - * The next three macros are defined if native TrueType hinting is - * requested by the definitions above. Don't change this. + * This macro is defined if either unpatented or native TrueType + * hinting is requested by the definitions above. */ #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER #define TT_USE_BYTECODE_INTERPRETER - -#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING -#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 1 -#define TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY -#endif - -#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 2 -#define TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL -#endif -#endif +#undef TT_CONFIG_OPTION_UNPATENTED_HINTING +#elif defined TT_CONFIG_OPTION_UNPATENTED_HINTING +#define TT_USE_BYTECODE_INTERPRETER #endif /* * Check CFF darkening parameters. The checks are the same as in function - * `cff_property_set` in file `cffdrivr.c`. + * `cff_property_set' in file `cffdrivr.c'. */ #if CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 < 0 || \ CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 < 0 || \ @@ -992,7 +893,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTOPTION_H_ */ +#endif /* __FTOPTION_H__ */ /* END */ diff --git a/win64/include/freetype/config/ftstdlib.h b/win64/include/freetype/config/ftstdlib.h index d6091f8b..b940efc4 100644 --- a/win64/include/freetype/config/ftstdlib.h +++ b/win64/include/freetype/config/ftstdlib.h @@ -1,35 +1,36 @@ -/**************************************************************************** - * - * ftstdlib.h - * - * ANSI-specific library and header configuration file (specification - * only). - * - * Copyright (C) 2002-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftstdlib.h */ +/* */ +/* ANSI-specific library and header configuration file (specification */ +/* only). */ +/* */ +/* Copyright 2002-2007, 2009, 2011-2012 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * This file is used to group all `#includes` to the ANSI~C library that - * FreeType normally requires. It also defines macros to rename the - * standard functions within the FreeType source code. - * - * Load a file which defines `FTSTDLIB_H_` before this one to override it. - * - */ + /*************************************************************************/ + /* */ + /* This file is used to group all #includes to the ANSI C library that */ + /* FreeType normally requires. It also defines macros to rename the */ + /* standard functions within the FreeType source code. */ + /* */ + /* Load a file which defines __FTSTDLIB_H__ before this one to override */ + /* it. */ + /* */ + /*************************************************************************/ -#ifndef FTSTDLIB_H_ -#define FTSTDLIB_H_ +#ifndef __FTSTDLIB_H__ +#define __FTSTDLIB_H__ #include <stddef.h> @@ -37,23 +38,23 @@ #define ft_ptrdiff_t ptrdiff_t - /************************************************************************** - * - * integer limits - * - * `UINT_MAX` and `ULONG_MAX` are used to automatically compute the size of - * `int` and `long` in bytes at compile-time. So far, this works for all - * platforms the library has been tested on. - * - * Note that on the extremely rare platforms that do not provide integer - * types that are _exactly_ 16 and 32~bits wide (e.g., some old Crays where - * `int` is 36~bits), we do not make any guarantee about the correct - * behaviour of FreeType~2 with all fonts. - * - * In these cases, `ftconfig.h` will refuse to compile anyway with a - * message like 'couldn't find 32-bit type' or something similar. - * - */ + /**********************************************************************/ + /* */ + /* integer limits */ + /* */ + /* UINT_MAX and ULONG_MAX are used to automatically compute the size */ + /* of `int' and `long' in bytes at compile-time. So far, this works */ + /* for all platforms the library has been tested on. */ + /* */ + /* Note that on the extremely rare platforms that do not provide */ + /* integer types that are _exactly_ 16 and 32 bits wide (e.g. some */ + /* old Crays where `int' is 36 bits), we do not make any guarantee */ + /* about the correct behaviour of FT2 with all fonts. */ + /* */ + /* In these case, `ftconfig.h' will refuse to compile anyway with a */ + /* message like `couldn't find 32-bit type' or something similar. */ + /* */ + /**********************************************************************/ #include <limits.h> @@ -63,16 +64,14 @@ #define FT_INT_MAX INT_MAX #define FT_INT_MIN INT_MIN #define FT_UINT_MAX UINT_MAX -#define FT_LONG_MIN LONG_MIN -#define FT_LONG_MAX LONG_MAX #define FT_ULONG_MAX ULONG_MAX - /************************************************************************** - * - * character and string processing - * - */ + /**********************************************************************/ + /* */ + /* character and string processing */ + /* */ + /**********************************************************************/ #include <string.h> @@ -92,11 +91,11 @@ #define ft_strstr strstr - /************************************************************************** - * - * file handling - * - */ + /**********************************************************************/ + /* */ + /* file handling */ + /* */ + /**********************************************************************/ #include <stdio.h> @@ -110,11 +109,11 @@ #define ft_sprintf sprintf - /************************************************************************** - * - * sorting - * - */ + /**********************************************************************/ + /* */ + /* sorting */ + /* */ + /**********************************************************************/ #include <stdlib.h> @@ -122,11 +121,11 @@ #define ft_qsort qsort - /************************************************************************** - * - * memory allocation - * - */ + /**********************************************************************/ + /* */ + /* memory allocation */ + /* */ + /**********************************************************************/ #define ft_scalloc calloc @@ -135,41 +134,41 @@ #define ft_srealloc realloc - /************************************************************************** - * - * miscellaneous - * - */ + /**********************************************************************/ + /* */ + /* miscellaneous */ + /* */ + /**********************************************************************/ -#define ft_strtol strtol -#define ft_getenv getenv +#define ft_atol atol +#define ft_labs labs - /************************************************************************** - * - * execution control - * - */ + /**********************************************************************/ + /* */ + /* execution control */ + /* */ + /**********************************************************************/ #include <setjmp.h> -#define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */ - /* `jmp_buf` is defined as a macro */ - /* on certain platforms */ +#define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */ + /* jmp_buf is defined as a macro */ + /* on certain platforms */ #define ft_longjmp longjmp #define ft_setjmp( b ) setjmp( *(ft_jmp_buf*) &(b) ) /* same thing here */ - /* The following is only used for debugging purposes, i.e., if */ - /* `FT_DEBUG_LEVEL_ERROR` or `FT_DEBUG_LEVEL_TRACE` are defined. */ + /* the following is only used for debugging purposes, i.e., if */ + /* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined */ #include <stdarg.h> -#endif /* FTSTDLIB_H_ */ +#endif /* __FTSTDLIB_H__ */ /* END */ diff --git a/win64/include/freetype/config/integer-types.h b/win64/include/freetype/config/integer-types.h deleted file mode 100644 index a0ca0c95..00000000 --- a/win64/include/freetype/config/integer-types.h +++ /dev/null @@ -1,245 +0,0 @@ -/**************************************************************************** - * - * config/integer-types.h - * - * FreeType integer types definitions. - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.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 FREETYPE_CONFIG_INTEGER_TYPES_H_ -#define FREETYPE_CONFIG_INTEGER_TYPES_H_ - - /* There are systems (like the Texas Instruments 'C54x) where a `char` */ - /* has 16~bits. ANSI~C says that `sizeof(char)` is always~1. Since an */ - /* `int` has 16~bits also for this system, `sizeof(int)` gives~1 which */ - /* is probably unexpected. */ - /* */ - /* `CHAR_BIT` (defined in `limits.h`) gives the number of bits in a */ - /* `char` type. */ - -#ifndef FT_CHAR_BIT -#define FT_CHAR_BIT CHAR_BIT -#endif - -#ifndef FT_SIZEOF_INT - - /* The size of an `int` type. */ -#if FT_UINT_MAX == 0xFFFFUL -#define FT_SIZEOF_INT ( 16 / FT_CHAR_BIT ) -#elif FT_UINT_MAX == 0xFFFFFFFFUL -#define FT_SIZEOF_INT ( 32 / FT_CHAR_BIT ) -#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL -#define FT_SIZEOF_INT ( 64 / FT_CHAR_BIT ) -#else -#error "Unsupported size of `int' type!" -#endif - -#endif /* !defined(FT_SIZEOF_INT) */ - -#ifndef FT_SIZEOF_LONG - - /* The size of a `long` type. A five-byte `long` (as used e.g. on the */ - /* DM642) is recognized but avoided. */ -#if FT_ULONG_MAX == 0xFFFFFFFFUL -#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT ) -#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL -#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT ) -#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL -#define FT_SIZEOF_LONG ( 64 / FT_CHAR_BIT ) -#else -#error "Unsupported size of `long' type!" -#endif - -#endif /* !defined(FT_SIZEOF_LONG) */ - - /************************************************************************** - * - * @section: - * basic_types - * - */ - - - /************************************************************************** - * - * @type: - * FT_Int16 - * - * @description: - * A typedef for a 16bit signed integer type. - */ - typedef signed short FT_Int16; - - - /************************************************************************** - * - * @type: - * FT_UInt16 - * - * @description: - * A typedef for a 16bit unsigned integer type. - */ - typedef unsigned short FT_UInt16; - - /* */ - - - /* this #if 0 ... #endif clause is for documentation purposes */ -#if 0 - - /************************************************************************** - * - * @type: - * FT_Int32 - * - * @description: - * A typedef for a 32bit signed integer type. The size depends on the - * configuration. - */ - typedef signed XXX FT_Int32; - - - /************************************************************************** - * - * @type: - * FT_UInt32 - * - * A typedef for a 32bit unsigned integer type. The size depends on the - * configuration. - */ - typedef unsigned XXX FT_UInt32; - - - /************************************************************************** - * - * @type: - * FT_Int64 - * - * A typedef for a 64bit signed integer type. The size depends on the - * configuration. Only defined if there is real 64bit support; - * otherwise, it gets emulated with a structure (if necessary). - */ - typedef signed XXX FT_Int64; - - - /************************************************************************** - * - * @type: - * FT_UInt64 - * - * A typedef for a 64bit unsigned integer type. The size depends on the - * configuration. Only defined if there is real 64bit support; - * otherwise, it gets emulated with a structure (if necessary). - */ - typedef unsigned XXX FT_UInt64; - - /* */ - -#endif - -#if FT_SIZEOF_INT == ( 32 / FT_CHAR_BIT ) - - typedef signed int FT_Int32; - typedef unsigned int FT_UInt32; - -#elif FT_SIZEOF_LONG == ( 32 / FT_CHAR_BIT ) - - typedef signed long FT_Int32; - typedef unsigned long FT_UInt32; - -#else -#error "no 32bit type found -- please check your configuration files" -#endif - - - /* look up an integer type that is at least 32~bits */ -#if FT_SIZEOF_INT >= ( 32 / FT_CHAR_BIT ) - - typedef int FT_Fast; - typedef unsigned int FT_UFast; - -#elif FT_SIZEOF_LONG >= ( 32 / FT_CHAR_BIT ) - - typedef long FT_Fast; - typedef unsigned long FT_UFast; - -#endif - - - /* determine whether we have a 64-bit `int` type for platforms without */ - /* Autoconf */ -#if FT_SIZEOF_LONG == ( 64 / FT_CHAR_BIT ) - - /* `FT_LONG64` must be defined if a 64-bit type is available */ -#define FT_LONG64 -#define FT_INT64 long -#define FT_UINT64 unsigned long - - /************************************************************************** - * - * A 64-bit data type may create compilation problems if you compile in - * strict ANSI mode. To avoid them, we disable other 64-bit data types if - * `__STDC__` is defined. You can however ignore this rule by defining the - * `FT_CONFIG_OPTION_FORCE_INT64` configuration macro. - */ -#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 ) - -#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L - -#define FT_LONG64 -#define FT_INT64 long long int -#define FT_UINT64 unsigned long long int - -#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */ - - /* this compiler provides the `__int64` type */ -#define FT_LONG64 -#define FT_INT64 __int64 -#define FT_UINT64 unsigned __int64 - -#elif defined( __BORLANDC__ ) /* Borland C++ */ - - /* XXXX: We should probably check the value of `__BORLANDC__` in order */ - /* to test the compiler version. */ - - /* this compiler provides the `__int64` type */ -#define FT_LONG64 -#define FT_INT64 __int64 -#define FT_UINT64 unsigned __int64 - -#elif defined( __WATCOMC__ ) /* Watcom C++ */ - - /* Watcom doesn't provide 64-bit data types */ - -#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */ - -#define FT_LONG64 -#define FT_INT64 long long int -#define FT_UINT64 unsigned long long int - -#elif defined( __GNUC__ ) - - /* GCC provides the `long long` type */ -#define FT_LONG64 -#define FT_INT64 long long int -#define FT_UINT64 unsigned long long int - -#endif /* __STDC_VERSION__ >= 199901L */ - -#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */ - -#ifdef FT_LONG64 - typedef FT_INT64 FT_Int64; - typedef FT_UINT64 FT_UInt64; -#endif - - -#endif /* FREETYPE_CONFIG_INTEGER_TYPES_H_ */ diff --git a/win64/include/freetype/config/mac-support.h b/win64/include/freetype/config/mac-support.h deleted file mode 100644 index 94867088..00000000 --- a/win64/include/freetype/config/mac-support.h +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** - * - * config/mac-support.h - * - * Mac/OS X support configuration header. - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.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 FREETYPE_CONFIG_MAC_SUPPORT_H_ -#define FREETYPE_CONFIG_MAC_SUPPORT_H_ - - /************************************************************************** - * - * Mac support - * - * This is the only necessary change, so it is defined here instead - * providing a new configuration file. - */ -#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) ) - /* No Carbon frameworks for 64bit 10.4.x. */ - /* `AvailabilityMacros.h` is available since Mac OS X 10.2, */ - /* so guess the system version by maximum errno before inclusion. */ -#include <errno.h> -#ifdef ECANCELED /* defined since 10.2 */ -#include "AvailabilityMacros.h" -#endif -#if defined( __LP64__ ) && \ - ( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 ) -#undef FT_MACINTOSH -#endif - -#elif defined( __SC__ ) || defined( __MRC__ ) - /* Classic MacOS compilers */ -#include "ConditionalMacros.h" -#if TARGET_OS_MAC -#define FT_MACINTOSH 1 -#endif - -#endif /* Mac support */ - -#endif /* FREETYPE_CONFIG_MAC_SUPPORT_H_ */ diff --git a/win64/include/freetype/config/public-macros.h b/win64/include/freetype/config/public-macros.h deleted file mode 100644 index 6aa673e8..00000000 --- a/win64/include/freetype/config/public-macros.h +++ /dev/null @@ -1,120 +0,0 @@ -/**************************************************************************** - * - * config/public-macros.h - * - * Define a set of compiler macros used in public FreeType headers. - * - * Copyright (C) 2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ - - /* - * The definitions in this file are used by the public FreeType headers - * and thus should be considered part of the public API. - * - * Other compiler-specific macro definitions that are not exposed by the - * FreeType API should go into - * `include/freetype/internal/compiler-macros.h` instead. - */ -#ifndef FREETYPE_CONFIG_PUBLIC_MACROS_H_ -#define FREETYPE_CONFIG_PUBLIC_MACROS_H_ - - /* - * `FT_BEGIN_HEADER` and `FT_END_HEADER` might have already been defined - * by `freetype/config/ftheader.h`, but we don't want to include this - * header here, so redefine the macros here only when needed. Their - * definition is very stable, so keeping them in sync with the ones in the - * header should not be a maintenance issue. - */ -#ifndef FT_BEGIN_HEADER -#ifdef __cplusplus -#define FT_BEGIN_HEADER extern "C" { -#else -#define FT_BEGIN_HEADER /* empty */ -#endif -#endif /* FT_BEGIN_HEADER */ - -#ifndef FT_END_HEADER -#ifdef __cplusplus -#define FT_END_HEADER } -#else -#define FT_END_HEADER /* empty */ -#endif -#endif /* FT_END_HEADER */ - - -FT_BEGIN_HEADER - - /* - * Mark a function declaration as public. This ensures it will be - * properly exported to client code. Place this before a function - * declaration. - * - * NOTE: This macro should be considered an internal implementation - * detail, and not part of the FreeType API. It is only defined here - * because it is needed by `FT_EXPORT`. - */ - - /* Visual C, mingw */ -#if defined( _WIN32 ) - -#if defined( FT2_BUILD_LIBRARY ) && defined( DLL_EXPORT ) -#define FT_PUBLIC_FUNCTION_ATTRIBUTE __declspec( dllexport ) -#elif defined( DLL_IMPORT ) -#define FT_PUBLIC_FUNCTION_ATTRIBUTE __declspec( dllimport ) -#endif - - /* gcc, clang */ -#elif ( defined( __GNUC__ ) && __GNUC__ >= 4 ) || defined( __clang__ ) -#define FT_PUBLIC_FUNCTION_ATTRIBUTE \ - __attribute__(( visibility( "default" ) )) - - /* Sun */ -#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x550 -#define FT_PUBLIC_FUNCTION_ATTRIBUTE __global -#endif - - -#ifndef FT_PUBLIC_FUNCTION_ATTRIBUTE -#define FT_PUBLIC_FUNCTION_ATTRIBUTE /* empty */ -#endif - - - /* - * Define a public FreeType API function. This ensures it is properly - * exported or imported at build time. The macro parameter is the - * function's return type as in: - * - * FT_EXPORT( FT_Bool ) - * FT_Object_Method( FT_Object obj, - * ... ); - * - * NOTE: This requires that all `FT_EXPORT` uses are inside - * `FT_BEGIN_HEADER ... FT_END_HEADER` blocks. This guarantees that the - * functions are exported with C linkage, even when the header is included - * by a C++ source file. - */ -#define FT_EXPORT( x ) FT_PUBLIC_FUNCTION_ATTRIBUTE extern x - - /* - * `FT_UNUSED` indicates that a given parameter is not used -- this is - * only used to get rid of unpleasant compiler warnings. - * - * Technically, this was not meant to be part of the public API, but some - * third-party code depends on it. - */ -#ifndef FT_UNUSED -#define FT_UNUSED( arg ) ( (arg) = (arg) ) -#endif - - -FT_END_HEADER - -#endif /* FREETYPE_CONFIG_PUBLIC_MACROS_H_ */ diff --git a/win64/include/freetype/freetype.h b/win64/include/freetype/freetype.h index e8843034..27fd44bf 100644 --- a/win64/include/freetype/freetype.h +++ b/win64/include/freetype/freetype.h @@ -1,77 +1,94 @@ -/**************************************************************************** - * - * freetype.h - * - * FreeType high-level API and common types (specification only). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* freetype.h */ +/* */ +/* FreeType high-level API and common types (specification only). */ +/* */ +/* Copyright 1996-2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FREETYPE_H_ -#define FREETYPE_H_ +#ifndef __FREETYPE_H__ +#define __FREETYPE_H__ + + +#ifndef FT_FREETYPE_H +#error "`ft2build.h' hasn't been included yet!" +#error "Please always use macros to include FreeType header files." +#error "Example:" +#error " #include <ft2build.h>" +#error " #include FT_FREETYPE_H" +#endif #include <ft2build.h> #include FT_CONFIG_CONFIG_H -#include <freetype/fttypes.h> -#include <freetype/fterrors.h> +#include FT_TYPES_H +#include FT_ERRORS_H FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * header_inclusion - * - * @title: - * FreeType's header inclusion scheme - * - * @abstract: - * How client applications should include FreeType header files. - * - * @description: - * To be as flexible as possible (and for historical reasons), you must - * load file `ft2build.h` first before other header files, for example - * - * ``` - * #include <ft2build.h> - * - * #include <freetype/freetype.h> - * #include <freetype/ftoutln.h> - * ``` - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* header_inclusion */ + /* */ + /* <Title> */ + /* FreeType's header inclusion scheme */ + /* */ + /* <Abstract> */ + /* How client applications should include FreeType header files. */ + /* */ + /* <Description> */ + /* To be as flexible as possible (and for historical reasons), */ + /* FreeType uses a very special inclusion scheme to load header */ + /* files, for example */ + /* */ + /* { */ + /* #include <ft2build.h> */ + /* */ + /* #include FT_FREETYPE_H */ + /* #include FT_OUTLINE_H */ + /* } */ + /* */ + /* A compiler and its preprocessor only needs an include path to find */ + /* the file `ft2build.h'; the exact locations and names of the other */ + /* FreeType header files are hidden by preprocessor macro names, */ + /* loaded by `ft2build.h'. The API documentation always gives the */ + /* header macro name needed for a particular function. */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @section: - * user_allocation - * - * @title: - * User allocation - * - * @abstract: - * How client applications should allocate FreeType data structures. - * - * @description: - * FreeType assumes that structures allocated by the user and passed as - * arguments are zeroed out except for the actual data. In other words, - * it is recommended to use `calloc` (or variants of it) instead of - * `malloc` for allocation. - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* user_allocation */ + /* */ + /* <Title> */ + /* User allocation */ + /* */ + /* <Abstract> */ + /* How client applications should allocate FreeType data structures. */ + /* */ + /* <Description> */ + /* FreeType assumes that structures allocated by the user and passed */ + /* as arguments are zeroed out except for the actual data. In other */ + /* words, it is recommended to use `calloc' (or variants of it) */ + /* instead of `malloc' for allocation. */ + /* */ + /*************************************************************************/ @@ -84,219 +101,211 @@ FT_BEGIN_HEADER /*************************************************************************/ - /************************************************************************** - * - * @section: - * base_interface - * - * @title: - * Base Interface - * - * @abstract: - * The FreeType~2 base font interface. - * - * @description: - * This section describes the most important public high-level API - * functions of FreeType~2. - * - * @order: - * FT_Library - * FT_Face - * FT_Size - * FT_GlyphSlot - * FT_CharMap - * FT_Encoding - * FT_ENC_TAG - * - * FT_FaceRec - * - * FT_FACE_FLAG_SCALABLE - * FT_FACE_FLAG_FIXED_SIZES - * FT_FACE_FLAG_FIXED_WIDTH - * FT_FACE_FLAG_HORIZONTAL - * FT_FACE_FLAG_VERTICAL - * FT_FACE_FLAG_COLOR - * FT_FACE_FLAG_SFNT - * FT_FACE_FLAG_CID_KEYED - * 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 - * FT_IS_VARIATION - * - * FT_STYLE_FLAG_BOLD - * FT_STYLE_FLAG_ITALIC - * - * FT_SizeRec - * FT_Size_Metrics - * - * FT_GlyphSlotRec - * FT_Glyph_Metrics - * FT_SubGlyph - * - * FT_Bitmap_Size - * - * FT_Init_FreeType - * FT_Done_FreeType - * - * FT_New_Face - * FT_Done_Face - * FT_Reference_Face - * FT_New_Memory_Face - * FT_Face_Properties - * FT_Open_Face - * FT_Open_Args - * FT_Parameter - * FT_Attach_File - * FT_Attach_Stream - * - * FT_Set_Char_Size - * FT_Set_Pixel_Sizes - * FT_Request_Size - * FT_Select_Size - * FT_Size_Request_Type - * FT_Size_RequestRec - * FT_Size_Request - * FT_Set_Transform - * FT_Load_Glyph - * FT_Get_Char_Index - * FT_Get_First_Char - * FT_Get_Next_Char - * FT_Get_Name_Index - * FT_Load_Char - * - * FT_OPEN_MEMORY - * FT_OPEN_STREAM - * FT_OPEN_PATHNAME - * FT_OPEN_DRIVER - * FT_OPEN_PARAMS - * - * 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 - * FT_LOAD_PEDANTIC - * - * FT_LOAD_TARGET_NORMAL - * FT_LOAD_TARGET_LIGHT - * FT_LOAD_TARGET_MONO - * FT_LOAD_TARGET_LCD - * FT_LOAD_TARGET_LCD_V - * - * FT_LOAD_TARGET_MODE - * - * FT_Render_Glyph - * FT_Render_Mode - * FT_Get_Kerning - * FT_Kerning_Mode - * FT_Get_Track_Kerning - * FT_Get_Glyph_Name - * FT_Get_Postscript_Name - * - * FT_CharMapRec - * FT_Select_Charmap - * FT_Set_Charmap - * FT_Get_Charmap_Index - * - * FT_Get_FSType_Flags - * FT_Get_SubGlyph_Info - * - * FT_Face_Internal - * FT_Size_Internal - * FT_Slot_Internal - * - * FT_FACE_FLAG_XXX - * FT_STYLE_FLAG_XXX - * FT_OPEN_XXX - * FT_LOAD_XXX - * FT_LOAD_TARGET_XXX - * FT_SUBGLYPH_FLAG_XXX - * FT_FSTYPE_XXX - * - * FT_HAS_FAST_GLYPHS - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* base_interface */ + /* */ + /* <Title> */ + /* Base Interface */ + /* */ + /* <Abstract> */ + /* The FreeType~2 base font interface. */ + /* */ + /* <Description> */ + /* This section describes the most important public high-level API */ + /* functions of FreeType~2. */ + /* */ + /* <Order> */ + /* FT_Library */ + /* FT_Face */ + /* FT_Size */ + /* FT_GlyphSlot */ + /* FT_CharMap */ + /* FT_Encoding */ + /* FT_ENC_TAG */ + /* */ + /* FT_FaceRec */ + /* */ + /* FT_FACE_FLAG_SCALABLE */ + /* FT_FACE_FLAG_FIXED_SIZES */ + /* FT_FACE_FLAG_FIXED_WIDTH */ + /* FT_FACE_FLAG_HORIZONTAL */ + /* FT_FACE_FLAG_VERTICAL */ + /* FT_FACE_FLAG_COLOR */ + /* FT_FACE_FLAG_SFNT */ + /* FT_FACE_FLAG_CID_KEYED */ + /* FT_FACE_FLAG_TRICKY */ + /* FT_FACE_FLAG_KERNING */ + /* FT_FACE_FLAG_MULTIPLE_MASTERS */ + /* FT_FACE_FLAG_GLYPH_NAMES */ + /* FT_FACE_FLAG_EXTERNAL_STREAM */ + /* FT_FACE_FLAG_HINTER */ + /* FT_FACE_FLAG_TRICKY */ + /* */ + /* FT_HAS_HORIZONTAL */ + /* FT_HAS_VERTICAL */ + /* FT_HAS_KERNING */ + /* FT_HAS_FIXED_SIZES */ + /* FT_HAS_GLYPH_NAMES */ + /* FT_HAS_MULTIPLE_MASTERS */ + /* FT_HAS_COLOR */ + /* */ + /* FT_IS_SFNT */ + /* FT_IS_SCALABLE */ + /* FT_IS_FIXED_WIDTH */ + /* FT_IS_CID_KEYED */ + /* FT_IS_TRICKY */ + /* */ + /* FT_STYLE_FLAG_BOLD */ + /* FT_STYLE_FLAG_ITALIC */ + /* */ + /* FT_SizeRec */ + /* FT_Size_Metrics */ + /* */ + /* FT_GlyphSlotRec */ + /* FT_Glyph_Metrics */ + /* FT_SubGlyph */ + /* */ + /* FT_Bitmap_Size */ + /* */ + /* FT_Init_FreeType */ + /* FT_Done_FreeType */ + /* */ + /* FT_New_Face */ + /* FT_Done_Face */ + /* FT_Reference_Face */ + /* FT_New_Memory_Face */ + /* FT_Open_Face */ + /* FT_Open_Args */ + /* FT_Parameter */ + /* FT_Attach_File */ + /* FT_Attach_Stream */ + /* */ + /* FT_Set_Char_Size */ + /* FT_Set_Pixel_Sizes */ + /* FT_Request_Size */ + /* FT_Select_Size */ + /* FT_Size_Request_Type */ + /* FT_Size_RequestRec */ + /* FT_Size_Request */ + /* FT_Set_Transform */ + /* FT_Load_Glyph */ + /* FT_Get_Char_Index */ + /* FT_Get_First_Char */ + /* FT_Get_Next_Char */ + /* FT_Get_Name_Index */ + /* FT_Load_Char */ + /* */ + /* FT_OPEN_MEMORY */ + /* FT_OPEN_STREAM */ + /* FT_OPEN_PATHNAME */ + /* FT_OPEN_DRIVER */ + /* FT_OPEN_PARAMS */ + /* */ + /* 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 */ + /* FT_LOAD_PEDANTIC */ + /* */ + /* FT_LOAD_TARGET_NORMAL */ + /* FT_LOAD_TARGET_LIGHT */ + /* FT_LOAD_TARGET_MONO */ + /* FT_LOAD_TARGET_LCD */ + /* FT_LOAD_TARGET_LCD_V */ + /* */ + /* FT_LOAD_TARGET_MODE */ + /* */ + /* FT_Render_Glyph */ + /* FT_Render_Mode */ + /* FT_Get_Kerning */ + /* FT_Kerning_Mode */ + /* FT_Get_Track_Kerning */ + /* FT_Get_Glyph_Name */ + /* FT_Get_Postscript_Name */ + /* */ + /* FT_CharMapRec */ + /* FT_Select_Charmap */ + /* FT_Set_Charmap */ + /* FT_Get_Charmap_Index */ + /* */ + /* FT_Get_FSType_Flags */ + /* FT_Get_SubGlyph_Info */ + /* */ + /* FT_Face_Internal */ + /* FT_Size_Internal */ + /* FT_Slot_Internal */ + /* */ + /* FT_FACE_FLAG_XXX */ + /* FT_STYLE_FLAG_XXX */ + /* FT_OPEN_XXX */ + /* FT_LOAD_XXX */ + /* FT_LOAD_TARGET_XXX */ + /* FT_SUBGLYPH_FLAG_XXX */ + /* FT_FSTYPE_XXX */ + /* */ + /* FT_HAS_FAST_GLYPHS */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @struct: - * FT_Glyph_Metrics - * - * @description: - * A structure to model the metrics of a single glyph. The values are - * expressed in 26.6 fractional pixel format; if the flag - * @FT_LOAD_NO_SCALE has been used while loading the glyph, values are - * expressed in font units instead. - * - * @fields: - * width :: - * The glyph's width. - * - * height :: - * The glyph's height. - * - * horiBearingX :: - * Left side bearing for horizontal layout. - * - * horiBearingY :: - * Top side bearing for horizontal layout. - * - * horiAdvance :: - * Advance width for horizontal layout. - * - * vertBearingX :: - * Left side bearing for vertical layout. - * - * vertBearingY :: - * Top side bearing for vertical layout. Larger positive values mean - * further below the vertical glyph origin. - * - * vertAdvance :: - * Advance height for vertical layout. Positive values mean the glyph - * has a positive advance downward. - * - * @note: - * If not disabled with @FT_LOAD_NO_HINTING, the values represent - * dimensions of the hinted glyph (in case hinting is applicable). - * - * Stroking a glyph with an outside border does not increase - * `horiAdvance` or `vertAdvance`; you have to manually adjust these - * values to account for the added width and height. - * - * FreeType doesn't use the 'VORG' table data for CFF fonts because it - * doesn't have an interface to quickly retrieve the glyph height. The - * y~coordinate of the vertical origin can be simply computed as - * `vertBearingY + height` after loading a glyph. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Glyph_Metrics */ + /* */ + /* <Description> */ + /* A structure used to model the metrics of a single glyph. The */ + /* values are expressed in 26.6 fractional pixel format; if the flag */ + /* @FT_LOAD_NO_SCALE has been used while loading the glyph, values */ + /* are expressed in font units instead. */ + /* */ + /* <Fields> */ + /* width :: */ + /* The glyph's width. */ + /* */ + /* height :: */ + /* The glyph's height. */ + /* */ + /* horiBearingX :: */ + /* Left side bearing for horizontal layout. */ + /* */ + /* horiBearingY :: */ + /* Top side bearing for horizontal layout. */ + /* */ + /* horiAdvance :: */ + /* Advance width for horizontal layout. */ + /* */ + /* vertBearingX :: */ + /* Left side bearing for vertical layout. */ + /* */ + /* vertBearingY :: */ + /* Top side bearing for vertical layout. Larger positive values */ + /* mean further below the vertical glyph origin. */ + /* */ + /* vertAdvance :: */ + /* Advance height for vertical layout. Positive values mean the */ + /* glyph has a positive advance downward. */ + /* */ + /* <Note> */ + /* If not disabled with @FT_LOAD_NO_HINTING, the values represent */ + /* dimensions of the hinted glyph (in case hinting is applicable). */ + /* */ + /* Stroking a glyph with an outside border does not increase */ + /* `horiAdvance' or `vertAdvance'; you have to manually adjust these */ + /* values to account for the added width and height. */ + /* */ typedef struct FT_Glyph_Metrics_ { FT_Pos width; @@ -313,45 +322,44 @@ FT_BEGIN_HEADER } FT_Glyph_Metrics; - /************************************************************************** - * - * @struct: - * FT_Bitmap_Size - * - * @description: - * This structure models the metrics of a bitmap strike (i.e., a set of - * glyphs for a given point size and resolution) in a bitmap font. It is - * used for the `available_sizes` field of @FT_Face. - * - * @fields: - * height :: - * The vertical distance, in pixels, between two consecutive baselines. - * It is always positive. - * - * width :: - * The average width, in pixels, of all glyphs in the strike. - * - * size :: - * The nominal size of the strike in 26.6 fractional points. This - * field is not very useful. - * - * x_ppem :: - * The horizontal ppem (nominal width) in 26.6 fractional pixels. - * - * y_ppem :: - * The vertical ppem (nominal height) in 26.6 fractional pixels. - * - * @note: - * Windows FNT: - * The nominal size given in a FNT font is not reliable. If the driver - * finds it incorrect, it sets `size` to some calculated values, and - * `x_ppem` and `y_ppem` to the pixel width and height given in the - * font, respectively. - * - * TrueType embedded bitmaps: - * `size`, `width`, and `height` values are not contained in the bitmap - * strike itself. They are computed from the global font parameters. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Bitmap_Size */ + /* */ + /* <Description> */ + /* This structure models the metrics of a bitmap strike (i.e., a set */ + /* of glyphs for a given point size and resolution) in a bitmap font. */ + /* It is used for the `available_sizes' field of @FT_Face. */ + /* */ + /* <Fields> */ + /* height :: The vertical distance, in pixels, between two */ + /* consecutive baselines. It is always positive. */ + /* */ + /* width :: The average width, in pixels, of all glyphs in the */ + /* strike. */ + /* */ + /* size :: The nominal size of the strike in 26.6 fractional */ + /* points. This field is not very useful. */ + /* */ + /* x_ppem :: The horizontal ppem (nominal width) in 26.6 fractional */ + /* pixels. */ + /* */ + /* y_ppem :: The vertical ppem (nominal height) in 26.6 fractional */ + /* pixels. */ + /* */ + /* <Note> */ + /* Windows FNT: */ + /* The nominal size given in a FNT font is not reliable. Thus when */ + /* the driver finds it incorrect, it sets `size' to some calculated */ + /* values and sets `x_ppem' and `y_ppem' to the pixel width and */ + /* height given in the font, respectively. */ + /* */ + /* TrueType embedded bitmaps: */ + /* `size', `width', and `height' values are not contained in the */ + /* bitmap strike itself. They are computed from the global font */ + /* parameters. */ + /* */ typedef struct FT_Bitmap_Size_ { FT_Short height; @@ -373,218 +381,213 @@ FT_BEGIN_HEADER /*************************************************************************/ /*************************************************************************/ - /************************************************************************** - * - * @type: - * FT_Library - * - * @description: - * A handle to a FreeType library instance. Each 'library' is completely - * independent from the others; it is the 'root' of a set of objects like - * fonts, faces, sizes, etc. - * - * It also embeds a memory manager (see @FT_Memory), as well as a - * scan-line converter object (see @FT_Raster). - * - * [Since 2.5.6] In multi-threaded applications it is easiest to use one - * `FT_Library` object per thread. In case this is too cumbersome, a - * single `FT_Library` object across threads is possible also, as long as - * a mutex lock is used around @FT_New_Face and @FT_Done_Face. - * - * @note: - * Library objects are normally created by @FT_Init_FreeType, and - * destroyed with @FT_Done_FreeType. If you need reference-counting - * (cf. @FT_Reference_Library), use @FT_New_Library and @FT_Done_Library. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Library */ + /* */ + /* <Description> */ + /* A handle to a FreeType library instance. Each `library' is */ + /* completely independent from the others; it is the `root' of a set */ + /* of objects like fonts, faces, sizes, etc. */ + /* */ + /* It also embeds a memory manager (see @FT_Memory), as well as a */ + /* scan-line converter object (see @FT_Raster). */ + /* */ + /* In multi-threaded applications, make sure that the same FT_Library */ + /* object or any of its children doesn't get accessed in parallel. */ + /* */ + /* <Note> */ + /* Library objects are normally created by @FT_Init_FreeType, and */ + /* destroyed with @FT_Done_FreeType. If you need reference-counting */ + /* (cf. @FT_Reference_Library), use @FT_New_Library and */ + /* @FT_Done_Library. */ + /* */ typedef struct FT_LibraryRec_ *FT_Library; - /************************************************************************** - * - * @section: - * module_management - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* module_management */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @type: - * FT_Module - * - * @description: - * A handle to a given FreeType module object. A module can be a font - * driver, a renderer, or anything else that provides services to the - * former. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Module */ + /* */ + /* <Description> */ + /* A handle to a given FreeType module object. Each module can be a */ + /* font driver, a renderer, or anything else that provides services */ + /* to the formers. */ + /* */ typedef struct FT_ModuleRec_* FT_Module; - /************************************************************************** - * - * @type: - * FT_Driver - * - * @description: - * A handle to a given FreeType font driver object. A font driver is a - * module capable of creating faces from font files. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Driver */ + /* */ + /* <Description> */ + /* A handle to a given FreeType font driver object. Each font driver */ + /* is a special module capable of creating faces from font files. */ + /* */ typedef struct FT_DriverRec_* FT_Driver; - /************************************************************************** - * - * @type: - * FT_Renderer - * - * @description: - * A handle to a given FreeType renderer. A renderer is a module in - * charge of converting a glyph's outline image to a bitmap. It supports - * a single glyph image format, and one or more target surface depths. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Renderer */ + /* */ + /* <Description> */ + /* A handle to a given FreeType renderer. A renderer is a special */ + /* module in charge of converting a glyph image to a bitmap, when */ + /* necessary. Each renderer supports a given glyph image format, and */ + /* one or more target surface depths. */ + /* */ typedef struct FT_RendererRec_* FT_Renderer; - /************************************************************************** - * - * @section: - * base_interface - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* base_interface */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @type: - * FT_Face - * - * @description: - * A handle to a typographic face object. A face object models a given - * typeface, in a given style. - * - * @note: - * A face object also owns a single @FT_GlyphSlot object, as well as one - * or more @FT_Size objects. - * - * Use @FT_New_Face or @FT_Open_Face to create a new face object from a - * given filepath or a custom input stream. - * - * Use @FT_Done_Face to destroy it (along with its slot and sizes). - * - * An `FT_Face` object can only be safely used from one thread at a time. - * Similarly, creation and destruction of `FT_Face` with the same - * @FT_Library object can only be done from one thread at a time. On the - * other hand, functions like @FT_Load_Glyph and its siblings are - * thread-safe and do not need the lock to be held as long as the same - * `FT_Face` object is not used from multiple threads at the same time. - * - * @also: - * See @FT_FaceRec for the publicly accessible fields of a given face - * object. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Face */ + /* */ + /* <Description> */ + /* A handle to a given typographic face object. A face object models */ + /* a given typeface, in a given style. */ + /* */ + /* <Note> */ + /* Each face object also owns a single @FT_GlyphSlot object, as well */ + /* as one or more @FT_Size objects. */ + /* */ + /* Use @FT_New_Face or @FT_Open_Face to create a new face object from */ + /* a given filepathname or a custom input stream. */ + /* */ + /* Use @FT_Done_Face to destroy it (along with its slot and sizes). */ + /* */ + /* <Also> */ + /* See @FT_FaceRec for the publicly accessible fields of a given face */ + /* object. */ + /* */ typedef struct FT_FaceRec_* FT_Face; - /************************************************************************** - * - * @type: - * 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. - * - * You can 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. - * - * 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: - * See @FT_SizeRec for the publicly accessible fields of a given size - * object. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Size */ + /* */ + /* <Description> */ + /* A handle to an object used to model a face scaled to a given */ + /* character size. */ + /* */ + /* <Note> */ + /* Each @FT_Face has an _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. */ + /* */ + /* You can 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. */ + /* */ + /* 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> */ + /* See @FT_SizeRec for the publicly accessible fields of a given size */ + /* object. */ + /* */ typedef struct FT_SizeRec_* FT_Size; - /************************************************************************** - * - * @type: - * FT_GlyphSlot - * - * @description: - * A handle to a given 'glyph slot'. A slot is a container that can hold - * any of the glyphs contained in its parent face. - * - * In other words, each time you call @FT_Load_Glyph or @FT_Load_Char, - * the slot's content is erased by the new glyph data, i.e., the glyph's - * metrics, its image (bitmap or outline), and other control information. - * - * @also: - * See @FT_GlyphSlotRec for the publicly accessible glyph fields. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_GlyphSlot */ + /* */ + /* <Description> */ + /* A handle to a given `glyph slot'. A slot is a container where it */ + /* is possible to load any of the glyphs contained in its parent */ + /* face. */ + /* */ + /* In other words, each time you call @FT_Load_Glyph or */ + /* @FT_Load_Char, the slot's content is erased by the new glyph data, */ + /* i.e., the glyph's metrics, its image (bitmap or outline), and */ + /* other control information. */ + /* */ + /* <Also> */ + /* See @FT_GlyphSlotRec for the publicly accessible glyph fields. */ + /* */ typedef struct FT_GlyphSlotRec_* FT_GlyphSlot; - /************************************************************************** - * - * @type: - * FT_CharMap - * - * @description: - * A handle to a character map (usually abbreviated to 'charmap'). A - * charmap is used to translate character codes in a given encoding into - * glyph indexes for its parent's face. Some font formats may provide - * several charmaps per font. - * - * Each face object owns zero or more charmaps, but only one of them can - * be 'active', providing the data used by @FT_Get_Char_Index or - * @FT_Load_Char. - * - * The list of available charmaps in a face is available through the - * `face->num_charmaps` and `face->charmaps` fields of @FT_FaceRec. - * - * The currently active charmap is available as `face->charmap`. You - * should call @FT_Set_Charmap to change it. - * - * @note: - * When a new face is created (either through @FT_New_Face or - * @FT_Open_Face), the library looks for a Unicode charmap within the - * list and automatically activates it. If there is no Unicode charmap, - * FreeType doesn't set an 'active' charmap. - * - * @also: - * See @FT_CharMapRec for the publicly accessible fields of a given - * character map. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_CharMap */ + /* */ + /* <Description> */ + /* A handle to a given character map. A charmap is used to translate */ + /* character codes in a given encoding into glyph indexes for its */ + /* parent's face. Some font formats may provide several charmaps per */ + /* font. */ + /* */ + /* Each face object owns zero or more charmaps, but only one of them */ + /* can be `active' and used by @FT_Get_Char_Index or @FT_Load_Char. */ + /* */ + /* The list of available charmaps in a face is available through the */ + /* `face->num_charmaps' and `face->charmaps' fields of @FT_FaceRec. */ + /* */ + /* The currently active charmap is available as `face->charmap'. */ + /* You should call @FT_Set_Charmap to change it. */ + /* */ + /* <Note> */ + /* When a new face is created (either through @FT_New_Face or */ + /* @FT_Open_Face), the library looks for a Unicode charmap within */ + /* the list and automatically activates it. */ + /* */ + /* <Also> */ + /* See @FT_CharMapRec for the publicly accessible fields of a given */ + /* character map. */ + /* */ typedef struct FT_CharMapRec_* FT_CharMap; - /************************************************************************** - * - * @macro: - * FT_ENC_TAG - * - * @description: - * This macro converts four-letter tags into an unsigned long. It is - * used to define 'encoding' identifiers (see @FT_Encoding). - * - * @note: - * Since many 16-bit compilers don't like 32-bit enumerations, you should - * redefine this macro in case of problems to something like this: - * - * ``` - * #define FT_ENC_TAG( value, a, b, c, d ) value - * ``` - * - * to get a simple enumeration without assigning special numbers. - */ + /*************************************************************************/ + /* */ + /* <Macro> */ + /* FT_ENC_TAG */ + /* */ + /* <Description> */ + /* This macro converts four-letter tags into an unsigned long. It is */ + /* used to define `encoding' identifiers (see @FT_Encoding). */ + /* */ + /* <Note> */ + /* Since many 16-bit compilers don't like 32-bit enumerations, you */ + /* should redefine this macro in case of problems to something like */ + /* this: */ + /* */ + /* { */ + /* #define FT_ENC_TAG( value, a, b, c, d ) value */ + /* } */ + /* */ + /* to get a simple enumeration without assigning special numbers. */ + /* */ #ifndef FT_ENC_TAG #define FT_ENC_TAG( value, a, b, c, d ) \ @@ -596,147 +599,146 @@ FT_BEGIN_HEADER #endif /* FT_ENC_TAG */ - /************************************************************************** - * - * @enum: - * FT_Encoding - * - * @description: - * An enumeration to specify character sets supported by charmaps. Used - * in the @FT_Select_Charmap API function. - * - * @note: - * Despite the name, this enumeration lists specific character - * repertories (i.e., charsets), and not text encoding methods (e.g., - * UTF-8, UTF-16, etc.). - * - * Other encodings might be defined in the future. - * - * @values: - * FT_ENCODING_NONE :: - * The encoding value~0 is reserved for all formats except BDF, PCF, - * and Windows FNT; see below for more information. - * - * FT_ENCODING_UNICODE :: - * The Unicode character set. This value covers all versions of the - * Unicode repertoire, including ASCII and Latin-1. Most fonts include - * a Unicode charmap, but not all of them. - * - * For example, if you want to access Unicode value U+1F028 (and the - * font contains it), use value 0x1F028 as the input value for - * @FT_Get_Char_Index. - * - * FT_ENCODING_MS_SYMBOL :: - * Microsoft Symbol encoding, used to encode mathematical symbols and - * wingdings. For more information, see - * 'https://www.microsoft.com/typography/otspec/recom.htm#non-standard-symbol-fonts', - * 'http://www.kostis.net/charsets/symbol.htm', and - * 'http://www.kostis.net/charsets/wingding.htm'. - * - * This encoding uses character codes from the PUA (Private Unicode - * Area) in the range U+F020-U+F0FF. - * - * FT_ENCODING_SJIS :: - * Shift JIS encoding for Japanese. More info at - * 'https://en.wikipedia.org/wiki/Shift_JIS'. See note on multi-byte - * encodings below. - * - * FT_ENCODING_PRC :: - * Corresponds to encoding systems mainly for Simplified Chinese as - * used in People's Republic of China (PRC). The encoding layout is - * based on GB~2312 and its supersets GBK and GB~18030. - * - * FT_ENCODING_BIG5 :: - * Corresponds to an encoding system for Traditional Chinese as used in - * Taiwan and Hong Kong. - * - * FT_ENCODING_WANSUNG :: - * Corresponds to the Korean encoding system known as Extended Wansung - * (MS Windows code page 949). For more information see - * 'https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit949.txt'. - * - * FT_ENCODING_JOHAB :: - * The Korean standard character set (KS~C 5601-1992), which - * corresponds to MS Windows code page 1361. This character set - * includes all possible Hangul character combinations. - * - * FT_ENCODING_ADOBE_LATIN_1 :: - * Corresponds to a Latin-1 encoding as defined in a Type~1 PostScript - * font. It is limited to 256 character codes. - * - * FT_ENCODING_ADOBE_STANDARD :: - * Adobe Standard encoding, as found in Type~1, CFF, and OpenType/CFF - * fonts. It is limited to 256 character codes. - * - * FT_ENCODING_ADOBE_EXPERT :: - * Adobe Expert encoding, as found in Type~1, CFF, and OpenType/CFF - * fonts. It is limited to 256 character codes. - * - * FT_ENCODING_ADOBE_CUSTOM :: - * Corresponds to a custom encoding, as found in Type~1, CFF, and - * OpenType/CFF fonts. It is limited to 256 character codes. - * - * FT_ENCODING_APPLE_ROMAN :: - * Apple roman encoding. Many TrueType and OpenType fonts contain a - * charmap for this 8-bit encoding, since older versions of Mac OS are - * able to use it. - * - * FT_ENCODING_OLD_LATIN_2 :: - * This value is deprecated and was neither used nor reported by - * FreeType. Don't use or test for it. - * - * FT_ENCODING_MS_SJIS :: - * Same as FT_ENCODING_SJIS. Deprecated. - * - * FT_ENCODING_MS_GB2312 :: - * Same as FT_ENCODING_PRC. Deprecated. - * - * FT_ENCODING_MS_BIG5 :: - * Same as FT_ENCODING_BIG5. Deprecated. - * - * FT_ENCODING_MS_WANSUNG :: - * Same as FT_ENCODING_WANSUNG. Deprecated. - * - * FT_ENCODING_MS_JOHAB :: - * Same as FT_ENCODING_JOHAB. Deprecated. - * - * @note: - * By default, FreeType enables a Unicode charmap and tags it with - * `FT_ENCODING_UNICODE` when it is either provided or can be generated - * from PostScript glyph name dictionaries in the font file. All other - * encodings are considered legacy and tagged only if explicitly defined - * in the font file. Otherwise, `FT_ENCODING_NONE` is used. - * - * `FT_ENCODING_NONE` is set by the BDF and PCF drivers if the charmap is - * neither Unicode nor ISO-8859-1 (otherwise it is set to - * `FT_ENCODING_UNICODE`). Use @FT_Get_BDF_Charset_ID to find out which - * encoding is really present. If, for example, the `cs_registry` field - * is 'KOI8' and the `cs_encoding` field is 'R', the font is encoded in - * KOI8-R. - * - * `FT_ENCODING_NONE` is always set (with a single exception) by the - * winfonts driver. Use @FT_Get_WinFNT_Header and examine the `charset` - * field of the @FT_WinFNT_HeaderRec structure to find out which encoding - * is really present. For example, @FT_WinFNT_ID_CP1251 (204) means - * Windows code page 1251 (for Russian). - * - * `FT_ENCODING_NONE` is set if `platform_id` is @TT_PLATFORM_MACINTOSH - * and `encoding_id` is not `TT_MAC_ID_ROMAN` (otherwise it is set to - * `FT_ENCODING_APPLE_ROMAN`). - * - * If `platform_id` is @TT_PLATFORM_MACINTOSH, use the function - * @FT_Get_CMap_Language_ID to query the Mac language ID that may be - * needed to be able to distinguish Apple encoding variants. See - * - * https://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt - * - * to get an idea how to do that. Basically, if the language ID is~0, - * don't use it, otherwise subtract 1 from the language ID. Then examine - * `encoding_id`. If, for example, `encoding_id` is `TT_MAC_ID_ROMAN` - * and the language ID (minus~1) is `TT_MAC_LANGID_GREEK`, it is the - * Greek encoding, not Roman. `TT_MAC_ID_ARABIC` with - * `TT_MAC_LANGID_FARSI` means the Farsi variant the Arabic encoding. - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* FT_Encoding */ + /* */ + /* <Description> */ + /* An enumeration used to specify character sets supported by */ + /* charmaps. Used in the @FT_Select_Charmap API function. */ + /* */ + /* <Note> */ + /* Despite the name, this enumeration lists specific character */ + /* repertories (i.e., charsets), and not text encoding methods (e.g., */ + /* UTF-8, UTF-16, etc.). */ + /* */ + /* Other encodings might be defined in the future. */ + /* */ + /* <Values> */ + /* FT_ENCODING_NONE :: */ + /* The encoding value~0 is reserved. */ + /* */ + /* FT_ENCODING_UNICODE :: */ + /* Corresponds to the Unicode character set. This value covers */ + /* all versions of the Unicode repertoire, including ASCII and */ + /* Latin-1. Most fonts include a Unicode charmap, but not all */ + /* of them. */ + /* */ + /* For example, if you want to access Unicode value U+1F028 (and */ + /* the font contains it), use value 0x1F028 as the input value for */ + /* @FT_Get_Char_Index. */ + /* */ + /* FT_ENCODING_MS_SYMBOL :: */ + /* Corresponds to the Microsoft Symbol encoding, used to encode */ + /* mathematical symbols in the 32..255 character code range. For */ + /* more information, see */ + /* `http://www.kostis.net/charsets/symbol.htm'. */ + /* */ + /* FT_ENCODING_SJIS :: */ + /* Corresponds to Japanese SJIS encoding. More info at */ + /* at `http://en.wikipedia.org/wiki/Shift_JIS'. */ + /* See note on multi-byte encodings below. */ + /* */ + /* FT_ENCODING_GB2312 :: */ + /* Corresponds to an encoding system for Simplified Chinese as used */ + /* used in mainland China. */ + /* */ + /* FT_ENCODING_BIG5 :: */ + /* Corresponds to an encoding system for Traditional Chinese as */ + /* used in Taiwan and Hong Kong. */ + /* */ + /* FT_ENCODING_WANSUNG :: */ + /* Corresponds to the Korean encoding system known as Wansung. */ + /* For more information see */ + /* `http://msdn.microsoft.com/en-US/goglobal/cc305154'. */ + /* */ + /* FT_ENCODING_JOHAB :: */ + /* The Korean standard character set (KS~C 5601-1992), which */ + /* corresponds to MS Windows code page 1361. This character set */ + /* includes all possible Hangeul character combinations. */ + /* */ + /* FT_ENCODING_ADOBE_LATIN_1 :: */ + /* Corresponds to a Latin-1 encoding as defined in a Type~1 */ + /* PostScript font. It is limited to 256 character codes. */ + /* */ + /* FT_ENCODING_ADOBE_STANDARD :: */ + /* Corresponds to the Adobe Standard encoding, as found in Type~1, */ + /* CFF, and OpenType/CFF fonts. It is limited to 256 character */ + /* codes. */ + /* */ + /* FT_ENCODING_ADOBE_EXPERT :: */ + /* Corresponds to the Adobe Expert encoding, as found in Type~1, */ + /* CFF, and OpenType/CFF fonts. It is limited to 256 character */ + /* codes. */ + /* */ + /* FT_ENCODING_ADOBE_CUSTOM :: */ + /* Corresponds to a custom encoding, as found in Type~1, CFF, and */ + /* OpenType/CFF fonts. It is limited to 256 character codes. */ + /* */ + /* FT_ENCODING_APPLE_ROMAN :: */ + /* Corresponds to the 8-bit Apple roman encoding. Many TrueType */ + /* and OpenType fonts contain a charmap for this encoding, since */ + /* older versions of Mac OS are able to use it. */ + /* */ + /* FT_ENCODING_OLD_LATIN_2 :: */ + /* This value is deprecated and was never used nor reported by */ + /* FreeType. Don't use or test for it. */ + /* */ + /* FT_ENCODING_MS_SJIS :: */ + /* Same as FT_ENCODING_SJIS. Deprecated. */ + /* */ + /* FT_ENCODING_MS_GB2312 :: */ + /* Same as FT_ENCODING_GB2312. Deprecated. */ + /* */ + /* FT_ENCODING_MS_BIG5 :: */ + /* Same as FT_ENCODING_BIG5. Deprecated. */ + /* */ + /* FT_ENCODING_MS_WANSUNG :: */ + /* Same as FT_ENCODING_WANSUNG. Deprecated. */ + /* */ + /* FT_ENCODING_MS_JOHAB :: */ + /* Same as FT_ENCODING_JOHAB. Deprecated. */ + /* */ + /* <Note> */ + /* By default, FreeType automatically synthesizes a Unicode charmap */ + /* for PostScript fonts, using their glyph names dictionaries. */ + /* However, it also reports the encodings defined explicitly in the */ + /* font file, for the cases when they are needed, with the Adobe */ + /* values as well. */ + /* */ + /* FT_ENCODING_NONE is set by the BDF and PCF drivers if the charmap */ + /* is neither Unicode nor ISO-8859-1 (otherwise it is set to */ + /* FT_ENCODING_UNICODE). Use @FT_Get_BDF_Charset_ID to find out */ + /* which encoding is really present. If, for example, the */ + /* `cs_registry' field is `KOI8' and the `cs_encoding' field is `R', */ + /* the font is encoded in KOI8-R. */ + /* */ + /* FT_ENCODING_NONE is always set (with a single exception) by the */ + /* winfonts driver. Use @FT_Get_WinFNT_Header and examine the */ + /* `charset' field of the @FT_WinFNT_HeaderRec structure to find out */ + /* which encoding is really present. For example, */ + /* @FT_WinFNT_ID_CP1251 (204) means Windows code page 1251 (for */ + /* Russian). */ + /* */ + /* FT_ENCODING_NONE is set if `platform_id' is @TT_PLATFORM_MACINTOSH */ + /* and `encoding_id' is not @TT_MAC_ID_ROMAN (otherwise it is set to */ + /* FT_ENCODING_APPLE_ROMAN). */ + /* */ + /* If `platform_id' is @TT_PLATFORM_MACINTOSH, use the function */ + /* @FT_Get_CMap_Language_ID to query the Mac language ID that may */ + /* be needed to be able to distinguish Apple encoding variants. See */ + /* */ + /* http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt */ + /* */ + /* to get an idea how to do that. Basically, if the language ID */ + /* is~0, don't use it, otherwise subtract 1 from the language ID. */ + /* Then examine `encoding_id'. If, for example, `encoding_id' is */ + /* @TT_MAC_ID_ROMAN and the language ID (minus~1) is */ + /* `TT_MAC_LANGID_GREEK', it is the Greek encoding, not Roman. */ + /* @TT_MAC_ID_ARABIC with `TT_MAC_LANGID_FARSI' means the Farsi */ + /* variant the Arabic encoding. */ + /* */ typedef enum FT_Encoding_ { FT_ENC_TAG( FT_ENCODING_NONE, 0, 0, 0, 0 ), @@ -745,15 +747,14 @@ FT_BEGIN_HEADER FT_ENC_TAG( FT_ENCODING_UNICODE, 'u', 'n', 'i', 'c' ), FT_ENC_TAG( FT_ENCODING_SJIS, 's', 'j', 'i', 's' ), - FT_ENC_TAG( FT_ENCODING_PRC, 'g', 'b', ' ', ' ' ), + FT_ENC_TAG( FT_ENCODING_GB2312, 'g', 'b', ' ', ' ' ), FT_ENC_TAG( FT_ENCODING_BIG5, 'b', 'i', 'g', '5' ), FT_ENC_TAG( FT_ENCODING_WANSUNG, 'w', 'a', 'n', 's' ), FT_ENC_TAG( FT_ENCODING_JOHAB, 'j', 'o', 'h', 'a' ), - /* for backward compatibility */ - FT_ENCODING_GB2312 = FT_ENCODING_PRC, + /* for backwards compatibility */ FT_ENCODING_MS_SJIS = FT_ENCODING_SJIS, - FT_ENCODING_MS_GB2312 = FT_ENCODING_PRC, + FT_ENCODING_MS_GB2312 = FT_ENCODING_GB2312, FT_ENCODING_MS_BIG5 = FT_ENCODING_BIG5, FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG, FT_ENCODING_MS_JOHAB = FT_ENCODING_JOHAB, @@ -770,7 +771,7 @@ FT_BEGIN_HEADER } FT_Encoding; - /* these constants are deprecated; use the corresponding `FT_Encoding` */ + /* these constants are deprecated; use the corresponding `FT_Encoding' */ /* values instead */ #define ft_encoding_none FT_ENCODING_NONE #define ft_encoding_unicode FT_ENCODING_UNICODE @@ -778,7 +779,7 @@ FT_BEGIN_HEADER #define ft_encoding_latin_1 FT_ENCODING_ADOBE_LATIN_1 #define ft_encoding_latin_2 FT_ENCODING_OLD_LATIN_2 #define ft_encoding_sjis FT_ENCODING_SJIS -#define ft_encoding_gb2312 FT_ENCODING_PRC +#define ft_encoding_gb2312 FT_ENCODING_GB2312 #define ft_encoding_big5 FT_ENCODING_BIG5 #define ft_encoding_wansung FT_ENCODING_WANSUNG #define ft_encoding_johab FT_ENCODING_JOHAB @@ -789,31 +790,29 @@ FT_BEGIN_HEADER #define ft_encoding_apple_roman FT_ENCODING_APPLE_ROMAN - /************************************************************************** - * - * @struct: - * FT_CharMapRec - * - * @description: - * The base charmap structure. - * - * @fields: - * face :: - * A handle to the parent face object. - * - * encoding :: - * An @FT_Encoding tag identifying the charmap. Use this with - * @FT_Select_Charmap. - * - * platform_id :: - * An ID number describing the platform for the following encoding ID. - * This comes directly from the TrueType specification and gets - * emulated for other formats. - * - * encoding_id :: - * A platform-specific encoding number. This also comes from the - * TrueType specification and gets emulated similarly. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_CharMapRec */ + /* */ + /* <Description> */ + /* The base charmap structure. */ + /* */ + /* <Fields> */ + /* face :: A handle to the parent face object. */ + /* */ + /* encoding :: An @FT_Encoding tag identifying the charmap. Use */ + /* this with @FT_Select_Charmap. */ + /* */ + /* platform_id :: An ID number describing the platform for the */ + /* following encoding ID. This comes directly from */ + /* the TrueType specification and should be emulated */ + /* for other formats. */ + /* */ + /* encoding_id :: A platform specific encoding number. This also */ + /* comes from the TrueType specification and should be */ + /* emulated similarly. */ + /* */ typedef struct FT_CharMapRec_ { FT_Face face; @@ -833,203 +832,166 @@ FT_BEGIN_HEADER /*************************************************************************/ - /************************************************************************** - * - * @type: - * FT_Face_Internal - * - * @description: - * An opaque handle to an `FT_Face_InternalRec` structure that models the - * private data of a given @FT_Face object. - * - * This structure might change between releases of FreeType~2 and is not - * generally available to client applications. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Face_Internal */ + /* */ + /* <Description> */ + /* An opaque handle to an `FT_Face_InternalRec' structure, used to */ + /* model private data of a given @FT_Face object. */ + /* */ + /* This structure might change between releases of FreeType~2 and is */ + /* not generally available to client applications. */ + /* */ typedef struct FT_Face_InternalRec_* FT_Face_Internal; - /************************************************************************** - * - * @struct: - * FT_FaceRec - * - * @description: - * FreeType root face class structure. A face object models a typeface - * in a font file. - * - * @fields: - * num_faces :: - * The number of faces in the font file. Some font formats can have - * multiple faces in a single font file. - * - * face_index :: - * This field holds two different values. Bits 0-15 are the index of - * the face in the font file (starting with value~0). They are set - * to~0 if there is only one face in the font file. - * - * [Since 2.6.1] Bits 16-30 are relevant to GX and OpenType variation - * fonts only, holding the named instance index for the current face - * index (starting with value~1; value~0 indicates font access without - * a named instance). For non-variation fonts, bits 16-30 are ignored. - * If we have the third named instance of face~4, say, `face_index` is - * set to 0x00030004. - * - * Bit 31 is always zero (this is, `face_index` is always a positive - * value). - * - * [Since 2.9] Changing the design coordinates with - * @FT_Set_Var_Design_Coordinates or @FT_Set_Var_Blend_Coordinates does - * not influence the named instance index value (only - * @FT_Set_Named_Instance does that). - * - * face_flags :: - * A set of bit flags that give important information about the face; - * see @FT_FACE_FLAG_XXX for the details. - * - * style_flags :: - * The lower 16~bits contain a set of bit flags indicating the style of - * the face; see @FT_STYLE_FLAG_XXX for the details. - * - * [Since 2.6.1] Bits 16-30 hold the number of named instances - * available for the current face if we have a GX or OpenType variation - * (sub)font. Bit 31 is always zero (this is, `style_flags` is always - * a positive value). Note that a variation font has always at least - * one named instance, namely the default instance. - * - * num_glyphs :: - * The number of glyphs in the face. If the face is scalable and has - * sbits (see `num_fixed_sizes`), it is set to the number of outline - * glyphs. - * - * For CID-keyed fonts (not in an SFNT wrapper) this value gives the - * highest CID used in the font. - * - * family_name :: - * The face's family name. This is an ASCII string, usually in - * English, that describes the typeface's family (like 'Times New - * Roman', 'Bodoni', 'Garamond', etc). This is a least common - * denominator used to list fonts. Some formats (TrueType & OpenType) - * provide localized and Unicode versions of this string. Applications - * should use the format-specific interface to access them. Can be - * `NULL` (e.g., in fonts embedded in a PDF file). - * - * In case the font doesn't provide a specific family name entry, - * FreeType tries to synthesize one, deriving it from other name - * entries. - * - * style_name :: - * The face's style name. This is an ASCII string, usually in English, - * that describes the typeface's style (like 'Italic', 'Bold', - * 'Condensed', etc). Not all font formats provide a style name, so - * this field is optional, and can be set to `NULL`. As for - * `family_name`, some formats provide localized and Unicode versions - * of this string. Applications should use the format-specific - * interface to access them. - * - * num_fixed_sizes :: - * The number of bitmap strikes in the face. Even if the face is - * scalable, there might still be bitmap strikes, which are called - * 'sbits' in that case. - * - * available_sizes :: - * An array of @FT_Bitmap_Size for all bitmap strikes in the face. It - * is set to `NULL` if there is no bitmap strike. - * - * Note that FreeType tries to sanitize the strike data since they are - * sometimes sloppy or incorrect, but this can easily fail. - * - * num_charmaps :: - * The number of charmaps in the face. - * - * charmaps :: - * An array of the charmaps of the face. - * - * generic :: - * A field reserved for client uses. See the @FT_Generic type - * description. - * - * bbox :: - * The font bounding box. Coordinates are expressed in font units (see - * `units_per_EM`). The box is large enough to contain any glyph from - * the font. Thus, `bbox.yMax` can be seen as the 'maximum ascender', - * and `bbox.yMin` as the 'minimum descender'. Only relevant for - * scalable formats. - * - * Note that the bounding box might be off by (at least) one pixel for - * hinted fonts. See @FT_Size_Metrics for further discussion. - * - * Note that the bounding box does not vary in OpenType variable fonts - * and should only be used in relation to the default instance. - * - * units_per_EM :: - * The number of font units per EM square for this face. This is - * typically 2048 for TrueType fonts, and 1000 for Type~1 fonts. Only - * relevant for scalable formats. - * - * ascender :: - * The typographic ascender of the face, expressed in font units. For - * font formats not having this information, it is set to `bbox.yMax`. - * Only relevant for scalable formats. - * - * descender :: - * The typographic descender of the face, expressed in font units. For - * font formats not having this information, it is set to `bbox.yMin`. - * Note that this field is negative for values below the baseline. - * Only relevant for scalable formats. - * - * height :: - * This value is the vertical distance between two consecutive - * baselines, expressed in font units. It is always positive. Only - * relevant for scalable formats. - * - * If you want the global glyph height, use `ascender - descender`. - * - * max_advance_width :: - * The maximum advance width, in font units, for all glyphs in this - * face. This can be used to make word wrapping computations faster. - * Only relevant for scalable formats. - * - * max_advance_height :: - * The maximum advance height, in font units, for all glyphs in this - * face. This is only relevant for vertical layouts, and is set to - * `height` for fonts that do not provide vertical metrics. Only - * relevant for scalable formats. - * - * underline_position :: - * The position, in font units, of the underline line for this face. - * It is the center of the underlining stem. Only relevant for - * scalable formats. - * - * underline_thickness :: - * The thickness, in font units, of the underline for this face. Only - * relevant for scalable formats. - * - * glyph :: - * The face's associated glyph slot(s). - * - * size :: - * The current active size for this face. - * - * charmap :: - * The current active charmap for this face. - * - * @note: - * Fields may be changed after a call to @FT_Attach_File or - * @FT_Attach_Stream. - * - * For an OpenType variation font, the values of the following fields can - * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if - * the font contains an 'MVAR' table: `ascender`, `descender`, `height`, - * `underline_position`, and `underline_thickness`. - * - * Especially for TrueType fonts see also the documentation for - * @FT_Size_Metrics. - */ - -#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP) -#define generic GenericFromFreeTypeLibrary -#endif - + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_FaceRec */ + /* */ + /* <Description> */ + /* FreeType root face class structure. A face object models a */ + /* typeface in a font file. */ + /* */ + /* <Fields> */ + /* num_faces :: The number of faces in the font file. Some */ + /* font formats can have multiple faces in */ + /* a font file. */ + /* */ + /* face_index :: The index of the face in the font file. It */ + /* is set to~0 if there is only one face in */ + /* the font file. */ + /* */ + /* face_flags :: A set of bit flags that give important */ + /* information about the face; see */ + /* @FT_FACE_FLAG_XXX for the details. */ + /* */ + /* style_flags :: A set of bit flags indicating the style of */ + /* the face; see @FT_STYLE_FLAG_XXX for the */ + /* details. */ + /* */ + /* num_glyphs :: The number of glyphs in the face. If the */ + /* face is scalable and has sbits (see */ + /* `num_fixed_sizes'), it is set to the number */ + /* of outline glyphs. */ + /* */ + /* For CID-keyed fonts, this value gives the */ + /* highest CID used in the font. */ + /* */ + /* family_name :: The face's family name. This is an ASCII */ + /* string, usually in English, that describes */ + /* the typeface's family (like `Times New */ + /* Roman', `Bodoni', `Garamond', etc). This */ + /* is a least common denominator used to list */ + /* fonts. Some formats (TrueType & OpenType) */ + /* provide localized and Unicode versions of */ + /* this string. Applications should use the */ + /* format specific interface to access them. */ + /* Can be NULL (e.g., in fonts embedded in a */ + /* PDF file). */ + /* */ + /* style_name :: The face's style name. This is an ASCII */ + /* string, usually in English, that describes */ + /* the typeface's style (like `Italic', */ + /* `Bold', `Condensed', etc). Not all font */ + /* formats provide a style name, so this field */ + /* is optional, and can be set to NULL. As */ + /* for `family_name', some formats provide */ + /* localized and Unicode versions of this */ + /* string. Applications should use the format */ + /* specific interface to access them. */ + /* */ + /* num_fixed_sizes :: The number of bitmap strikes in the face. */ + /* Even if the face is scalable, there might */ + /* still be bitmap strikes, which are called */ + /* `sbits' in that case. */ + /* */ + /* available_sizes :: An array of @FT_Bitmap_Size for all bitmap */ + /* strikes in the face. It is set to NULL if */ + /* there is no bitmap strike. */ + /* */ + /* num_charmaps :: The number of charmaps in the face. */ + /* */ + /* charmaps :: An array of the charmaps of the face. */ + /* */ + /* generic :: A field reserved for client uses. See the */ + /* @FT_Generic type description. */ + /* */ + /* bbox :: The font bounding box. Coordinates are */ + /* expressed in font units (see */ + /* `units_per_EM'). The box is large enough */ + /* to contain any glyph from the font. Thus, */ + /* `bbox.yMax' can be seen as the `maximum */ + /* ascender', and `bbox.yMin' as the `minimum */ + /* descender'. Only relevant for scalable */ + /* formats. */ + /* */ + /* Note that the bounding box might be off by */ + /* (at least) one pixel for hinted fonts. See */ + /* @FT_Size_Metrics for further discussion. */ + /* */ + /* units_per_EM :: The number of font units per EM square for */ + /* this face. This is typically 2048 for */ + /* TrueType fonts, and 1000 for Type~1 fonts. */ + /* Only relevant for scalable formats. */ + /* */ + /* ascender :: The typographic ascender of the face, */ + /* expressed in font units. For font formats */ + /* not having this information, it is set to */ + /* `bbox.yMax'. Only relevant for scalable */ + /* formats. */ + /* */ + /* descender :: The typographic descender of the face, */ + /* expressed in font units. For font formats */ + /* not having this information, it is set to */ + /* `bbox.yMin'. Note that this field is */ + /* usually negative. Only relevant for */ + /* scalable formats. */ + /* */ + /* height :: This value is the vertical distance */ + /* between two consecutive baselines, */ + /* expressed in font units. It is always */ + /* positive. Only relevant for scalable */ + /* formats. */ + /* */ + /* If you want the global glyph height, use */ + /* `ascender - descender'. */ + /* */ + /* max_advance_width :: The maximum advance width, in font units, */ + /* for all glyphs in this face. This can be */ + /* used to make word wrapping computations */ + /* faster. Only relevant for scalable */ + /* formats. */ + /* */ + /* max_advance_height :: The maximum advance height, in font units, */ + /* for all glyphs in this face. This is only */ + /* relevant for vertical layouts, and is set */ + /* to `height' for fonts that do not provide */ + /* vertical metrics. Only relevant for */ + /* scalable formats. */ + /* */ + /* underline_position :: The position, in font units, of the */ + /* underline line for this face. It is the */ + /* center of the underlining stem. Only */ + /* relevant for scalable formats. */ + /* */ + /* underline_thickness :: The thickness, in font units, of the */ + /* underline for this face. Only relevant for */ + /* scalable formats. */ + /* */ + /* glyph :: The face's associated glyph slot(s). */ + /* */ + /* size :: The current active size for this face. */ + /* */ + /* charmap :: The current active charmap for this face. */ + /* */ + /* <Note> */ + /* Fields may be changed after a call to @FT_Attach_File or */ + /* @FT_Attach_Stream. */ + /* */ typedef struct FT_FaceRec_ { FT_Long num_faces; @@ -1051,7 +1013,7 @@ FT_BEGIN_HEADER FT_Generic generic; - /*# The following member variables (down to `underline_thickness`) */ + /*# The following member variables (down to `underline_thickness') */ /*# are only relevant to scalable outlines; cf. @FT_Bitmap_Size */ /*# for bitmap fonts. */ FT_BBox bbox; @@ -1089,116 +1051,108 @@ FT_BEGIN_HEADER } FT_FaceRec; - /************************************************************************** - * - * @enum: - * FT_FACE_FLAG_XXX - * - * @description: - * A list of bit flags used in the `face_flags` field of the @FT_FaceRec - * structure. They inform client applications of properties of the - * corresponding face. - * - * @values: - * FT_FACE_FLAG_SCALABLE :: - * The face contains outline glyphs. Note that a face can contain - * bitmap strikes also, i.e., a face can have both this flag and - * @FT_FACE_FLAG_FIXED_SIZES set. - * - * FT_FACE_FLAG_FIXED_SIZES :: - * The face contains bitmap strikes. See also the `num_fixed_sizes` - * and `available_sizes` fields of @FT_FaceRec. - * - * FT_FACE_FLAG_FIXED_WIDTH :: - * The face contains fixed-width characters (like Courier, Lucida, - * MonoType, etc.). - * - * FT_FACE_FLAG_SFNT :: - * The face uses the SFNT storage scheme. For now, this means TrueType - * and OpenType. - * - * FT_FACE_FLAG_HORIZONTAL :: - * The face contains horizontal glyph metrics. This should be set for - * all common formats. - * - * FT_FACE_FLAG_VERTICAL :: - * The face contains vertical glyph metrics. This is only available in - * some formats, not all of them. - * - * FT_FACE_FLAG_KERNING :: - * The face contains kerning information. If set, the kerning distance - * can be retrieved using the function @FT_Get_Kerning. Otherwise the - * function always return the vector (0,0). Note that FreeType doesn't - * handle kerning data from the SFNT 'GPOS' table (as present in many - * OpenType fonts). - * - * FT_FACE_FLAG_FAST_GLYPHS :: - * THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT. - * - * FT_FACE_FLAG_MULTIPLE_MASTERS :: - * The face contains multiple masters and is capable of interpolating - * between them. Supported formats are Adobe MM, TrueType GX, and - * OpenType variation fonts. - * - * See section @multiple_masters for API details. - * - * FT_FACE_FLAG_GLYPH_NAMES :: - * The face contains glyph names, which can be retrieved using - * @FT_Get_Glyph_Name. Note that some TrueType fonts contain broken - * glyph name tables. Use the function @FT_Has_PS_Glyph_Names when - * needed. - * - * FT_FACE_FLAG_EXTERNAL_STREAM :: - * Used internally by FreeType to indicate that a face's stream was - * provided by the client application and should not be destroyed when - * @FT_Done_Face is called. Don't read or test this flag. - * - * FT_FACE_FLAG_HINTER :: - * The font driver has a hinting machine of its own. For example, with - * TrueType fonts, it makes sense to use data from the SFNT 'gasp' - * table only if the native TrueType hinting engine (with the bytecode - * interpreter) is available and active. - * - * FT_FACE_FLAG_CID_KEYED :: - * The face is CID-keyed. In that case, the face is not accessed by - * glyph indices but by CID values. For subsetted CID-keyed fonts this - * has the consequence that not all index values are a valid argument - * to @FT_Load_Glyph. Only the CID values for which corresponding - * glyphs in the subsetted font exist make `FT_Load_Glyph` return - * successfully; in all other cases you get an - * `FT_Err_Invalid_Argument` error. - * - * Note that CID-keyed fonts that are in an SFNT wrapper (this is, all - * OpenType/CFF fonts) don't have this flag set since the glyphs are - * accessed in the normal way (using contiguous indices); the - * 'CID-ness' isn't visible to the application. - * - * FT_FACE_FLAG_TRICKY :: - * The face is 'tricky', this is, it always needs the font format's - * native hinting engine to get a reasonable result. A typical example - * is the old Chinese font `mingli.ttf` (but not `mingliu.ttc`) that - * uses TrueType bytecode instructions to move and scale all of its - * subglyphs. - * - * It is not possible to auto-hint such fonts using - * @FT_LOAD_FORCE_AUTOHINT; it will also ignore @FT_LOAD_NO_HINTING. - * You have to set both @FT_LOAD_NO_HINTING and @FT_LOAD_NO_AUTOHINT to - * really disable hinting; however, you probably never want this except - * for demonstration purposes. - * - * Currently, there are about a dozen TrueType fonts in the list of - * tricky fonts; they are hard-coded in file `ttobjs.c`. - * - * FT_FACE_FLAG_COLOR :: - * [Since 2.5.1] The face has color glyph tables. See @FT_LOAD_COLOR - * 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. - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* FT_FACE_FLAG_XXX */ + /* */ + /* <Description> */ + /* A list of bit flags used in the `face_flags' field of the */ + /* @FT_FaceRec structure. They inform client applications of */ + /* properties of the corresponding face. */ + /* */ + /* <Values> */ + /* FT_FACE_FLAG_SCALABLE :: */ + /* Indicates that the face contains outline glyphs. This doesn't */ + /* prevent bitmap strikes, i.e., a face can have both this and */ + /* and @FT_FACE_FLAG_FIXED_SIZES set. */ + /* */ + /* FT_FACE_FLAG_FIXED_SIZES :: */ + /* Indicates that the face contains bitmap strikes. See also the */ + /* `num_fixed_sizes' and `available_sizes' fields of @FT_FaceRec. */ + /* */ + /* FT_FACE_FLAG_FIXED_WIDTH :: */ + /* Indicates that the face contains fixed-width characters (like */ + /* Courier, Lucido, MonoType, etc.). */ + /* */ + /* FT_FACE_FLAG_SFNT :: */ + /* Indicates that the face uses the `sfnt' storage scheme. For */ + /* now, this means TrueType and OpenType. */ + /* */ + /* FT_FACE_FLAG_HORIZONTAL :: */ + /* Indicates that the face contains horizontal glyph metrics. This */ + /* should be set for all common formats. */ + /* */ + /* FT_FACE_FLAG_VERTICAL :: */ + /* Indicates that the face contains vertical glyph metrics. This */ + /* is only available in some formats, not all of them. */ + /* */ + /* FT_FACE_FLAG_KERNING :: */ + /* Indicates that the face contains kerning information. If set, */ + /* the kerning distance can be retrieved through the function */ + /* @FT_Get_Kerning. Otherwise the function always return the */ + /* vector (0,0). Note that FreeType doesn't handle kerning data */ + /* from the `GPOS' table (as present in some OpenType fonts). */ + /* */ + /* FT_FACE_FLAG_FAST_GLYPHS :: */ + /* THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT. */ + /* */ + /* FT_FACE_FLAG_MULTIPLE_MASTERS :: */ + /* Indicates that the font contains multiple masters and is capable */ + /* of interpolating between them. See the multiple-masters */ + /* specific API for details. */ + /* */ + /* FT_FACE_FLAG_GLYPH_NAMES :: */ + /* Indicates that the font contains glyph names that can be */ + /* retrieved through @FT_Get_Glyph_Name. Note that some TrueType */ + /* fonts contain broken glyph name tables. Use the function */ + /* @FT_Has_PS_Glyph_Names when needed. */ + /* */ + /* FT_FACE_FLAG_EXTERNAL_STREAM :: */ + /* Used internally by FreeType to indicate that a face's stream was */ + /* provided by the client application and should not be destroyed */ + /* when @FT_Done_Face is called. Don't read or test this flag. */ + /* */ + /* FT_FACE_FLAG_HINTER :: */ + /* Set if the font driver has a hinting machine of its own. For */ + /* example, with TrueType fonts, it makes sense to use data from */ + /* the SFNT `gasp' table only if the native TrueType hinting engine */ + /* (with the bytecode interpreter) is available and active. */ + /* */ + /* FT_FACE_FLAG_CID_KEYED :: */ + /* Set if the font is CID-keyed. In that case, the font is not */ + /* accessed by glyph indices but by CID values. For subsetted */ + /* CID-keyed fonts this has the consequence that not all index */ + /* values are a valid argument to FT_Load_Glyph. Only the CID */ + /* values for which corresponding glyphs in the subsetted font */ + /* exist make FT_Load_Glyph return successfully; in all other cases */ + /* you get an `FT_Err_Invalid_Argument' error. */ + /* */ + /* Note that CID-keyed fonts that are in an SFNT wrapper don't */ + /* have this flag set since the glyphs are accessed in the normal */ + /* way (using contiguous indices); the `CID-ness' isn't visible to */ + /* the application. */ + /* */ + /* FT_FACE_FLAG_TRICKY :: */ + /* Set if the font is `tricky', this is, it always needs the */ + /* font format's native hinting engine to get a reasonable result. */ + /* A typical example is the Chinese font `mingli.ttf' that uses */ + /* TrueType bytecode instructions to move and scale all of its */ + /* subglyphs. */ + /* */ + /* It is not possible to autohint such fonts using */ + /* @FT_LOAD_FORCE_AUTOHINT; it will also ignore */ + /* @FT_LOAD_NO_HINTING. You have to set both @FT_LOAD_NO_HINTING */ + /* and @FT_LOAD_NO_AUTOHINT to really disable hinting; however, you */ + /* probably never want this except for demonstration purposes. */ + /* */ + /* Currently, there are about a dozen TrueType fonts in the list of */ + /* tricky fonts; they are hard-coded in file `ttobjs.c'. */ + /* */ + /* FT_FACE_FLAG_COLOR :: */ + /* Set if the font has color glyph tables. To access color glyphs */ + /* use @FT_LOAD_COLOR. */ + /* */ #define FT_FACE_FLAG_SCALABLE ( 1L << 0 ) #define FT_FACE_FLAG_FIXED_SIZES ( 1L << 1 ) #define FT_FACE_FLAG_FIXED_WIDTH ( 1L << 2 ) @@ -1214,30 +1168,29 @@ FT_BEGIN_HEADER #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 + * FT_HAS_HORIZONTAL( face ) * * @description: - * A macro that returns true whenever a face object contains horizontal - * metrics (this is true for all font formats though). + * A macro that returns true whenever a face object contains + * horizontal metrics (this is true for all font formats though). * * @also: * @FT_HAS_VERTICAL can be used to check for vertical metrics. * */ #define FT_HAS_HORIZONTAL( face ) \ - ( !!( (face)->face_flags & FT_FACE_FLAG_HORIZONTAL ) ) + ( face->face_flags & FT_FACE_FLAG_HORIZONTAL ) - /************************************************************************** + /************************************************************************* * * @macro: - * FT_HAS_VERTICAL + * FT_HAS_VERTICAL( face ) * * @description: * A macro that returns true whenever a face object contains real @@ -1245,91 +1198,91 @@ FT_BEGIN_HEADER * */ #define FT_HAS_VERTICAL( face ) \ - ( !!( (face)->face_flags & FT_FACE_FLAG_VERTICAL ) ) + ( face->face_flags & FT_FACE_FLAG_VERTICAL ) - /************************************************************************** + /************************************************************************* * * @macro: - * FT_HAS_KERNING + * FT_HAS_KERNING( face ) * * @description: - * A macro that returns true whenever a face object contains kerning data - * that can be accessed with @FT_Get_Kerning. + * A macro that returns true whenever a face object contains kerning + * data that can be accessed with @FT_Get_Kerning. * */ #define FT_HAS_KERNING( face ) \ - ( !!( (face)->face_flags & FT_FACE_FLAG_KERNING ) ) + ( face->face_flags & FT_FACE_FLAG_KERNING ) - /************************************************************************** + /************************************************************************* * * @macro: - * FT_IS_SCALABLE + * FT_IS_SCALABLE( face ) * * @description: * A macro that returns true whenever a face object contains a scalable - * font face (true for TrueType, Type~1, Type~42, CID, OpenType/CFF, and - * PFR font formats). + * font face (true for TrueType, Type~1, Type~42, CID, OpenType/CFF, + * and PFR font formats. * */ #define FT_IS_SCALABLE( face ) \ - ( !!( (face)->face_flags & FT_FACE_FLAG_SCALABLE ) ) + ( face->face_flags & FT_FACE_FLAG_SCALABLE ) - /************************************************************************** + /************************************************************************* * * @macro: - * FT_IS_SFNT + * FT_IS_SFNT( face ) * * @description: - * A macro that returns true whenever a face object contains a font whose - * format is based on the SFNT storage scheme. This usually means: - * TrueType fonts, OpenType fonts, as well as SFNT-based embedded bitmap - * fonts. + * A macro that returns true whenever a face object contains a font + * whose format is based on the SFNT storage scheme. This usually + * means: TrueType fonts, OpenType fonts, as well as SFNT-based embedded + * bitmap fonts. * * If this macro is true, all functions defined in @FT_SFNT_NAMES_H and * @FT_TRUETYPE_TABLES_H are available. * */ #define FT_IS_SFNT( face ) \ - ( !!( (face)->face_flags & FT_FACE_FLAG_SFNT ) ) + ( face->face_flags & FT_FACE_FLAG_SFNT ) - /************************************************************************** + /************************************************************************* * * @macro: - * FT_IS_FIXED_WIDTH + * FT_IS_FIXED_WIDTH( face ) * * @description: * A macro that returns true whenever a face object contains a font face - * that contains fixed-width (or 'monospace', 'fixed-pitch', etc.) + * that contains fixed-width (or `monospace', `fixed-pitch', etc.) * glyphs. * */ #define FT_IS_FIXED_WIDTH( face ) \ - ( !!( (face)->face_flags & FT_FACE_FLAG_FIXED_WIDTH ) ) + ( face->face_flags & FT_FACE_FLAG_FIXED_WIDTH ) - /************************************************************************** + /************************************************************************* * * @macro: - * FT_HAS_FIXED_SIZES + * FT_HAS_FIXED_SIZES( face ) * * @description: * A macro that returns true whenever a face object contains some - * embedded bitmaps. See the `available_sizes` field of the @FT_FaceRec - * structure. + * embedded bitmaps. See the `available_sizes' field of the + * @FT_FaceRec structure. * */ #define FT_HAS_FIXED_SIZES( face ) \ - ( !!( (face)->face_flags & FT_FACE_FLAG_FIXED_SIZES ) ) + ( face->face_flags & FT_FACE_FLAG_FIXED_SIZES ) - /************************************************************************** + /************************************************************************* * * @macro: - * FT_HAS_FAST_GLYPHS + * FT_HAS_FAST_GLYPHS( face ) * * @description: * Deprecated. @@ -1338,10 +1291,10 @@ FT_BEGIN_HEADER #define FT_HAS_FAST_GLYPHS( face ) 0 - /************************************************************************** + /************************************************************************* * * @macro: - * FT_HAS_GLYPH_NAMES + * FT_HAS_GLYPH_NAMES( face ) * * @description: * A macro that returns true whenever a face object contains some glyph @@ -1349,13 +1302,13 @@ FT_BEGIN_HEADER * */ #define FT_HAS_GLYPH_NAMES( face ) \ - ( !!( (face)->face_flags & FT_FACE_FLAG_GLYPH_NAMES ) ) + ( face->face_flags & FT_FACE_FLAG_GLYPH_NAMES ) - /************************************************************************** + /************************************************************************* * * @macro: - * FT_HAS_MULTIPLE_MASTERS + * FT_HAS_MULTIPLE_MASTERS( face ) * * @description: * A macro that returns true whenever a face object contains some @@ -1364,239 +1317,148 @@ FT_BEGIN_HEADER * */ #define FT_HAS_MULTIPLE_MASTERS( face ) \ - ( !!( (face)->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS ) ) + ( face->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS ) - /************************************************************************** + /************************************************************************* * * @macro: - * FT_IS_NAMED_INSTANCE - * - * @description: - * A macro that returns true whenever a face object is a named instance - * of a GX or OpenType variation font. - * - * [Since 2.9] Changing the design coordinates with - * @FT_Set_Var_Design_Coordinates or @FT_Set_Var_Blend_Coordinates does - * not influence the return value of this macro (only - * @FT_Set_Named_Instance does that). - * - * @since: - * 2.7 - * - */ -#define FT_IS_NAMED_INSTANCE( face ) \ - ( !!( (face)->face_index & 0x7FFF0000L ) ) - - - /************************************************************************** - * - * @macro: - * FT_IS_VARIATION - * - * @description: - * A macro that returns true whenever a face object has been altered by - * @FT_Set_MM_Design_Coordinates, @FT_Set_Var_Design_Coordinates, or - * @FT_Set_Var_Blend_Coordinates. - * - * @since: - * 2.9 - * - */ -#define FT_IS_VARIATION( face ) \ - ( !!( (face)->face_flags & FT_FACE_FLAG_VARIATION ) ) - - - /************************************************************************** - * - * @macro: - * FT_IS_CID_KEYED + * FT_IS_CID_KEYED( face ) * * @description: * A macro that returns true whenever a face object contains a CID-keyed - * font. See the discussion of @FT_FACE_FLAG_CID_KEYED for more details. + * font. See the discussion of @FT_FACE_FLAG_CID_KEYED for more + * details. * * If this macro is true, all functions defined in @FT_CID_H are * available. * */ #define FT_IS_CID_KEYED( face ) \ - ( !!( (face)->face_flags & FT_FACE_FLAG_CID_KEYED ) ) + ( face->face_flags & FT_FACE_FLAG_CID_KEYED ) - /************************************************************************** + /************************************************************************* * * @macro: - * FT_IS_TRICKY + * FT_IS_TRICKY( face ) * * @description: - * A macro that returns true whenever a face represents a 'tricky' font. + * A macro that returns true whenever a face represents a `tricky' font. * See the discussion of @FT_FACE_FLAG_TRICKY for more details. * */ #define FT_IS_TRICKY( face ) \ - ( !!( (face)->face_flags & FT_FACE_FLAG_TRICKY ) ) + ( face->face_flags & FT_FACE_FLAG_TRICKY ) - /************************************************************************** + /************************************************************************* * * @macro: - * FT_HAS_COLOR + * FT_HAS_COLOR( face ) * * @description: - * A macro that returns true whenever a face object contains tables for - * color glyphs. - * - * @since: - * 2.5.1 + * A macro that returns true whenever a face object contains + * tables for color glyphs. * */ #define FT_HAS_COLOR( face ) \ - ( !!( (face)->face_flags & FT_FACE_FLAG_COLOR ) ) + ( face->face_flags & FT_FACE_FLAG_COLOR ) - /************************************************************************** - * - * @enum: - * FT_STYLE_FLAG_XXX - * - * @description: - * A list of bit flags to indicate the style of a given face. These are - * used in the `style_flags` field of @FT_FaceRec. - * - * @values: - * FT_STYLE_FLAG_ITALIC :: - * The face style is italic or oblique. - * - * FT_STYLE_FLAG_BOLD :: - * The face is bold. - * - * @note: - * The style information as provided by FreeType is very basic. More - * details are beyond the scope and should be done on a higher level (for - * example, by analyzing various fields of the 'OS/2' table in SFNT based - * fonts). - */ + /*************************************************************************/ + /* */ + /* <Const> */ + /* FT_STYLE_FLAG_XXX */ + /* */ + /* <Description> */ + /* A list of bit-flags used to indicate the style of a given face. */ + /* These are used in the `style_flags' field of @FT_FaceRec. */ + /* */ + /* <Values> */ + /* FT_STYLE_FLAG_ITALIC :: */ + /* Indicates that a given face style is italic or oblique. */ + /* */ + /* FT_STYLE_FLAG_BOLD :: */ + /* Indicates that a given face is bold. */ + /* */ + /* <Note> */ + /* The style information as provided by FreeType is very basic. More */ + /* details are beyond the scope and should be done on a higher level */ + /* (for example, by analyzing various fields of the `OS/2' table in */ + /* SFNT based fonts). */ + /* */ #define FT_STYLE_FLAG_ITALIC ( 1 << 0 ) #define FT_STYLE_FLAG_BOLD ( 1 << 1 ) - /************************************************************************** - * - * @type: - * FT_Size_Internal - * - * @description: - * An opaque handle to an `FT_Size_InternalRec` structure, used to model - * private data of a given @FT_Size object. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Size_Internal */ + /* */ + /* <Description> */ + /* An opaque handle to an `FT_Size_InternalRec' structure, used to */ + /* model private data of a given @FT_Size object. */ + /* */ typedef struct FT_Size_InternalRec_* FT_Size_Internal; - /************************************************************************** - * - * @struct: - * FT_Size_Metrics - * - * @description: - * The size metrics structure gives the metrics of a size object. - * - * @fields: - * x_ppem :: - * The width of the scaled EM square in pixels, hence the term 'ppem' - * (pixels per EM). It is also referred to as 'nominal width'. - * - * y_ppem :: - * The height of the scaled EM square in pixels, hence the term 'ppem' - * (pixels per EM). It is also referred to as 'nominal height'. - * - * x_scale :: - * A 16.16 fractional scaling value to convert horizontal metrics from - * font units to 26.6 fractional pixels. Only relevant for scalable - * font formats. - * - * y_scale :: - * A 16.16 fractional scaling value to convert vertical metrics from - * font units to 26.6 fractional pixels. Only relevant for scalable - * font formats. - * - * ascender :: - * The ascender in 26.6 fractional pixels, rounded up to an integer - * value. See @FT_FaceRec for the details. - * - * descender :: - * The descender in 26.6 fractional pixels, rounded down to an integer - * value. See @FT_FaceRec for the details. - * - * height :: - * The height in 26.6 fractional pixels, rounded to an integer value. - * See @FT_FaceRec for the details. - * - * max_advance :: - * The maximum advance width in 26.6 fractional pixels, rounded to an - * integer value. See @FT_FaceRec for the details. - * - * @note: - * The scaling values, if relevant, are determined first during a size - * changing operation. The remaining fields are then set by the driver. - * For scalable formats, they are usually set to scaled values of the - * corresponding fields in @FT_FaceRec. Some values like ascender or - * descender are rounded for historical reasons; more precise values (for - * outline fonts) can be derived by scaling the corresponding @FT_FaceRec - * values manually, with code similar to the following. - * - * ``` - * scaled_ascender = FT_MulFix( face->ascender, - * size_metrics->y_scale ); - * ``` - * - * Note that due to glyph hinting and the selected rendering mode these - * values are usually not exact; consequently, they must be treated as - * unreliable with an error margin of at least one pixel! - * - * Indeed, the only way to get the exact metrics is to render _all_ - * glyphs. As this would be a definite performance hit, it is up to - * client applications to perform such computations. - * - * The `FT_Size_Metrics` structure is valid for bitmap fonts also. - * - * - * **TrueType fonts with native bytecode hinting** - * - * All applications that handle TrueType fonts with native hinting must - * be aware that TTFs expect different rounding of vertical font - * dimensions. The application has to cater for this, especially if it - * wants to rely on a TTF's vertical data (for example, to properly align - * box characters vertically). - * - * Only the application knows _in advance_ that it is going to use native - * hinting for TTFs! FreeType, on the other hand, selects the hinting - * mode not at the time of creating an @FT_Size object but much later, - * namely while calling @FT_Load_Glyph. - * - * Here is some pseudo code that illustrates a possible solution. - * - * ``` - * font_format = FT_Get_Font_Format( face ); - * - * if ( !strcmp( font_format, "TrueType" ) && - * do_native_bytecode_hinting ) - * { - * ascender = ROUND( FT_MulFix( face->ascender, - * size_metrics->y_scale ) ); - * descender = ROUND( FT_MulFix( face->descender, - * size_metrics->y_scale ) ); - * } - * else - * { - * ascender = size_metrics->ascender; - * descender = size_metrics->descender; - * } - * - * height = size_metrics->height; - * max_advance = size_metrics->max_advance; - * ``` - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Size_Metrics */ + /* */ + /* <Description> */ + /* The size metrics structure gives the metrics of a size object. */ + /* */ + /* <Fields> */ + /* x_ppem :: The width of the scaled EM square in pixels, hence */ + /* the term `ppem' (pixels per EM). It is also */ + /* referred to as `nominal width'. */ + /* */ + /* y_ppem :: The height of the scaled EM square in pixels, */ + /* hence the term `ppem' (pixels per EM). It is also */ + /* referred to as `nominal height'. */ + /* */ + /* x_scale :: A 16.16 fractional scaling value used to convert */ + /* horizontal metrics from font units to 26.6 */ + /* fractional pixels. Only relevant for scalable */ + /* font formats. */ + /* */ + /* y_scale :: A 16.16 fractional scaling value used to convert */ + /* vertical metrics from font units to 26.6 */ + /* fractional pixels. Only relevant for scalable */ + /* font formats. */ + /* */ + /* ascender :: The ascender in 26.6 fractional pixels. See */ + /* @FT_FaceRec for the details. */ + /* */ + /* descender :: The descender in 26.6 fractional pixels. See */ + /* @FT_FaceRec for the details. */ + /* */ + /* height :: The height in 26.6 fractional pixels. See */ + /* @FT_FaceRec for the details. */ + /* */ + /* max_advance :: The maximum advance width in 26.6 fractional */ + /* pixels. See @FT_FaceRec for the details. */ + /* */ + /* <Note> */ + /* The scaling values, if relevant, are determined first during a */ + /* size changing operation. The remaining fields are then set by the */ + /* driver. For scalable formats, they are usually set to scaled */ + /* values of the corresponding fields in @FT_FaceRec. */ + /* */ + /* Note that due to glyph hinting, these values might not be exact */ + /* for certain fonts. Thus they must be treated as unreliable */ + /* with an error margin of at least one pixel! */ + /* */ + /* Indeed, the only way to get the exact metrics is to render _all_ */ + /* glyphs. As this would be a definite performance hit, it is up to */ + /* client applications to perform such computations. */ + /* */ + /* The FT_Size_Metrics structure is valid for bitmap fonts also. */ + /* */ typedef struct FT_Size_Metrics_ { FT_UShort x_ppem; /* horizontal pixels per EM */ @@ -1613,27 +1475,25 @@ FT_BEGIN_HEADER } FT_Size_Metrics; - /************************************************************************** - * - * @struct: - * FT_SizeRec - * - * @description: - * FreeType root size class structure. A size object models a face - * object at a given size. - * - * @fields: - * face :: - * Handle to the parent face object. - * - * generic :: - * A typeless pointer, unused by the FreeType library or any of its - * drivers. It can be used by client applications to link their own - * data to each size object. - * - * metrics :: - * Metrics for this size object. This field is read-only. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_SizeRec */ + /* */ + /* <Description> */ + /* FreeType root size class structure. A size object models a face */ + /* object at a given size. */ + /* */ + /* <Fields> */ + /* face :: Handle to the parent face object. */ + /* */ + /* generic :: A typeless pointer, unused by the FreeType library or */ + /* any of its drivers. It can be used by client */ + /* applications to link their own data to each size */ + /* object. */ + /* */ + /* metrics :: Metrics for this size object. This field is read-only. */ + /* */ typedef struct FT_SizeRec_ { FT_Face face; /* parent face object */ @@ -1644,241 +1504,211 @@ FT_BEGIN_HEADER } FT_SizeRec; - /************************************************************************** - * - * @struct: - * FT_SubGlyph - * - * @description: - * The subglyph structure is an internal object used to describe - * subglyphs (for example, in the case of composites). - * - * @note: - * The subglyph implementation is not part of the high-level API, hence - * the forward structure declaration. - * - * You can however retrieve subglyph information with - * @FT_Get_SubGlyph_Info. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_SubGlyph */ + /* */ + /* <Description> */ + /* The subglyph structure is an internal object used to describe */ + /* subglyphs (for example, in the case of composites). */ + /* */ + /* <Note> */ + /* The subglyph implementation is not part of the high-level API, */ + /* hence the forward structure declaration. */ + /* */ + /* You can however retrieve subglyph information with */ + /* @FT_Get_SubGlyph_Info. */ + /* */ typedef struct FT_SubGlyphRec_* FT_SubGlyph; - /************************************************************************** - * - * @type: - * FT_Slot_Internal - * - * @description: - * An opaque handle to an `FT_Slot_InternalRec` structure, used to model - * private data of a given @FT_GlyphSlot object. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Slot_Internal */ + /* */ + /* <Description> */ + /* An opaque handle to an `FT_Slot_InternalRec' structure, used to */ + /* model private data of a given @FT_GlyphSlot object. */ + /* */ typedef struct FT_Slot_InternalRec_* FT_Slot_Internal; - /************************************************************************** - * - * @struct: - * FT_GlyphSlotRec - * - * @description: - * FreeType root glyph slot class structure. A glyph slot is a container - * where individual glyphs can be loaded, be they in outline or bitmap - * format. - * - * @fields: - * library :: - * A handle to the FreeType library instance this slot belongs to. - * - * face :: - * A handle to the parent face object. - * - * next :: - * In some cases (like some font tools), several glyph slots per face - * object can be a good thing. As this is rare, the glyph slots are - * listed through a direct, single-linked list using its `next` field. - * - * glyph_index :: - * [Since 2.10] The glyph index passed as an argument to @FT_Load_Glyph - * while initializing the glyph slot. - * - * generic :: - * A typeless pointer unused by the FreeType library or any of its - * drivers. It can be used by client applications to link their own - * data to each glyph slot object. - * - * metrics :: - * The metrics of the last loaded glyph in the slot. The returned - * values depend on the last load flags (see the @FT_Load_Glyph API - * function) and can be expressed either in 26.6 fractional pixels or - * font units. - * - * Note that even when the glyph image is transformed, the metrics are - * not. - * - * linearHoriAdvance :: - * The advance width of the unhinted glyph. Its value is expressed in - * 16.16 fractional pixels, unless @FT_LOAD_LINEAR_DESIGN is set when - * loading the glyph. This field can be important to perform correct - * WYSIWYG layout. Only relevant for outline glyphs. - * - * linearVertAdvance :: - * The advance height of the unhinted glyph. Its value is expressed in - * 16.16 fractional pixels, unless @FT_LOAD_LINEAR_DESIGN is set when - * loading the glyph. This field can be important to perform correct - * WYSIWYG layout. Only relevant for outline glyphs. - * - * advance :: - * This shorthand is, depending on @FT_LOAD_IGNORE_TRANSFORM, the - * transformed (hinted) advance width for the glyph, in 26.6 fractional - * pixel format. As specified with @FT_LOAD_VERTICAL_LAYOUT, it uses - * either the `horiAdvance` or the `vertAdvance` value of `metrics` - * field. - * - * format :: - * This field indicates the format of the image contained in the glyph - * slot. Typically @FT_GLYPH_FORMAT_BITMAP, @FT_GLYPH_FORMAT_OUTLINE, - * or @FT_GLYPH_FORMAT_COMPOSITE, but other values are possible. - * - * bitmap :: - * This field is used as a bitmap descriptor. Note that the address - * and content of the bitmap buffer can change between calls of - * @FT_Load_Glyph and a few other functions. - * - * bitmap_left :: - * The bitmap's left bearing expressed in integer pixels. - * - * bitmap_top :: - * The bitmap's top bearing expressed in integer pixels. This is the - * distance from the baseline to the top-most glyph scanline, upwards - * y~coordinates being **positive**. - * - * outline :: - * The outline descriptor for the current glyph image if its format is - * @FT_GLYPH_FORMAT_OUTLINE. Once a glyph is loaded, `outline` can be - * transformed, distorted, emboldened, etc. However, it must not be - * freed. - * - * [Since 2.10.1] If @FT_LOAD_NO_SCALE is set, outline coordinates of - * OpenType variation fonts for a selected instance are internally - * handled as 26.6 fractional font units but returned as (rounded) - * integers, as expected. To get unrounded font units, don't use - * @FT_LOAD_NO_SCALE but load the glyph with @FT_LOAD_NO_HINTING and - * scale it, using the font's `units_per_EM` value as the ppem. - * - * num_subglyphs :: - * The number of subglyphs in a composite glyph. This field is only - * valid for the composite glyph format that should normally only be - * loaded with the @FT_LOAD_NO_RECURSE flag. - * - * subglyphs :: - * An array of subglyph descriptors for composite glyphs. There are - * `num_subglyphs` elements in there. Currently internal to FreeType. - * - * control_data :: - * Certain font drivers can also return the control data for a given - * glyph image (e.g. TrueType bytecode, Type~1 charstrings, etc.). - * This field is a pointer to such data; it is currently internal to - * FreeType. - * - * control_len :: - * This is the length in bytes of the control data. Currently internal - * to FreeType. - * - * other :: - * Reserved. - * - * lsb_delta :: - * The difference between hinted and unhinted left side bearing while - * auto-hinting is active. Zero otherwise. - * - * rsb_delta :: - * The difference between hinted and unhinted right side bearing while - * auto-hinting is active. Zero otherwise. - * - * @note: - * If @FT_Load_Glyph is called with default flags (see @FT_LOAD_DEFAULT) - * the glyph image is loaded in the glyph slot in its native format - * (e.g., an outline glyph for TrueType and Type~1 formats). [Since 2.9] - * The prospective bitmap metrics are calculated according to - * @FT_LOAD_TARGET_XXX and other flags even for the outline glyph, even - * if @FT_LOAD_RENDER is not set. - * - * This image can later be converted into a bitmap by calling - * @FT_Render_Glyph. This function searches the current renderer for the - * native image's format, then invokes it. - * - * The renderer is in charge of transforming the native image through the - * slot's face transformation fields, then converting it into a bitmap - * that is returned in `slot->bitmap`. - * - * Note that `slot->bitmap_left` and `slot->bitmap_top` are also used to - * specify the position of the bitmap relative to the current pen - * position (e.g., coordinates (0,0) on the baseline). Of course, - * `slot->format` is also changed to @FT_GLYPH_FORMAT_BITMAP. - * - * Here is a small pseudo code fragment that shows how to use `lsb_delta` - * and `rsb_delta` to do fractional positioning of glyphs: - * - * ``` - * FT_GlyphSlot slot = face->glyph; - * FT_Pos origin_x = 0; - * - * - * for all glyphs do - * <load glyph with `FT_Load_Glyph'> - * - * FT_Outline_Translate( slot->outline, origin_x & 63, 0 ); - * - * <save glyph image, or render glyph, or ...> - * - * <compute kern between current and next glyph - * and add it to `origin_x'> - * - * origin_x += slot->advance.x; - * origin_x += slot->lsb_delta - slot->rsb_delta; - * endfor - * ``` - * - * Here is another small pseudo code fragment that shows how to use - * `lsb_delta` and `rsb_delta` to improve integer positioning of glyphs: - * - * ``` - * FT_GlyphSlot slot = face->glyph; - * FT_Pos origin_x = 0; - * FT_Pos prev_rsb_delta = 0; - * - * - * for all glyphs do - * <compute kern between current and previous glyph - * and add it to `origin_x'> - * - * <load glyph with `FT_Load_Glyph'> - * - * if ( prev_rsb_delta - slot->lsb_delta > 32 ) - * origin_x -= 64; - * else if ( prev_rsb_delta - slot->lsb_delta < -31 ) - * origin_x += 64; - * - * prev_rsb_delta = slot->rsb_delta; - * - * <save glyph image, or render glyph, or ...> - * - * origin_x += slot->advance.x; - * endfor - * ``` - * - * If you use strong auto-hinting, you **must** apply these delta values! - * Otherwise you will experience far too large inter-glyph spacing at - * small rendering sizes in most cases. Note that it doesn't harm to use - * the above code for other hinting modes also, since the delta values - * are zero then. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_GlyphSlotRec */ + /* */ + /* <Description> */ + /* FreeType root glyph slot class structure. A glyph slot is a */ + /* container where individual glyphs can be loaded, be they in */ + /* outline or bitmap format. */ + /* */ + /* <Fields> */ + /* library :: A handle to the FreeType library instance */ + /* this slot belongs to. */ + /* */ + /* face :: A handle to the parent face object. */ + /* */ + /* next :: In some cases (like some font tools), several */ + /* glyph slots per face object can be a good */ + /* thing. As this is rare, the glyph slots are */ + /* listed through a direct, single-linked list */ + /* using its `next' field. */ + /* */ + /* generic :: A typeless pointer unused by the FreeType */ + /* library or any of its drivers. It can be */ + /* used by client applications to link their own */ + /* data to each glyph slot object. */ + /* */ + /* metrics :: The metrics of the last loaded glyph in the */ + /* slot. The returned values depend on the last */ + /* load flags (see the @FT_Load_Glyph API */ + /* function) and can be expressed either in 26.6 */ + /* fractional pixels or font units. */ + /* */ + /* Note that even when the glyph image is */ + /* transformed, the metrics are not. */ + /* */ + /* linearHoriAdvance :: The advance width of the unhinted glyph. */ + /* Its value is expressed in 16.16 fractional */ + /* pixels, unless @FT_LOAD_LINEAR_DESIGN is set */ + /* when loading the glyph. This field can be */ + /* important to perform correct WYSIWYG layout. */ + /* Only relevant for outline glyphs. */ + /* */ + /* linearVertAdvance :: The advance height of the unhinted glyph. */ + /* Its value is expressed in 16.16 fractional */ + /* pixels, unless @FT_LOAD_LINEAR_DESIGN is set */ + /* when loading the glyph. This field can be */ + /* important to perform correct WYSIWYG layout. */ + /* Only relevant for outline glyphs. */ + /* */ + /* advance :: This shorthand is, depending on */ + /* @FT_LOAD_IGNORE_TRANSFORM, the transformed */ + /* (hinted) advance width for the glyph, in 26.6 */ + /* fractional pixel format. As specified with */ + /* @FT_LOAD_VERTICAL_LAYOUT, it uses either the */ + /* `horiAdvance' or the `vertAdvance' value of */ + /* `metrics' field. */ + /* */ + /* format :: This field indicates the format of the image */ + /* contained in the glyph slot. Typically */ + /* @FT_GLYPH_FORMAT_BITMAP, */ + /* @FT_GLYPH_FORMAT_OUTLINE, or */ + /* @FT_GLYPH_FORMAT_COMPOSITE, but others are */ + /* possible. */ + /* */ + /* bitmap :: This field is used as a bitmap descriptor */ + /* when the slot format is */ + /* @FT_GLYPH_FORMAT_BITMAP. Note that the */ + /* address and content of the bitmap buffer can */ + /* change between calls of @FT_Load_Glyph and a */ + /* few other functions. */ + /* */ + /* bitmap_left :: The bitmap's left bearing expressed in */ + /* integer pixels. Only valid if the format is */ + /* @FT_GLYPH_FORMAT_BITMAP, this is, if the */ + /* glyph slot contains a bitmap. */ + /* */ + /* bitmap_top :: The bitmap's top bearing expressed in integer */ + /* pixels. Remember that this is the distance */ + /* from the baseline to the top-most glyph */ + /* scanline, upwards y~coordinates being */ + /* *positive*. */ + /* */ + /* outline :: The outline descriptor for the current glyph */ + /* image if its format is */ + /* @FT_GLYPH_FORMAT_OUTLINE. Once a glyph is */ + /* loaded, `outline' can be transformed, */ + /* distorted, embolded, etc. However, it must */ + /* not be freed. */ + /* */ + /* num_subglyphs :: The number of subglyphs in a composite glyph. */ + /* This field is only valid for the composite */ + /* glyph format that should normally only be */ + /* loaded with the @FT_LOAD_NO_RECURSE flag. */ + /* */ + /* subglyphs :: An array of subglyph descriptors for */ + /* composite glyphs. There are `num_subglyphs' */ + /* elements in there. Currently internal to */ + /* FreeType. */ + /* */ + /* control_data :: Certain font drivers can also return the */ + /* control data for a given glyph image (e.g. */ + /* TrueType bytecode, Type~1 charstrings, etc.). */ + /* This field is a pointer to such data. */ + /* */ + /* control_len :: This is the length in bytes of the control */ + /* data. */ + /* */ + /* other :: Really wicked formats can use this pointer to */ + /* present their own glyph image to client */ + /* applications. Note that the application */ + /* needs to know about the image format. */ + /* */ + /* lsb_delta :: The difference between hinted and unhinted */ + /* left side bearing while autohinting is */ + /* active. Zero otherwise. */ + /* */ + /* rsb_delta :: The difference between hinted and unhinted */ + /* right side bearing while autohinting is */ + /* active. Zero otherwise. */ + /* */ + /* <Note> */ + /* If @FT_Load_Glyph is called with default flags (see */ + /* @FT_LOAD_DEFAULT) the glyph image is loaded in the glyph slot in */ + /* its native format (e.g., an outline glyph for TrueType and Type~1 */ + /* formats). */ + /* */ + /* This image can later be converted into a bitmap by calling */ + /* @FT_Render_Glyph. This function finds the current renderer for */ + /* the native image's format, then invokes it. */ + /* */ + /* The renderer is in charge of transforming the native image through */ + /* the slot's face transformation fields, then converting it into a */ + /* bitmap that is returned in `slot->bitmap'. */ + /* */ + /* Note that `slot->bitmap_left' and `slot->bitmap_top' are also used */ + /* to specify the position of the bitmap relative to the current pen */ + /* position (e.g., coordinates (0,0) on the baseline). Of course, */ + /* `slot->format' is also changed to @FT_GLYPH_FORMAT_BITMAP. */ + /* */ + /* <Note> */ + /* Here a small pseudo code fragment that shows how to use */ + /* `lsb_delta' and `rsb_delta': */ + /* */ + /* { */ + /* FT_Pos origin_x = 0; */ + /* FT_Pos prev_rsb_delta = 0; */ + /* */ + /* */ + /* for all glyphs do */ + /* <compute kern between current and previous glyph and add it to */ + /* `origin_x'> */ + /* */ + /* <load glyph with `FT_Load_Glyph'> */ + /* */ + /* if ( prev_rsb_delta - face->glyph->lsb_delta >= 32 ) */ + /* origin_x -= 64; */ + /* else if ( prev_rsb_delta - face->glyph->lsb_delta < -32 ) */ + /* origin_x += 64; */ + /* */ + /* prev_rsb_delta = face->glyph->rsb_delta; */ + /* */ + /* <save glyph image, or render glyph, or ...> */ + /* */ + /* origin_x += face->glyph->advance.x; */ + /* endfor */ + /* } */ + /* */ typedef struct FT_GlyphSlotRec_ { FT_Library library; FT_Face face; FT_GlyphSlot next; - FT_UInt glyph_index; /* new in 2.10; was reserved previously */ + FT_UInt reserved; /* retained for binary compatibility */ FT_Generic generic; FT_Glyph_Metrics metrics; @@ -1909,9 +1739,6 @@ FT_BEGIN_HEADER } FT_GlyphSlotRec; -#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP) -#undef generic -#endif /*************************************************************************/ /*************************************************************************/ @@ -1922,92 +1749,80 @@ FT_BEGIN_HEADER /*************************************************************************/ - /************************************************************************** - * - * @function: - * FT_Init_FreeType - * - * @description: - * Initialize a new FreeType library object. The set of modules that are - * registered by this function is determined at build time. - * - * @output: - * alibrary :: - * A handle to a new library object. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * In case you want to provide your own memory allocating routines, use - * @FT_New_Library instead, followed by a call to @FT_Add_Default_Modules - * (or a series of calls to @FT_Add_Module) and - * @FT_Set_Default_Properties. - * - * See the documentation of @FT_Library and @FT_Face for multi-threading - * issues. - * - * If you need reference-counting (cf. @FT_Reference_Library), use - * @FT_New_Library and @FT_Done_Library. - * - * If compilation option `FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES` is - * set, this function reads the `FREETYPE_PROPERTIES` environment - * variable to control driver properties. See section @properties for - * more. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Init_FreeType */ + /* */ + /* <Description> */ + /* Initialize a new FreeType library object. The set of modules */ + /* that are registered by this function is determined at build time. */ + /* */ + /* <Output> */ + /* alibrary :: A handle to a new library object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* In case you want to provide your own memory allocating routines, */ + /* use @FT_New_Library instead, followed by a call to */ + /* @FT_Add_Default_Modules (or a series of calls to @FT_Add_Module). */ + /* */ + /* For multi-threading applications each thread should have its own */ + /* FT_Library object. */ + /* */ + /* If you need reference-counting (cf. @FT_Reference_Library), use */ + /* @FT_New_Library and @FT_Done_Library. */ + /* */ FT_EXPORT( FT_Error ) FT_Init_FreeType( FT_Library *alibrary ); - /************************************************************************** - * - * @function: - * FT_Done_FreeType - * - * @description: - * Destroy a given FreeType library object and all of its children, - * including resources, drivers, faces, sizes, etc. - * - * @input: - * library :: - * A handle to the target library object. - * - * @return: - * FreeType error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Done_FreeType */ + /* */ + /* <Description> */ + /* Destroy a given FreeType library object and all of its children, */ + /* including resources, drivers, faces, sizes, etc. */ + /* */ + /* <Input> */ + /* library :: A handle to the target library object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_Done_FreeType( FT_Library library ); - /************************************************************************** - * - * @enum: - * FT_OPEN_XXX - * - * @description: - * A list of bit field constants used within the `flags` field of the - * @FT_Open_Args structure. - * - * @values: - * FT_OPEN_MEMORY :: - * This is a memory-based stream. - * - * FT_OPEN_STREAM :: - * Copy the stream from the `stream` field. - * - * FT_OPEN_PATHNAME :: - * Create a new input stream from a C~path name. - * - * FT_OPEN_DRIVER :: - * Use the `driver` field. - * - * FT_OPEN_PARAMS :: - * Use the `num_params` and `params` fields. - * - * @note: - * The `FT_OPEN_MEMORY`, `FT_OPEN_STREAM`, and `FT_OPEN_PATHNAME` flags - * are mutually exclusive. - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* FT_OPEN_XXX */ + /* */ + /* <Description> */ + /* A list of bit-field constants used within the `flags' field of the */ + /* @FT_Open_Args structure. */ + /* */ + /* <Values> */ + /* FT_OPEN_MEMORY :: This is a memory-based stream. */ + /* */ + /* FT_OPEN_STREAM :: Copy the stream from the `stream' field. */ + /* */ + /* FT_OPEN_PATHNAME :: Create a new input stream from a C~path */ + /* name. */ + /* */ + /* FT_OPEN_DRIVER :: Use the `driver' field. */ + /* */ + /* FT_OPEN_PARAMS :: Use the `num_params' and `params' fields. */ + /* */ + /* <Note> */ + /* The `FT_OPEN_MEMORY', `FT_OPEN_STREAM', and `FT_OPEN_PATHNAME' */ + /* flags are mutually exclusive. */ + /* */ #define FT_OPEN_MEMORY 0x1 #define FT_OPEN_STREAM 0x2 #define FT_OPEN_PATHNAME 0x4 @@ -2015,7 +1830,7 @@ FT_BEGIN_HEADER #define FT_OPEN_PARAMS 0x10 - /* these constants are deprecated; use the corresponding `FT_OPEN_XXX` */ + /* these constants are deprecated; use the corresponding `FT_OPEN_XXX' */ /* values instead */ #define ft_open_memory FT_OPEN_MEMORY #define ft_open_stream FT_OPEN_STREAM @@ -2024,26 +1839,24 @@ FT_BEGIN_HEADER #define ft_open_params FT_OPEN_PARAMS - /************************************************************************** - * - * @struct: - * FT_Parameter - * - * @description: - * A simple structure to pass more or less generic parameters to - * @FT_Open_Face and @FT_Face_Properties. - * - * @fields: - * tag :: - * A four-byte identification tag. - * - * data :: - * A pointer to the parameter data. - * - * @note: - * The ID and function of parameters are driver-specific. See section - * @parameter_tags for more information. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Parameter */ + /* */ + /* <Description> */ + /* A simple structure used to pass more or less generic parameters to */ + /* @FT_Open_Face. */ + /* */ + /* <Fields> */ + /* tag :: A four-byte identification tag. */ + /* */ + /* data :: A pointer to the parameter data. */ + /* */ + /* <Note> */ + /* The ID and function of parameters are driver-specific. See the */ + /* various FT_PARAM_TAG_XXX flags for more information. */ + /* */ typedef struct FT_Parameter_ { FT_ULong tag; @@ -2052,70 +1865,64 @@ FT_BEGIN_HEADER } FT_Parameter; - /************************************************************************** - * - * @struct: - * FT_Open_Args - * - * @description: - * A structure to indicate how to open a new font file or stream. A - * pointer to such a structure can be used as a parameter for the - * functions @FT_Open_Face and @FT_Attach_Stream. - * - * @fields: - * flags :: - * A set of bit flags indicating how to use the structure. - * - * memory_base :: - * The first byte of the file in memory. - * - * memory_size :: - * The size in bytes of the file in memory. - * - * pathname :: - * A pointer to an 8-bit file pathname. The pointer is not owned by - * FreeType. - * - * stream :: - * A handle to a source stream object. - * - * driver :: - * This field is exclusively used by @FT_Open_Face; it simply specifies - * the font driver to use for opening the face. If set to `NULL`, - * FreeType tries to load the face with each one of the drivers in its - * list. - * - * num_params :: - * The number of extra parameters. - * - * params :: - * Extra parameters passed to the font driver when opening a new face. - * - * @note: - * The stream type is determined by the contents of `flags` that are - * tested in the following order by @FT_Open_Face: - * - * If the @FT_OPEN_MEMORY bit is set, assume that this is a memory file - * of `memory_size` bytes, located at `memory_address`. The data are not - * copied, and the client is responsible for releasing and destroying - * them _after_ the corresponding call to @FT_Done_Face. - * - * Otherwise, if the @FT_OPEN_STREAM bit is set, assume that a custom - * input stream `stream` is used. - * - * Otherwise, if the @FT_OPEN_PATHNAME bit is set, assume that this is a - * normal file and use `pathname` to open it. - * - * If the @FT_OPEN_DRIVER bit is set, @FT_Open_Face only tries to open - * the file with the driver whose handler is in `driver`. - * - * If the @FT_OPEN_PARAMS bit is set, the parameters given by - * `num_params` and `params` is used. They are ignored otherwise. - * - * Ideally, both the `pathname` and `params` fields should be tagged as - * 'const'; this is missing for API backward compatibility. In other - * words, applications should treat them as read-only. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Open_Args */ + /* */ + /* <Description> */ + /* A structure used to indicate how to open a new font file or */ + /* stream. A pointer to such a structure can be used as a parameter */ + /* for the functions @FT_Open_Face and @FT_Attach_Stream. */ + /* */ + /* <Fields> */ + /* flags :: A set of bit flags indicating how to use the */ + /* structure. */ + /* */ + /* memory_base :: The first byte of the file in memory. */ + /* */ + /* memory_size :: The size in bytes of the file in memory. */ + /* */ + /* pathname :: A pointer to an 8-bit file pathname. */ + /* */ + /* stream :: A handle to a source stream object. */ + /* */ + /* driver :: This field is exclusively used by @FT_Open_Face; */ + /* it simply specifies the font driver to use to open */ + /* the face. If set to~0, FreeType tries to load the */ + /* face with each one of the drivers in its list. */ + /* */ + /* num_params :: The number of extra parameters. */ + /* */ + /* params :: Extra parameters passed to the font driver when */ + /* opening a new face. */ + /* */ + /* <Note> */ + /* The stream type is determined by the contents of `flags' that */ + /* are tested in the following order by @FT_Open_Face: */ + /* */ + /* If the @FT_OPEN_MEMORY bit is set, assume that this is a */ + /* memory file of `memory_size' bytes, located at `memory_address'. */ + /* The data are are not copied, and the client is responsible for */ + /* releasing and destroying them _after_ the corresponding call to */ + /* @FT_Done_Face. */ + /* */ + /* Otherwise, if the @FT_OPEN_STREAM bit is set, assume that a */ + /* custom input stream `stream' is used. */ + /* */ + /* Otherwise, if the @FT_OPEN_PATHNAME bit is set, assume that this */ + /* is a normal file and use `pathname' to open it. */ + /* */ + /* If the @FT_OPEN_DRIVER bit is set, @FT_Open_Face only tries to */ + /* open the file with the driver whose handler is in `driver'. */ + /* */ + /* If the @FT_OPEN_PARAMS bit is set, the parameters given by */ + /* `num_params' and `params' is used. They are ignored otherwise. */ + /* */ + /* Ideally, both the `pathname' and `params' fields should be tagged */ + /* as `const'; this is missing for API backwards compatibility. In */ + /* other words, applications should treat them as read-only. */ + /* */ typedef struct FT_Open_Args_ { FT_UInt flags; @@ -2130,37 +1937,35 @@ FT_BEGIN_HEADER } FT_Open_Args; - /************************************************************************** - * - * @function: - * FT_New_Face - * - * @description: - * Call @FT_Open_Face to open a font by its pathname. - * - * @inout: - * library :: - * A handle to the library resource. - * - * @input: - * pathname :: - * A path to the font file. - * - * face_index :: - * See @FT_Open_Face for a detailed description of this parameter. - * - * @output: - * aface :: - * A handle to a new face object. If `face_index` is greater than or - * equal to zero, it must be non-`NULL`. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * Use @FT_Done_Face to destroy the created @FT_Face object (along with - * its slot and sizes). - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_New_Face */ + /* */ + /* <Description> */ + /* This function calls @FT_Open_Face to open a font by its pathname. */ + /* */ + /* <InOut> */ + /* library :: A handle to the library resource. */ + /* */ + /* <Input> */ + /* pathname :: A path to the font file. */ + /* */ + /* face_index :: The index of the face within the font. The first */ + /* face has index~0. */ + /* */ + /* <Output> */ + /* aface :: A handle to a new face object. If `face_index' is */ + /* greater than or equal to zero, it must be non-NULL. */ + /* See @FT_Open_Face for more details. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* Use @FT_Done_Face to destroy the created @FT_Face object (along */ + /* with its slot and sizes). */ + /* */ FT_EXPORT( FT_Error ) FT_New_Face( FT_Library library, const char* filepathname, @@ -2168,39 +1973,37 @@ FT_BEGIN_HEADER FT_Face *aface ); - /************************************************************************** - * - * @function: - * FT_New_Memory_Face - * - * @description: - * Call @FT_Open_Face to open a font that has been loaded into memory. - * - * @inout: - * library :: - * A handle to the library resource. - * - * @input: - * file_base :: - * A pointer to the beginning of the font data. - * - * file_size :: - * The size of the memory chunk used by the font data. - * - * face_index :: - * See @FT_Open_Face for a detailed description of this parameter. - * - * @output: - * aface :: - * A handle to a new face object. If `face_index` is greater than or - * equal to zero, it must be non-`NULL`. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You must not deallocate the memory before calling @FT_Done_Face. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_New_Memory_Face */ + /* */ + /* <Description> */ + /* This function calls @FT_Open_Face to open a font that has been */ + /* loaded into memory. */ + /* */ + /* <InOut> */ + /* library :: A handle to the library resource. */ + /* */ + /* <Input> */ + /* file_base :: A pointer to the beginning of the font data. */ + /* */ + /* file_size :: The size of the memory chunk used by the font data. */ + /* */ + /* face_index :: The index of the face within the font. The first */ + /* face has index~0. */ + /* */ + /* <Output> */ + /* aface :: A handle to a new face object. If `face_index' is */ + /* greater than or equal to zero, it must be non-NULL. */ + /* See @FT_Open_Face for more details. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* You must not deallocate the memory before calling @FT_Done_Face. */ + /* */ FT_EXPORT( FT_Error ) FT_New_Memory_Face( FT_Library library, const FT_Byte* file_base, @@ -2209,143 +2012,58 @@ FT_BEGIN_HEADER FT_Face *aface ); - /************************************************************************** - * - * @function: - * FT_Open_Face - * - * @description: - * Create a face object from a given resource described by @FT_Open_Args. - * - * @inout: - * library :: - * A handle to the library resource. - * - * @input: - * args :: - * A pointer to an `FT_Open_Args` structure that must be filled by the - * caller. - * - * face_index :: - * This field holds two different values. Bits 0-15 are the index of - * the face in the font file (starting with value~0). Set it to~0 if - * there is only one face in the font file. - * - * [Since 2.6.1] Bits 16-30 are relevant to GX and OpenType variation - * fonts only, specifying the named instance index for the current face - * index (starting with value~1; value~0 makes FreeType ignore named - * instances). For non-variation fonts, bits 16-30 are ignored. - * Assuming that you want to access the third named instance in face~4, - * `face_index` should be set to 0x00030004. If you want to access - * face~4 without variation handling, simply set `face_index` to - * value~4. - * - * `FT_Open_Face` and its siblings can be used to quickly check whether - * the font format of a given font resource is supported by FreeType. - * In general, if the `face_index` argument is negative, the function's - * return value is~0 if the font format is recognized, or non-zero - * otherwise. The function allocates a more or less empty face handle - * in `*aface` (if `aface` isn't `NULL`); the only two useful fields in - * this special case are `face->num_faces` and `face->style_flags`. - * For any negative value of `face_index`, `face->num_faces` gives the - * number of faces within the font file. For the negative value - * '-(N+1)' (with 'N' a non-negative 16-bit value), bits 16-30 in - * `face->style_flags` give the number of named instances in face 'N' - * if we have a variation font (or zero otherwise). After examination, - * the returned @FT_Face structure should be deallocated with a call to - * @FT_Done_Face. - * - * @output: - * aface :: - * A handle to a new face object. If `face_index` is greater than or - * equal to zero, it must be non-`NULL`. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * Unlike FreeType 1.x, this function automatically creates a glyph slot - * for the face object that can be accessed directly through - * `face->glyph`. - * - * Each new face object created with this function also owns a default - * @FT_Size object, accessible as `face->size`. - * - * One @FT_Library instance can have multiple face objects, this is, - * @FT_Open_Face and its siblings can be called multiple times using the - * same `library` argument. - * - * See the discussion of reference counters in the description of - * @FT_Reference_Face. - * - * @example: - * To loop over all faces, use code similar to the following snippet - * (omitting the error handling). - * - * ``` - * ... - * FT_Face face; - * FT_Long i, num_faces; - * - * - * error = FT_Open_Face( library, args, -1, &face ); - * if ( error ) { ... } - * - * num_faces = face->num_faces; - * FT_Done_Face( face ); - * - * for ( i = 0; i < num_faces; i++ ) - * { - * ... - * error = FT_Open_Face( library, args, i, &face ); - * ... - * FT_Done_Face( face ); - * ... - * } - * ``` - * - * To loop over all valid values for `face_index`, use something similar - * to the following snippet, again without error handling. The code - * accesses all faces immediately (thus only a single call of - * `FT_Open_Face` within the do-loop), with and without named instances. - * - * ``` - * ... - * FT_Face face; - * - * FT_Long num_faces = 0; - * FT_Long num_instances = 0; - * - * FT_Long face_idx = 0; - * FT_Long instance_idx = 0; - * - * - * do - * { - * FT_Long id = ( instance_idx << 16 ) + face_idx; - * - * - * error = FT_Open_Face( library, args, id, &face ); - * if ( error ) { ... } - * - * num_faces = face->num_faces; - * num_instances = face->style_flags >> 16; - * - * ... - * - * FT_Done_Face( face ); - * - * if ( instance_idx < num_instances ) - * instance_idx++; - * else - * { - * face_idx++; - * instance_idx = 0; - * } - * - * } while ( face_idx < num_faces ) - * ``` - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Open_Face */ + /* */ + /* <Description> */ + /* Create a face object from a given resource described by */ + /* @FT_Open_Args. */ + /* */ + /* <InOut> */ + /* library :: A handle to the library resource. */ + /* */ + /* <Input> */ + /* args :: A pointer to an `FT_Open_Args' structure that must */ + /* be filled by the caller. */ + /* */ + /* face_index :: The index of the face within the font. The first */ + /* face has index~0. */ + /* */ + /* <Output> */ + /* aface :: A handle to a new face object. If `face_index' is */ + /* greater than or equal to zero, it must be non-NULL. */ + /* See note below. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* Unlike FreeType 1.x, this function automatically creates a glyph */ + /* slot for the face object that can be accessed directly through */ + /* `face->glyph'. */ + /* */ + /* FT_Open_Face can be used to quickly check whether the font */ + /* format of a given font resource is supported by FreeType. If the */ + /* `face_index' field is negative, the function's return value is~0 */ + /* if the font format is recognized, or non-zero otherwise; */ + /* the function returns a more or less empty face handle in `*aface' */ + /* (if `aface' isn't NULL). The only useful field in this special */ + /* case is `face->num_faces' that gives the number of faces within */ + /* the font file. After examination, the returned @FT_Face structure */ + /* should be deallocated with a call to @FT_Done_Face. */ + /* */ + /* Each new face object created with this function also owns a */ + /* default @FT_Size object, accessible as `face->size'. */ + /* */ + /* One @FT_Library instance can have multiple face objects, this is, */ + /* @FT_Open_Face and its siblings can be called multiple times using */ + /* the same `library' argument. */ + /* */ + /* See the discussion of reference counters in the description of */ + /* @FT_Reference_Face. */ + /* */ FT_EXPORT( FT_Error ) FT_Open_Face( FT_Library library, const FT_Open_Args* args, @@ -2353,208 +2071,178 @@ FT_BEGIN_HEADER FT_Face *aface ); - /************************************************************************** - * - * @function: - * FT_Attach_File - * - * @description: - * Call @FT_Attach_Stream to attach a file. - * - * @inout: - * face :: - * The target face object. - * - * @input: - * filepathname :: - * The pathname. - * - * @return: - * FreeType error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Attach_File */ + /* */ + /* <Description> */ + /* This function calls @FT_Attach_Stream to attach a file. */ + /* */ + /* <InOut> */ + /* face :: The target face object. */ + /* */ + /* <Input> */ + /* filepathname :: The pathname. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_Attach_File( FT_Face face, const char* filepathname ); - /************************************************************************** - * - * @function: - * FT_Attach_Stream - * - * @description: - * 'Attach' data to a face object. Normally, this is used to read - * additional information for the face object. For example, you can - * attach an AFM file that comes with a Type~1 font to get the kerning - * values and other metrics. - * - * @inout: - * face :: - * The target face object. - * - * @input: - * parameters :: - * A pointer to @FT_Open_Args that must be filled by the caller. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The meaning of the 'attach' (i.e., what really happens when the new - * file is read) is not fixed by FreeType itself. It really depends on - * the font format (and thus the font driver). - * - * Client applications are expected to know what they are doing when - * invoking this function. Most drivers simply do not implement file or - * stream attachments. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Attach_Stream */ + /* */ + /* <Description> */ + /* `Attach' data to a face object. Normally, this is used to read */ + /* additional information for the face object. For example, you can */ + /* attach an AFM file that comes with a Type~1 font to get the */ + /* kerning values and other metrics. */ + /* */ + /* <InOut> */ + /* face :: The target face object. */ + /* */ + /* <Input> */ + /* parameters :: A pointer to @FT_Open_Args that must be filled by */ + /* the caller. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* The meaning of the `attach' (i.e., what really happens when the */ + /* new file is read) is not fixed by FreeType itself. It really */ + /* depends on the font format (and thus the font driver). */ + /* */ + /* Client applications are expected to know what they are doing */ + /* when invoking this function. Most drivers simply do not implement */ + /* file attachments. */ + /* */ FT_EXPORT( FT_Error ) FT_Attach_Stream( FT_Face face, FT_Open_Args* parameters ); - /************************************************************************** - * - * @function: - * FT_Reference_Face - * - * @description: - * A counter gets initialized to~1 at the time an @FT_Face structure is - * created. This function increments the counter. @FT_Done_Face then - * only destroys a face if the counter is~1, otherwise it simply - * decrements the counter. - * - * This function helps in managing life-cycles of structures that - * reference @FT_Face objects. - * - * @input: - * face :: - * A handle to a target face object. - * - * @return: - * FreeType error code. 0~means success. - * - * @since: - * 2.4.2 - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Reference_Face */ + /* */ + /* <Description> */ + /* A counter gets initialized to~1 at the time an @FT_Face structure */ + /* is created. This function increments the counter. @FT_Done_Face */ + /* then only destroys a face if the counter is~1, otherwise it simply */ + /* decrements the counter. */ + /* */ + /* This function helps in managing life-cycles of structures that */ + /* reference @FT_Face objects. */ + /* */ + /* <Input> */ + /* face :: A handle to a target face object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Since> */ + /* 2.4.2 */ + /* */ FT_EXPORT( FT_Error ) FT_Reference_Face( FT_Face face ); - /************************************************************************** - * - * @function: - * FT_Done_Face - * - * @description: - * Discard a given face object, as well as all of its child slots and - * sizes. - * - * @input: - * face :: - * A handle to a target face object. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * See the discussion of reference counters in the description of - * @FT_Reference_Face. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Done_Face */ + /* */ + /* <Description> */ + /* Discard a given face object, as well as all of its child slots and */ + /* sizes. */ + /* */ + /* <Input> */ + /* face :: A handle to a target face object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* See the discussion of reference counters in the description of */ + /* @FT_Reference_Face. */ + /* */ FT_EXPORT( FT_Error ) FT_Done_Face( FT_Face face ); - /************************************************************************** - * - * @function: - * FT_Select_Size - * - * @description: - * Select a bitmap strike. To be more precise, this function sets the - * scaling factors of the active @FT_Size object in a face so that - * bitmaps from this particular strike are taken by @FT_Load_Glyph and - * friends. - * - * @inout: - * face :: - * A handle to a target face object. - * - * @input: - * strike_index :: - * The index of the bitmap strike in the `available_sizes` field of - * @FT_FaceRec structure. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * For bitmaps embedded in outline fonts it is common that only a subset - * of the available glyphs at a given ppem value is available. FreeType - * silently uses outlines if there is no bitmap for a given glyph index. - * - * For GX and OpenType variation fonts, a bitmap strike makes sense only - * if the default instance is active (this is, no glyph variation takes - * place); otherwise, FreeType simply ignores bitmap strikes. The same - * is true for all named instances that are different from the default - * instance. - * - * Don't use this function if you are using the FreeType cache API. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Select_Size */ + /* */ + /* <Description> */ + /* Select a bitmap strike. */ + /* */ + /* <InOut> */ + /* face :: A handle to a target face object. */ + /* */ + /* <Input> */ + /* strike_index :: The index of the bitmap strike in the */ + /* `available_sizes' field of @FT_FaceRec structure. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_Select_Size( FT_Face face, FT_Int strike_index ); - /************************************************************************** - * - * @enum: - * FT_Size_Request_Type - * - * @description: - * An enumeration type that lists the supported size request types, i.e., - * what input size (in font units) maps to the requested output size (in - * pixels, as computed from the arguments of @FT_Size_Request). - * - * @values: - * FT_SIZE_REQUEST_TYPE_NOMINAL :: - * The nominal size. The `units_per_EM` field of @FT_FaceRec is used - * to determine both scaling values. - * - * This is the standard scaling found in most applications. In - * particular, use this size request type for TrueType fonts if they - * provide optical scaling or something similar. Note, however, that - * `units_per_EM` is a rather abstract value which bears no relation to - * the actual size of the glyphs in a font. - * - * FT_SIZE_REQUEST_TYPE_REAL_DIM :: - * The real dimension. The sum of the `ascender` and (minus of) the - * `descender` fields of @FT_FaceRec is used to determine both scaling - * values. - * - * FT_SIZE_REQUEST_TYPE_BBOX :: - * The font bounding box. The width and height of the `bbox` field of - * @FT_FaceRec are used to determine the horizontal and vertical - * scaling value, respectively. - * - * FT_SIZE_REQUEST_TYPE_CELL :: - * The `max_advance_width` field of @FT_FaceRec is used to determine - * the horizontal scaling value; the vertical scaling value is - * determined the same way as @FT_SIZE_REQUEST_TYPE_REAL_DIM does. - * Finally, both scaling values are set to the smaller one. This type - * is useful if you want to specify the font size for, say, a window of - * a given dimension and 80x24 cells. - * - * FT_SIZE_REQUEST_TYPE_SCALES :: - * Specify the scaling values directly. - * - * @note: - * The above descriptions only apply to scalable formats. For bitmap - * formats, the behaviour is up to the driver. - * - * See the note section of @FT_Size_Metrics if you wonder how size - * requesting relates to scaling values. - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* FT_Size_Request_Type */ + /* */ + /* <Description> */ + /* An enumeration type that lists the supported size request types. */ + /* */ + /* <Values> */ + /* FT_SIZE_REQUEST_TYPE_NOMINAL :: */ + /* The nominal size. The `units_per_EM' field of @FT_FaceRec is */ + /* used to determine both scaling values. */ + /* */ + /* FT_SIZE_REQUEST_TYPE_REAL_DIM :: */ + /* The real dimension. The sum of the the `ascender' and (minus */ + /* of) the `descender' fields of @FT_FaceRec are used to determine */ + /* both scaling values. */ + /* */ + /* FT_SIZE_REQUEST_TYPE_BBOX :: */ + /* The font bounding box. The width and height of the `bbox' field */ + /* of @FT_FaceRec are used to determine the horizontal and vertical */ + /* scaling value, respectively. */ + /* */ + /* FT_SIZE_REQUEST_TYPE_CELL :: */ + /* The `max_advance_width' field of @FT_FaceRec is used to */ + /* determine the horizontal scaling value; the vertical scaling */ + /* value is determined the same way as */ + /* @FT_SIZE_REQUEST_TYPE_REAL_DIM does. Finally, both scaling */ + /* values are set to the smaller one. This type is useful if you */ + /* want to specify the font size for, say, a window of a given */ + /* dimension and 80x24 cells. */ + /* */ + /* FT_SIZE_REQUEST_TYPE_SCALES :: */ + /* Specify the scaling values directly. */ + /* */ + /* <Note> */ + /* The above descriptions only apply to scalable formats. For bitmap */ + /* formats, the behaviour is up to the driver. */ + /* */ + /* See the note section of @FT_Size_Metrics if you wonder how size */ + /* requesting relates to scaling values. */ + /* */ typedef enum FT_Size_Request_Type_ { FT_SIZE_REQUEST_TYPE_NOMINAL, @@ -2568,45 +2256,33 @@ FT_BEGIN_HEADER } FT_Size_Request_Type; - /************************************************************************** - * - * @struct: - * FT_Size_RequestRec - * - * @description: - * A structure to model a size request. - * - * @fields: - * type :: - * See @FT_Size_Request_Type. - * - * width :: - * The desired width, given as a 26.6 fractional point value (with 72pt - * = 1in). - * - * height :: - * The desired height, given as a 26.6 fractional point value (with - * 72pt = 1in). - * - * horiResolution :: - * The horizontal resolution (dpi, i.e., pixels per inch). If set to - * zero, `width` is treated as a 26.6 fractional **pixel** value, which - * gets internally rounded to an integer. - * - * vertResolution :: - * The vertical resolution (dpi, i.e., pixels per inch). If set to - * zero, `height` is treated as a 26.6 fractional **pixel** value, - * which gets internally rounded to an integer. - * - * @note: - * If `width` is zero, the horizontal scaling value is set equal to the - * vertical scaling value, and vice versa. - * - * If `type` is `FT_SIZE_REQUEST_TYPE_SCALES`, `width` and `height` are - * interpreted directly as 16.16 fractional scaling values, without any - * further modification, and both `horiResolution` and `vertResolution` - * are ignored. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Size_RequestRec */ + /* */ + /* <Description> */ + /* A structure used to model a size request. */ + /* */ + /* <Fields> */ + /* type :: See @FT_Size_Request_Type. */ + /* */ + /* width :: The desired width. */ + /* */ + /* height :: The desired height. */ + /* */ + /* horiResolution :: The horizontal resolution. If set to zero, */ + /* `width' is treated as a 26.6 fractional pixel */ + /* value. */ + /* */ + /* vertResolution :: The vertical resolution. If set to zero, */ + /* `height' is treated as a 26.6 fractional pixel */ + /* value. */ + /* */ + /* <Note> */ + /* If `width' is zero, then the horizontal scaling value is set equal */ + /* to the vertical scaling value, and vice versa. */ + /* */ typedef struct FT_Size_RequestRec_ { FT_Size_Request_Type type; @@ -2618,102 +2294,89 @@ FT_BEGIN_HEADER } FT_Size_RequestRec; - /************************************************************************** - * - * @struct: - * FT_Size_Request - * - * @description: - * A handle to a size request structure. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Size_Request */ + /* */ + /* <Description> */ + /* A handle to a size request structure. */ + /* */ typedef struct FT_Size_RequestRec_ *FT_Size_Request; - /************************************************************************** - * - * @function: - * FT_Request_Size - * - * @description: - * Resize the scale of the active @FT_Size object in a face. - * - * @inout: - * face :: - * A handle to a target face object. - * - * @input: - * req :: - * A pointer to a @FT_Size_RequestRec. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * 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 @FT_Select_Size instead in that case. - * - * 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 lead - * to errors in most cases). - * - * Don't use this function if you are using the FreeType cache API. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Request_Size */ + /* */ + /* <Description> */ + /* Resize the scale of the active @FT_Size object in a face. */ + /* */ + /* <InOut> */ + /* face :: A handle to a target face object. */ + /* */ + /* <Input> */ + /* req :: A pointer to a @FT_Size_RequestRec. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* 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 @FT_Select_Size instead in that */ + /* case. */ + /* */ + /* 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 */ + /* `http://www.freetype.org/freetype2/docs/glyphs/glyphs-2.html' */ + /* */ + /* 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 ); - /************************************************************************** - * - * @function: - * FT_Set_Char_Size - * - * @description: - * Call @FT_Request_Size to request the nominal size (in points). - * - * @inout: - * face :: - * A handle to a target face object. - * - * @input: - * char_width :: - * The nominal width, in 26.6 fractional points. - * - * char_height :: - * The nominal height, in 26.6 fractional points. - * - * horz_resolution :: - * The horizontal resolution in dpi. - * - * vert_resolution :: - * The vertical resolution in dpi. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * While this function allows fractional points as input values, the - * resulting ppem value for the given resolution is always rounded to the - * nearest integer. - * - * If either the character width or height is zero, it is set equal to - * the other value. - * - * If either the horizontal or vertical resolution is zero, it is set - * equal to the other value. - * - * A character width or height smaller than 1pt is set to 1pt; if both - * resolution values are zero, they are set to 72dpi. - * - * Don't use this function if you are using the FreeType cache API. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Set_Char_Size */ + /* */ + /* <Description> */ + /* This function calls @FT_Request_Size to request the nominal size */ + /* (in points). */ + /* */ + /* <InOut> */ + /* face :: A handle to a target face object. */ + /* */ + /* <Input> */ + /* char_width :: The nominal width, in 26.6 fractional points. */ + /* */ + /* char_height :: The nominal height, in 26.6 fractional points. */ + /* */ + /* horz_resolution :: The horizontal resolution in dpi. */ + /* */ + /* vert_resolution :: The vertical resolution in dpi. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* If either the character width or height is zero, it is set equal */ + /* to the other value. */ + /* */ + /* If either the horizontal or vertical resolution is zero, it is set */ + /* equal to the other value. */ + /* */ + /* A character width or height smaller than 1pt is set to 1pt; if */ + /* both resolution values are zero, they are set to 72dpi. */ + /* */ + /* Don't use this function if you are using the FreeType cache API. */ + /* */ FT_EXPORT( FT_Error ) FT_Set_Char_Size( FT_Face face, FT_F26Dot6 char_width, @@ -2722,138 +2385,124 @@ FT_BEGIN_HEADER FT_UInt vert_resolution ); - /************************************************************************** - * - * @function: - * FT_Set_Pixel_Sizes - * - * @description: - * Call @FT_Request_Size to request the nominal size (in pixels). - * - * @inout: - * face :: - * A handle to the target face object. - * - * @input: - * pixel_width :: - * The nominal width, in pixels. - * - * pixel_height :: - * The nominal height, in pixels. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You should not rely on the resulting glyphs matching or being - * constrained to this pixel size. Refer to @FT_Request_Size to - * understand how requested sizes relate to actual sizes. - * - * Don't use this function if you are using the FreeType cache API. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Set_Pixel_Sizes */ + /* */ + /* <Description> */ + /* This function calls @FT_Request_Size to request the nominal size */ + /* (in pixels). */ + /* */ + /* <InOut> */ + /* face :: A handle to the target face object. */ + /* */ + /* <Input> */ + /* pixel_width :: The nominal width, in pixels. */ + /* */ + /* pixel_height :: The nominal height, in pixels. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* You should not rely on the resulting glyphs matching, or being */ + /* constrained, to this pixel size. Refer to @FT_Request_Size to */ + /* understand how requested sizes relate to actual sizes. */ + /* */ + /* Don't use this function if you are using the FreeType cache API. */ + /* */ FT_EXPORT( FT_Error ) FT_Set_Pixel_Sizes( FT_Face face, FT_UInt pixel_width, FT_UInt pixel_height ); - /************************************************************************** - * - * @function: - * FT_Load_Glyph - * - * @description: - * Load a glyph into the glyph slot of a face object. - * - * @inout: - * face :: - * A handle to the target face object where the glyph is loaded. - * - * @input: - * 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 - * constants 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: - * 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 - * at EM size, then scale it manually and fill it as a graphics - * operation. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Load_Glyph */ + /* */ + /* <Description> */ + /* A function used to load a single glyph into the glyph slot of a */ + /* face object. */ + /* */ + /* <InOut> */ + /* face :: A handle to the target face object where the glyph */ + /* is loaded. */ + /* */ + /* <Input> */ + /* 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 constants 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> */ + /* 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. */ + /* */ FT_EXPORT( FT_Error ) FT_Load_Glyph( FT_Face face, FT_UInt glyph_index, FT_Int32 load_flags ); - /************************************************************************** - * - * @function: - * FT_Load_Char - * - * @description: - * Load a glyph into the glyph slot of a face object, accessed by its - * character code. - * - * @inout: - * face :: - * A handle to a target face object where the glyph is loaded. - * - * @input: - * char_code :: - * The glyph's character code, according to the current charmap used in - * the face. - * - * load_flags :: - * A flag indicating what to load for this glyph. The @FT_LOAD_XXX - * constants 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: - * This function simply calls @FT_Get_Char_Index and @FT_Load_Glyph. - * - * Many fonts contain glyphs that can't be loaded by this function since - * its glyph indices are not listed in any of the font's charmaps. - * - * If no active cmap is set up (i.e., `face->charmap` is zero), the call - * to @FT_Get_Char_Index is omitted, and the function behaves identically - * to @FT_Load_Glyph. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Load_Char */ + /* */ + /* <Description> */ + /* A function used to load a single glyph into the glyph slot of a */ + /* face object, according to its character code. */ + /* */ + /* <InOut> */ + /* face :: A handle to a target face object where the glyph */ + /* is loaded. */ + /* */ + /* <Input> */ + /* char_code :: The glyph's character code, according to the */ + /* current charmap used in the face. */ + /* */ + /* load_flags :: A flag indicating what to load for this glyph. The */ + /* @FT_LOAD_XXX constants 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> */ + /* This function simply calls @FT_Get_Char_Index and @FT_Load_Glyph. */ + /* */ FT_EXPORT( FT_Error ) FT_Load_Char( FT_Face face, FT_ULong char_code, FT_Int32 load_flags ); - /************************************************************************** + /************************************************************************* * * @enum: * FT_LOAD_XXX * * @description: - * A list of bit field constants for @FT_Load_Glyph to indicate what kind - * of operations to perform during glyph loading. + * A list of bit-field constants used with @FT_Load_Glyph to indicate + * what kind of operations to perform during glyph loading. * * @values: * FT_LOAD_DEFAULT :: @@ -2861,16 +2510,17 @@ FT_BEGIN_HEADER * operation. In this case, the following happens: * * 1. FreeType looks for a bitmap for the glyph corresponding to the - * face's current size. If one is found, the function returns. The - * bitmap data can be accessed from the glyph slot (see note below). + * face's current size. If one is found, the function returns. + * The bitmap data can be accessed from the glyph slot (see note + * below). * - * 2. 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). + * 2. If no embedded bitmap is searched 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). * - * Note that by default the glyph loader doesn't render outlines into + * 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. * @@ -2880,14 +2530,14 @@ FT_BEGIN_HEADER * 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. - * This can be solved by loading the font without `FT_LOAD_NO_SCALE` - * and setting the character size to `font->units_per_EM`. + * 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. + * This can be solved by loading the font without FT_LOAD_NO_SCALE and + * setting the character size to `font->units_per_EM'. * * FT_LOAD_NO_HINTING :: - * Disable hinting. This generally generates 'blurrier' bitmap glyphs + * 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. * @@ -2908,42 +2558,40 @@ FT_BEGIN_HEADER * * 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. + * `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 - * synthesized, and those values are not always consistent across + * 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 synthesized, and those values are not always consistent across * various font formats. * * FT_LOAD_FORCE_AUTOHINT :: - * Prefer the auto-hinter over the font's native hinter. See also the - * note below. + * Indicates that the auto-hinter is preferred over the font's native + * hinter. See also the note below. * * FT_LOAD_PEDANTIC :: - * Make the font driver perform pedantic verifications during glyph - * loading and hinting. This is mostly used to detect broken glyphs in - * fonts. By default, FreeType tries to handle broken fonts also. + * Indicates that the font driver should perform pedantic verifications + * during glyph loading. This is mostly used to detect broken glyphs + * in fonts. By default, FreeType tries to handle broken fonts also. * * In particular, errors from the TrueType bytecode engine are not - * passed to the application if this flag is not set; this might result - * in partially hinted or distorted glyphs in case a glyph's bytecode - * is buggy. + * passed to the application if this flag is not set; this might + * result in partially hinted or distorted glyphs in case a glyph's + * bytecode is buggy. * * FT_LOAD_NO_RECURSE :: - * Don't load composite glyphs recursively. Instead, the font driver - * fills the `num_subglyph` and `subglyphs` values of the glyph slot; - * it also sets `glyph->format` to @FT_GLYPH_FORMAT_COMPOSITE. The - * description of subglyphs can then be accessed with - * @FT_Get_SubGlyph_Info. - * - * Don't use this flag for retrieving metrics information since some - * font drivers only return rudimentary data. + * Indicate that the font driver should not load composite glyphs + * recursively. Instead, it should set the `num_subglyph' and + * `subglyphs' values of the glyph slot accordingly, and set + * `glyph->format' to @FT_GLYPH_FORMAT_COMPOSITE. The description of + * subglyphs can then be accessed with @FT_Get_SubGlyph_Info. * * This flag implies @FT_LOAD_NO_SCALE and @FT_LOAD_IGNORE_TRANSFORM. * * FT_LOAD_IGNORE_TRANSFORM :: - * Ignore the transform matrix set by @FT_Set_Transform. + * Indicates that the transform matrix set by @FT_Set_Transform should + * be ignored. * * FT_LOAD_MONOCHROME :: * This flag is used with @FT_LOAD_RENDER to indicate that you want to @@ -2955,48 +2603,20 @@ FT_BEGIN_HEADER * monochrome-optimized hinting algorithm is used. * * FT_LOAD_LINEAR_DESIGN :: - * Keep `linearHoriAdvance` and `linearVertAdvance` fields of - * @FT_GlyphSlotRec in font units. See @FT_GlyphSlotRec for details. + * Indicates that the `linearHoriAdvance' and `linearVertAdvance' + * fields of @FT_GlyphSlotRec should be kept in font units. See + * @FT_GlyphSlotRec for details. * * FT_LOAD_NO_AUTOHINT :: - * Disable the auto-hinter. See also the note below. + * Disable auto-hinter. See also the note below. * * FT_LOAD_COLOR :: - * Load colored glyphs. There are slight differences depending on the - * font format. - * - * [Since 2.5] Load embedded color bitmap images. The resulting color - * bitmaps, if available, will 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.10, experimental] If the glyph index contains 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; 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 - * TrueType fonts). This flag is mainly used by font validating or - * font editing applications, which need to ignore, verify, or edit - * those tables. - * - * Currently, this flag is only implemented for TrueType fonts. - * - * FT_LOAD_BITMAP_METRICS_ONLY :: - * [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. - * - * This flag unsets @FT_LOAD_RENDER. + * This flag is used to request loading of color embedded-bitmap + * images. The resulting color bitmaps, if available, will have the + * @FT_PIXEL_MODE_BGRA format. When the flag is not used and color + * bitmaps are found, they will be converted to 256-level gray + * bitmaps transparently. Those bitmaps will be in the + * @FT_PIXEL_MODE_GRAY format. * * FT_LOAD_CROP_BITMAP :: * Ignored. Deprecated. @@ -3009,8 +2629,8 @@ FT_BEGIN_HEADER * @FT_FACE_FLAG_HINTER) is preferred over the auto-hinter. You can * disable hinting by setting @FT_LOAD_NO_HINTING or change the * precedence by setting @FT_LOAD_FORCE_AUTOHINT. You can also set - * @FT_LOAD_NO_AUTOHINT in case you don't want the auto-hinter to be used - * at all. + * @FT_LOAD_NO_AUTOHINT in case you don't want the auto-hinter to be + * used at all. * * See the description of @FT_FACE_FLAG_TRICKY for a special exception * (affecting only a handful of Asian fonts). @@ -3021,7 +2641,7 @@ FT_BEGIN_HEADER * Note that the auto-hinter needs a valid Unicode cmap (either a native * one or synthesized by FreeType) for producing correct results. If a * font provides an incorrect mapping (for example, assigning the - * character code U+005A, LATIN CAPITAL LETTER~Z, to a glyph depicting a + * character code U+005A, LATIN CAPITAL LETTER Z, to a glyph depicting a * mathematical integral sign), the auto-hinter might produce useless * results. * @@ -3041,14 +2661,12 @@ FT_BEGIN_HEADER #define FT_LOAD_MONOCHROME ( 1L << 12 ) #define FT_LOAD_LINEAR_DESIGN ( 1L << 13 ) #define FT_LOAD_NO_AUTOHINT ( 1L << 15 ) - /* Bits 16-19 are used by `FT_LOAD_TARGET_` */ + /* 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 */ + /* used internally only by certain font drivers! */ #define FT_LOAD_ADVANCE_ONLY ( 1L << 8 ) #define FT_LOAD_SBITS_ONLY ( 1L << 14 ) @@ -3059,52 +2677,37 @@ FT_BEGIN_HEADER * FT_LOAD_TARGET_XXX * * @description: - * A list of values to select a specific hinting algorithm for the - * hinter. You should OR one of these values to your `load_flags` when - * calling @FT_Load_Glyph. + * A list of values that are used to select a specific hinting algorithm + * to use by the hinter. You should OR one of these values to your + * `load_flags' when calling @FT_Load_Glyph. * - * Note that a font's native hinters may ignore the hinting algorithm you + * Note that font's native hinters may ignore the hinting algorithm you * have specified (e.g., the TrueType bytecode interpreter). You can set * @FT_LOAD_FORCE_AUTOHINT to ensure that the auto-hinter is used. * + * Also note that @FT_LOAD_TARGET_LIGHT is an exception, in that it + * always implies @FT_LOAD_FORCE_AUTOHINT. + * * @values: * FT_LOAD_TARGET_NORMAL :: - * The default hinting algorithm, optimized for standard gray-level - * rendering. For monochrome output, use @FT_LOAD_TARGET_MONO instead. + * This corresponds to the default hinting algorithm, optimized for + * standard gray-level rendering. For monochrome output, use + * @FT_LOAD_TARGET_MONO instead. * * FT_LOAD_TARGET_LIGHT :: - * A lighter hinting algorithm for gray-level modes. Many generated - * glyphs are fuzzier but better resemble their original shape. This - * is achieved by snapping glyphs to the pixel grid only vertically - * (Y-axis), as is done by FreeType's new CFF engine or Microsoft's - * ClearType font renderer. This preserves inter-glyph spacing in - * horizontal text. The snapping is done either by the native font - * driver, if the driver itself and the font support it, or by the - * auto-hinter. + * A lighter hinting algorithm for non-monochrome modes. Many + * generated glyphs are more fuzzy but better resemble its original + * shape. A bit like rendering on Mac OS~X. * - * Advance widths are rounded to integer values; however, using the - * `lsb_delta` and `rsb_delta` fields of @FT_GlyphSlotRec, it is - * possible to get fractional advance widths for subpixel positioning - * (which is recommended to use). - * - * If configuration option `AF_CONFIG_OPTION_TT_SIZE_METRICS` is - * active, TrueType-like metrics are used to make this mode behave - * similarly as in unpatched FreeType versions between 2.4.6 and 2.7.1 - * (inclusive). + * As a special exception, this target implies @FT_LOAD_FORCE_AUTOHINT. * * FT_LOAD_TARGET_MONO :: * Strong hinting algorithm that should only be used for monochrome * output. The result is probably unpleasant if the glyph is rendered * in non-monochrome modes. * - * Note that for outline fonts only the TrueType font driver has proper - * monochrome hinting support, provided the TTFs contain hints for B/W - * rendering (which most fonts no longer provide). If these conditions - * are not met it is very likely that you get ugly results at smaller - * sizes. - * * FT_LOAD_TARGET_LCD :: - * A variant of @FT_LOAD_TARGET_LIGHT optimized for horizontally + * A variant of @FT_LOAD_TARGET_NORMAL optimized for horizontally * decimated LCD displays. * * FT_LOAD_TARGET_LCD_V :: @@ -3112,32 +2715,25 @@ FT_BEGIN_HEADER * decimated LCD displays. * * @note: - * You should use only _one_ of the `FT_LOAD_TARGET_XXX` values in your - * `load_flags`. They can't be ORed. + * You should use only _one_ of the FT_LOAD_TARGET_XXX values in your + * `load_flags'. They can't be ORed. * * If @FT_LOAD_RENDER is also set, the glyph is rendered in the * corresponding mode (i.e., the mode that matches the used algorithm - * best). An exception is `FT_LOAD_TARGET_MONO` since it implies + * best). An exeption is FT_LOAD_TARGET_MONO since it implies * @FT_LOAD_MONOCHROME. * * You can use a hinting algorithm that doesn't correspond to the same - * rendering mode. As an example, it is possible to use the 'light' + * rendering mode. As an example, it is possible to use the `light' * hinting algorithm and have the results rendered in horizontal LCD * pixel mode, with code like * - * ``` - * FT_Load_Glyph( face, glyph_index, - * load_flags | FT_LOAD_TARGET_LIGHT ); + * { + * FT_Load_Glyph( face, glyph_index, + * load_flags | FT_LOAD_TARGET_LIGHT ); * - * FT_Render_Glyph( face->glyph, FT_RENDER_MODE_LCD ); - * ``` - * - * In general, you should stick with one rendering mode. For example, - * switching between @FT_LOAD_TARGET_NORMAL and @FT_LOAD_TARGET_MONO - * enforces a lot of recomputation for TrueType fonts, which is slow. - * Another reason is caching: Selecting a different mode usually causes - * changes in both the outlines and the rasterized bitmaps; it is thus - * necessary to empty the cache after a mode switch to avoid false hits. + * FT_Render_Glyph( face->glyph, FT_RENDER_MODE_LCD ); + * } * */ #define FT_LOAD_TARGET_( x ) ( (FT_Int32)( (x) & 15 ) << 16 ) @@ -3162,96 +2758,95 @@ FT_BEGIN_HEADER #define FT_LOAD_TARGET_MODE( x ) ( (FT_Render_Mode)( ( (x) >> 16 ) & 15 ) ) - /************************************************************************** - * - * @function: - * FT_Set_Transform - * - * @description: - * Set the transformation that is applied to glyph images when they are - * loaded into a glyph slot through @FT_Load_Glyph. - * - * @inout: - * face :: - * A handle to the source face object. - * - * @input: - * matrix :: - * A pointer to the transformation's 2x2 matrix. Use `NULL` for the - * identity matrix. - * delta :: - * A pointer to the translation vector. Use `NULL` for the null vector. - * - * @note: - * This function is provided as a convenience, but keep in mind that - * @FT_Matrix coefficients are only 16.16 fixed point values, which can - * limit the accuracy of the results. Using floating-point computations - * to perform the transform directly in client code instead will always - * yield better numbers. - * - * The transformation is only applied to scalable image formats after the - * glyph has been loaded. It means that hinting is unaltered by the - * transformation and is performed on the character size given in the - * last call to @FT_Set_Char_Size or @FT_Set_Pixel_Sizes. - * - * Note that this also transforms the `face.glyph.advance` field, but - * **not** the values in `face.glyph.metrics`. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Set_Transform */ + /* */ + /* <Description> */ + /* A function used to set the transformation that is applied to glyph */ + /* images when they are loaded into a glyph slot through */ + /* @FT_Load_Glyph. */ + /* */ + /* <InOut> */ + /* face :: A handle to the source face object. */ + /* */ + /* <Input> */ + /* matrix :: A pointer to the transformation's 2x2 matrix. Use~0 for */ + /* the identity matrix. */ + /* delta :: A pointer to the translation vector. Use~0 for the null */ + /* vector. */ + /* */ + /* <Note> */ + /* The transformation is only applied to scalable image formats after */ + /* the glyph has been loaded. It means that hinting is unaltered by */ + /* the transformation and is performed on the character size given in */ + /* the last call to @FT_Set_Char_Size or @FT_Set_Pixel_Sizes. */ + /* */ + /* Note that this also transforms the `face.glyph.advance' field, but */ + /* *not* the values in `face.glyph.metrics'. */ + /* */ FT_EXPORT( void ) FT_Set_Transform( FT_Face face, FT_Matrix* matrix, FT_Vector* delta ); - /************************************************************************** - * - * @enum: - * FT_Render_Mode - * - * @description: - * Render modes supported by FreeType~2. Each mode corresponds to a - * specific type of scanline conversion performed on the outline. - * - * For bitmap fonts and embedded bitmaps the `bitmap->pixel_mode` field - * in the @FT_GlyphSlotRec structure gives the format of the returned - * bitmap. - * - * All modes except @FT_RENDER_MODE_MONO use 256 levels of opacity, - * indicating pixel coverage. Use linear alpha blending and gamma - * correction to correctly render non-monochrome glyph bitmaps onto a - * surface; see @FT_Render_Glyph. - * - * @values: - * FT_RENDER_MODE_NORMAL :: - * Default render mode; it corresponds to 8-bit anti-aliased bitmaps. - * - * FT_RENDER_MODE_LIGHT :: - * This is equivalent to @FT_RENDER_MODE_NORMAL. It is only defined as - * a separate value because render modes are also used indirectly to - * define hinting algorithm selectors. See @FT_LOAD_TARGET_XXX for - * details. - * - * FT_RENDER_MODE_MONO :: - * This mode corresponds to 1-bit bitmaps (with 2~levels of opacity). - * - * FT_RENDER_MODE_LCD :: - * This mode corresponds to horizontal RGB and BGR subpixel displays - * like LCD screens. It produces 8-bit bitmaps that are 3~times the - * width of the original glyph outline in pixels, and which use the - * @FT_PIXEL_MODE_LCD mode. - * - * FT_RENDER_MODE_LCD_V :: - * This mode corresponds to vertical RGB and BGR subpixel displays - * (like PDA screens, rotated LCD displays, etc.). It produces 8-bit - * bitmaps that are 3~times the height of the original glyph outline in - * pixels and use the @FT_PIXEL_MODE_LCD_V mode. - * - * @note: - * The selected render mode only affects vector glyphs of a font. - * Embedded bitmaps often have a different pixel mode like - * @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform them - * into 8-bit pixmaps. - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* FT_Render_Mode */ + /* */ + /* <Description> */ + /* An enumeration type that lists the render modes supported by */ + /* FreeType~2. Each mode corresponds to a specific type of scanline */ + /* conversion performed on the outline. */ + /* */ + /* For bitmap fonts and embedded bitmaps the `bitmap->pixel_mode' */ + /* field in the @FT_GlyphSlotRec structure gives the format of the */ + /* returned bitmap. */ + /* */ + /* All modes except @FT_RENDER_MODE_MONO use 256 levels of opacity. */ + /* */ + /* <Values> */ + /* FT_RENDER_MODE_NORMAL :: */ + /* This is the default render mode; it corresponds to 8-bit */ + /* anti-aliased bitmaps. */ + /* */ + /* FT_RENDER_MODE_LIGHT :: */ + /* This is equivalent to @FT_RENDER_MODE_NORMAL. It is only */ + /* defined as a separate value because render modes are also used */ + /* indirectly to define hinting algorithm selectors. See */ + /* @FT_LOAD_TARGET_XXX for details. */ + /* */ + /* FT_RENDER_MODE_MONO :: */ + /* This mode corresponds to 1-bit bitmaps (with 2~levels of */ + /* opacity). */ + /* */ + /* FT_RENDER_MODE_LCD :: */ + /* This mode corresponds to horizontal RGB and BGR sub-pixel */ + /* displays like LCD screens. It produces 8-bit bitmaps that are */ + /* 3~times the width of the original glyph outline in pixels, and */ + /* which use the @FT_PIXEL_MODE_LCD mode. */ + /* */ + /* FT_RENDER_MODE_LCD_V :: */ + /* This mode corresponds to vertical RGB and BGR sub-pixel displays */ + /* (like PDA screens, rotated LCD displays, etc.). It produces */ + /* 8-bit bitmaps that are 3~times the height of the original */ + /* glyph outline in pixels and use the @FT_PIXEL_MODE_LCD_V mode. */ + /* */ + /* <Note> */ + /* The LCD-optimized glyph bitmaps produced by FT_Render_Glyph can be */ + /* filtered to reduce color-fringes by using @FT_Library_SetLcdFilter */ + /* (not active in the default builds). It is up to the caller to */ + /* either call @FT_Library_SetLcdFilter (if available) or do the */ + /* filtering itself. */ + /* */ + /* The selected render mode only affects vector glyphs of a font. */ + /* Embedded bitmaps often have a different pixel mode like */ + /* @FT_PIXEL_MODE_MONO. You can use @FT_Bitmap_Convert to transform */ + /* them into 8-bit pixmaps. */ + /* */ typedef enum FT_Render_Mode_ { FT_RENDER_MODE_NORMAL = 0, @@ -3266,152 +2861,64 @@ FT_BEGIN_HEADER /* these constants are deprecated; use the corresponding */ - /* `FT_Render_Mode` values instead */ + /* `FT_Render_Mode' values instead */ #define ft_render_mode_normal FT_RENDER_MODE_NORMAL #define ft_render_mode_mono FT_RENDER_MODE_MONO - /************************************************************************** - * - * @function: - * FT_Render_Glyph - * - * @description: - * Convert a given glyph image to a bitmap. It does so by inspecting the - * glyph image format, finding the relevant renderer, and invoking it. - * - * @inout: - * slot :: - * A handle to the glyph slot containing the image to convert. - * - * @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: - * To get meaningful results, font scaling values must be set with - * functions like @FT_Set_Char_Size before calling `FT_Render_Glyph`. - * - * 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). - * - * 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. - * - * 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. - * - * The blending function for placing text over a background is - * - * ``` - * dst = alpha * src + (1 - alpha) * dst , - * ``` - * - * which is known as the OVER operator. - * - * To correctly composite an antialiased pixel of a glyph onto a surface, - * - * 1. take the foreground and background colors (e.g., in sRGB space) - * and apply gamma to get them in a linear space, - * - * 2. use OVER to blend the two linear colors using the glyph pixel - * as the alpha value (remember, the glyph bitmap is an alpha coverage - * bitmap), and - * - * 3. apply inverse gamma to the blended pixel and write it back to - * the image. - * - * Internal testing at Adobe found that a target inverse gamma of~1.8 for - * step~3 gives good results across a wide range of displays with an sRGB - * gamma curve or a similar one. - * - * This process can cost performance. There is an approximation that - * does not need to know about the background color; see - * https://bel.fi/alankila/lcd/ and - * https://bel.fi/alankila/lcd/alpcor.html for details. - * - * **ATTENTION**: Linear blending is even more important when dealing - * with subpixel-rendered glyphs to prevent color-fringing! A - * subpixel-rendered glyph must first be filtered with a filter that - * gives equal weight to the three color primaries and does not exceed a - * sum of 0x100, see section @lcd_rendering. Then the only difference to - * gray linear blending is that subpixel-rendered linear blending is done - * 3~times per pixel: red foreground subpixel to red background subpixel - * and so on for green and blue. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Render_Glyph */ + /* */ + /* <Description> */ + /* Convert a given glyph image to a bitmap. It does so by inspecting */ + /* the glyph image format, finding the relevant renderer, and */ + /* invoking it. */ + /* */ + /* <InOut> */ + /* slot :: A handle to the glyph slot containing the image to */ + /* convert. */ + /* */ + /* <Input> */ + /* render_mode :: This is the render mode used to render the glyph */ + /* image into a bitmap. See @FT_Render_Mode for a */ + /* list of possible values. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* To get meaningful results, font scaling values must be set with */ + /* functions like @FT_Set_Char_Size before calling FT_Render_Glyph. */ + /* */ FT_EXPORT( FT_Error ) FT_Render_Glyph( FT_GlyphSlot slot, FT_Render_Mode render_mode ); - /************************************************************************** - * - * @enum: - * FT_Kerning_Mode - * - * @description: - * An enumeration to specify the format of kerning values returned by - * @FT_Get_Kerning. - * - * @values: - * FT_KERNING_DEFAULT :: - * Return grid-fitted kerning distances in 26.6 fractional pixels. - * - * FT_KERNING_UNFITTED :: - * Return un-grid-fitted kerning distances in 26.6 fractional pixels. - * - * FT_KERNING_UNSCALED :: - * Return the kerning vector in original font units. - * - * @note: - * `FT_KERNING_DEFAULT` returns full pixel values; it also makes FreeType - * heuristically scale down kerning distances at small ppem values so - * that they don't become too big. - * - * Both `FT_KERNING_DEFAULT` and `FT_KERNING_UNFITTED` use the current - * horizontal scaling factor (as set e.g. with @FT_Set_Char_Size) to - * convert font units to pixels. - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* FT_Kerning_Mode */ + /* */ + /* <Description> */ + /* An enumeration used to specify which kerning values to return in */ + /* @FT_Get_Kerning. */ + /* */ + /* <Values> */ + /* FT_KERNING_DEFAULT :: Return scaled and grid-fitted kerning */ + /* distances (value is~0). */ + /* */ + /* FT_KERNING_UNFITTED :: Return scaled but un-grid-fitted kerning */ + /* distances. */ + /* */ + /* FT_KERNING_UNSCALED :: Return the kerning vector in original font */ + /* units. */ + /* */ typedef enum FT_Kerning_Mode_ { - FT_KERNING_DEFAULT = 0, + FT_KERNING_DEFAULT = 0, FT_KERNING_UNFITTED, FT_KERNING_UNSCALED @@ -3419,53 +2926,45 @@ FT_BEGIN_HEADER /* these constants are deprecated; use the corresponding */ - /* `FT_Kerning_Mode` values instead */ + /* `FT_Kerning_Mode' values instead */ #define ft_kerning_default FT_KERNING_DEFAULT #define ft_kerning_unfitted FT_KERNING_UNFITTED #define ft_kerning_unscaled FT_KERNING_UNSCALED - /************************************************************************** - * - * @function: - * FT_Get_Kerning - * - * @description: - * Return the kerning vector between two glyphs of the same face. - * - * @input: - * face :: - * A handle to a source face object. - * - * left_glyph :: - * The index of the left glyph in the kern pair. - * - * right_glyph :: - * The index of the right glyph in the kern pair. - * - * kern_mode :: - * See @FT_Kerning_Mode for more information. Determines the scale and - * dimension of the returned kerning vector. - * - * @output: - * akerning :: - * The kerning vector. This is either in font units, fractional pixels - * (26.6 format), or pixels for scalable formats, and in pixels for - * fixed-sizes formats. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * Only horizontal layouts (left-to-right & right-to-left) are supported - * by this method. Other layouts, or more sophisticated kernings, are - * out of the scope of this API function -- they can be implemented - * through format-specific interfaces. - * - * Kerning for OpenType fonts implemented in a 'GPOS' table is not - * supported; use @FT_HAS_KERNING to find out whether a font has data - * that can be extracted with `FT_Get_Kerning`. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Kerning */ + /* */ + /* <Description> */ + /* Return the kerning vector between two glyphs of a same face. */ + /* */ + /* <Input> */ + /* face :: A handle to a source face object. */ + /* */ + /* left_glyph :: The index of the left glyph in the kern pair. */ + /* */ + /* right_glyph :: The index of the right glyph in the kern pair. */ + /* */ + /* kern_mode :: See @FT_Kerning_Mode for more information. */ + /* Determines the scale and dimension of the returned */ + /* kerning vector. */ + /* */ + /* <Output> */ + /* akerning :: The kerning vector. This is either in font units */ + /* or in pixels (26.6 format) for scalable formats, */ + /* and in pixels for fixed-sizes formats. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* Only horizontal layouts (left-to-right & right-to-left) are */ + /* supported by this method. Other layouts, or more sophisticated */ + /* kernings, are out of the scope of this API function -- they can be */ + /* implemented through format-specific interfaces. */ + /* */ FT_EXPORT( FT_Error ) FT_Get_Kerning( FT_Face face, FT_UInt left_glyph, @@ -3474,42 +2973,39 @@ FT_BEGIN_HEADER FT_Vector *akerning ); - /************************************************************************** - * - * @function: - * FT_Get_Track_Kerning - * - * @description: - * Return the track kerning for a given face object at a given size. - * - * @input: - * face :: - * A handle to a source face object. - * - * point_size :: - * The point size in 16.16 fractional points. - * - * degree :: - * The degree of tightness. Increasingly negative values represent - * tighter track kerning, while increasingly positive values represent - * looser track kerning. Value zero means no track kerning. - * - * @output: - * akerning :: - * The kerning in 16.16 fractional points, to be uniformly applied - * between all glyphs. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * Currently, only the Type~1 font driver supports track kerning, using - * data from AFM files (if attached with @FT_Attach_File or - * @FT_Attach_Stream). - * - * Only very few AFM files come with track kerning data; please refer to - * Adobe's AFM specification for more details. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Track_Kerning */ + /* */ + /* <Description> */ + /* Return the track kerning for a given face object at a given size. */ + /* */ + /* <Input> */ + /* face :: A handle to a source face object. */ + /* */ + /* point_size :: The point size in 16.16 fractional points. */ + /* */ + /* degree :: The degree of tightness. Increasingly negative */ + /* values represent tighter track kerning, while */ + /* increasingly positive values represent looser track */ + /* kerning. Value zero means no track kerning. */ + /* */ + /* <Output> */ + /* akerning :: The kerning in 16.16 fractional points, to be */ + /* uniformly applied between all glyphs. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* Currently, only the Type~1 font driver supports track kerning, */ + /* using data from AFM files (if attached with @FT_Attach_File or */ + /* @FT_Attach_Stream). */ + /* */ + /* Only very few AFM files come with track kerning data; please refer */ + /* to the Adobe's AFM specification for more details. */ + /* */ FT_EXPORT( FT_Error ) FT_Get_Track_Kerning( FT_Face face, FT_Fixed point_size, @@ -3517,46 +3013,45 @@ FT_BEGIN_HEADER FT_Fixed* akerning ); - /************************************************************************** - * - * @function: - * FT_Get_Glyph_Name - * - * @description: - * Retrieve the ASCII name of a given glyph in a face. This only works - * for those faces where @FT_HAS_GLYPH_NAMES(face) returns~1. - * - * @input: - * face :: - * A handle to a source face object. - * - * glyph_index :: - * The glyph index. - * - * buffer_max :: - * The maximum number of bytes available in the buffer. - * - * @output: - * buffer :: - * A pointer to a target buffer where the name is copied to. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * An error is returned if the face doesn't provide glyph names or if the - * glyph index is invalid. In all cases of failure, the first byte of - * `buffer` is set to~0 to indicate an empty name. - * - * The glyph name is truncated to fit within the buffer if it is too - * long. The returned string is always zero-terminated. - * - * Be aware that FreeType reorders glyph indices internally so that glyph - * index~0 always corresponds to the 'missing glyph' (called '.notdef'). - * - * This function always returns an error if the config macro - * `FT_CONFIG_OPTION_NO_GLYPH_NAMES` is not defined in `ftoption.h`. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Glyph_Name */ + /* */ + /* <Description> */ + /* Retrieve the ASCII name of a given glyph in a face. This only */ + /* works for those faces where @FT_HAS_GLYPH_NAMES(face) returns~1. */ + /* */ + /* <Input> */ + /* face :: A handle to a source face object. */ + /* */ + /* glyph_index :: The glyph index. */ + /* */ + /* buffer_max :: The maximum number of bytes available in the */ + /* buffer. */ + /* */ + /* <Output> */ + /* buffer :: A pointer to a target buffer where the name is */ + /* copied to. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* An error is returned if the face doesn't provide glyph names or if */ + /* the glyph index is invalid. In all cases of failure, the first */ + /* byte of `buffer' is set to~0 to indicate an empty name. */ + /* */ + /* The glyph name is truncated to fit within the buffer if it is too */ + /* long. The returned string is always zero-terminated. */ + /* */ + /* Be aware that FreeType reorders glyph indices internally so that */ + /* glyph index~0 always corresponds to the `missing glyph' (called */ + /* `.notdef'). */ + /* */ + /* This function always returns an error if the config macro */ + /* `FT_CONFIG_OPTION_NO_GLYPH_NAMES' is not defined in `ftoptions.h'. */ + /* */ FT_EXPORT( FT_Error ) FT_Get_Glyph_Name( FT_Face face, FT_UInt glyph_index, @@ -3564,109 +3059,92 @@ FT_BEGIN_HEADER FT_UInt buffer_max ); - /************************************************************************** - * - * @function: - * FT_Get_Postscript_Name - * - * @description: - * Retrieve the ASCII PostScript name of a given face, if available. - * This only works with PostScript, TrueType, and OpenType fonts. - * - * @input: - * face :: - * A handle to the source face object. - * - * @return: - * A pointer to the face's PostScript name. `NULL` if unavailable. - * - * @note: - * The returned pointer is owned by the face and is destroyed with it. - * - * For variation fonts, this string changes if you select a different - * instance, and you have to call `FT_Get_PostScript_Name` again to - * retrieve it. FreeType follows Adobe TechNote #5902, 'Generating - * PostScript Names for Fonts Using OpenType Font Variations'. - * - * https://download.macromedia.com/pub/developer/opentype/tech-notes/5902.AdobePSNameGeneration.html - * - * [Since 2.9] Special PostScript names for named instances are only - * returned if the named instance is set with @FT_Set_Named_Instance (and - * the font has corresponding entries in its 'fvar' table). If - * @FT_IS_VARIATION returns true, the algorithmically derived PostScript - * name is provided, not looking up special entries for named instances. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Postscript_Name */ + /* */ + /* <Description> */ + /* Retrieve the ASCII PostScript name of a given face, if available. */ + /* This only works with PostScript and TrueType fonts. */ + /* */ + /* <Input> */ + /* face :: A handle to the source face object. */ + /* */ + /* <Return> */ + /* A pointer to the face's PostScript name. NULL if unavailable. */ + /* */ + /* <Note> */ + /* The returned pointer is owned by the face and is destroyed with */ + /* it. */ + /* */ FT_EXPORT( const char* ) FT_Get_Postscript_Name( FT_Face face ); - /************************************************************************** - * - * @function: - * FT_Select_Charmap - * - * @description: - * Select a given charmap by its encoding tag (as listed in - * `freetype.h`). - * - * @inout: - * face :: - * A handle to the source face object. - * - * @input: - * encoding :: - * A handle to the selected encoding. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function returns an error if no charmap in the face corresponds - * to the encoding queried here. - * - * Because many fonts contain more than a single cmap for Unicode - * encoding, this function has some special code to select the one that - * covers Unicode best ('best' in the sense that a UCS-4 cmap is - * preferred to a UCS-2 cmap). It is thus preferable to @FT_Set_Charmap - * in this case. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Select_Charmap */ + /* */ + /* <Description> */ + /* Select a given charmap by its encoding tag (as listed in */ + /* `freetype.h'). */ + /* */ + /* <InOut> */ + /* face :: A handle to the source face object. */ + /* */ + /* <Input> */ + /* encoding :: A handle to the selected encoding. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* This function returns an error if no charmap in the face */ + /* corresponds to the encoding queried here. */ + /* */ + /* Because many fonts contain more than a single cmap for Unicode */ + /* encoding, this function has some special code to select the one */ + /* that covers Unicode best (`best' in the sense that a UCS-4 cmap is */ + /* preferred to a UCS-2 cmap). It is thus preferable to */ + /* @FT_Set_Charmap in this case. */ + /* */ FT_EXPORT( FT_Error ) FT_Select_Charmap( FT_Face face, FT_Encoding encoding ); - /************************************************************************** - * - * @function: - * FT_Set_Charmap - * - * @description: - * Select a given charmap for character code to glyph index mapping. - * - * @inout: - * face :: - * A handle to the source face object. - * - * @input: - * charmap :: - * A handle to the selected charmap. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function returns an error if the charmap is not part of the face - * (i.e., if it is not listed in the `face->charmaps` table). - * - * It also fails if an OpenType type~14 charmap is selected (which - * doesn't map character codes to glyph indices at all). - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Set_Charmap */ + /* */ + /* <Description> */ + /* Select a given charmap for character code to glyph index mapping. */ + /* */ + /* <InOut> */ + /* face :: A handle to the source face object. */ + /* */ + /* <Input> */ + /* charmap :: A handle to the selected charmap. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* This function returns an error if the charmap is not part of */ + /* the face (i.e., if it is not listed in the `face->charmaps' */ + /* table). */ + /* */ + /* It also fails if a type~14 charmap is selected. */ + /* */ FT_EXPORT( FT_Error ) FT_Set_Charmap( FT_Face face, FT_CharMap charmap ); - /************************************************************************** + /************************************************************************* * * @function: * FT_Get_Charmap_Index @@ -3680,274 +3158,161 @@ FT_BEGIN_HEADER * * @return: * The index into the array of character maps within the face to which - * `charmap` belongs. If an error occurs, -1 is returned. + * `charmap' belongs. If an error occurs, -1 is returned. * */ FT_EXPORT( FT_Int ) FT_Get_Charmap_Index( FT_CharMap charmap ); - /************************************************************************** - * - * @function: - * FT_Get_Char_Index - * - * @description: - * Return the glyph index of a given character code. This function uses - * the currently selected charmap to do the mapping. - * - * @input: - * face :: - * A handle to the source face object. - * - * charcode :: - * The character code. - * - * @return: - * The glyph index. 0~means 'undefined character code'. - * - * @note: - * If you use FreeType to manipulate the contents of font files directly, - * be aware that the glyph index returned by this function doesn't always - * correspond to the internal indices used within the file. This is done - * to ensure that value~0 always corresponds to the 'missing glyph'. If - * the first glyph is not named '.notdef', then for Type~1 and Type~42 - * fonts, '.notdef' will be moved into the glyph ID~0 position, and - * whatever was there will be moved to the position '.notdef' had. For - * Type~1 fonts, if there is no '.notdef' glyph at all, then one will be - * created at index~0 and whatever was there will be moved to the last - * index -- Type~42 fonts are considered invalid under this condition. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Char_Index */ + /* */ + /* <Description> */ + /* Return the glyph index of a given character code. This function */ + /* uses a charmap object to do the mapping. */ + /* */ + /* <Input> */ + /* face :: A handle to the source face object. */ + /* */ + /* charcode :: The character code. */ + /* */ + /* <Return> */ + /* The glyph index. 0~means `undefined character code'. */ + /* */ + /* <Note> */ + /* If you use FreeType to manipulate the contents of font files */ + /* directly, be aware that the glyph index returned by this function */ + /* doesn't always correspond to the internal indices used within the */ + /* file. This is done to ensure that value~0 always corresponds to */ + /* the `missing glyph'. If the first glyph is not named `.notdef', */ + /* then for Type~1 and Type~42 fonts, `.notdef' will be moved into */ + /* the glyph ID~0 position, and whatever was there will be moved to */ + /* the position `.notdef' had. For Type~1 fonts, if there is no */ + /* `.notdef' glyph at all, then one will be created at index~0 and */ + /* whatever was there will be moved to the last index -- Type~42 */ + /* fonts are considered invalid under this condition. */ + /* */ FT_EXPORT( FT_UInt ) FT_Get_Char_Index( FT_Face face, FT_ULong charcode ); - /************************************************************************** - * - * @function: - * FT_Get_First_Char - * - * @description: - * Return the first character code in the current charmap of a given - * face, together with its corresponding glyph index. - * - * @input: - * face :: - * A handle to the source face object. - * - * @output: - * agindex :: - * Glyph index of first character code. 0~if charmap is empty. - * - * @return: - * The charmap's first character code. - * - * @note: - * You should use this function together with @FT_Get_Next_Char to parse - * all character codes available in a given charmap. The code should - * look like this: - * - * ``` - * FT_ULong charcode; - * FT_UInt gindex; - * - * - * charcode = FT_Get_First_Char( face, &gindex ); - * while ( gindex != 0 ) - * { - * ... do something with (charcode,gindex) pair ... - * - * charcode = FT_Get_Next_Char( face, charcode, &gindex ); - * } - * ``` - * - * Be aware that character codes can have values up to 0xFFFFFFFF; this - * might happen for non-Unicode or malformed cmaps. However, even with - * regular Unicode encoding, so-called 'last resort fonts' (using SFNT - * cmap format 13, see function @FT_Get_CMap_Format) normally have - * entries for all Unicode characters up to 0x1FFFFF, which can cause *a - * lot* of iterations. - * - * Note that `*agindex` is set to~0 if the charmap is empty. The result - * itself can be~0 in two cases: if the charmap is empty or if the - * value~0 is the first valid character code. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_First_Char */ + /* */ + /* <Description> */ + /* This function is used to return the first character code in the */ + /* current charmap of a given face. It also returns the */ + /* corresponding glyph index. */ + /* */ + /* <Input> */ + /* face :: A handle to the source face object. */ + /* */ + /* <Output> */ + /* agindex :: Glyph index of first character code. 0~if charmap is */ + /* empty. */ + /* */ + /* <Return> */ + /* The charmap's first character code. */ + /* */ + /* <Note> */ + /* You should use this function with @FT_Get_Next_Char to be able to */ + /* parse all character codes available in a given charmap. The code */ + /* should look like this: */ + /* */ + /* { */ + /* FT_ULong charcode; */ + /* FT_UInt gindex; */ + /* */ + /* */ + /* charcode = FT_Get_First_Char( face, &gindex ); */ + /* while ( gindex != 0 ) */ + /* { */ + /* ... do something with (charcode,gindex) pair ... */ + /* */ + /* charcode = FT_Get_Next_Char( face, charcode, &gindex ); */ + /* } */ + /* } */ + /* */ + /* Note that `*agindex' is set to~0 if the charmap is empty. The */ + /* result itself can be~0 in two cases: if the charmap is empty or */ + /* if the value~0 is the first valid character code. */ + /* */ FT_EXPORT( FT_ULong ) FT_Get_First_Char( FT_Face face, FT_UInt *agindex ); - /************************************************************************** - * - * @function: - * FT_Get_Next_Char - * - * @description: - * Return the next character code in the current charmap of a given face - * following the value `char_code`, as well as the corresponding glyph - * index. - * - * @input: - * face :: - * A handle to the source face object. - * - * char_code :: - * The starting character code. - * - * @output: - * agindex :: - * Glyph index of next character code. 0~if charmap is empty. - * - * @return: - * The charmap's next character code. - * - * @note: - * You should use this function with @FT_Get_First_Char to walk over all - * character codes available in a given charmap. See the note for that - * function for a simple code example. - * - * Note that `*agindex` is set to~0 when there are no more codes in the - * charmap. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Next_Char */ + /* */ + /* <Description> */ + /* This function is used to return the next character code in the */ + /* current charmap of a given face following the value `char_code', */ + /* as well as the corresponding glyph index. */ + /* */ + /* <Input> */ + /* face :: A handle to the source face object. */ + /* char_code :: The starting character code. */ + /* */ + /* <Output> */ + /* agindex :: Glyph index of next character code. 0~if charmap */ + /* is empty. */ + /* */ + /* <Return> */ + /* The charmap's next character code. */ + /* */ + /* <Note> */ + /* You should use this function with @FT_Get_First_Char to walk */ + /* over all character codes available in a given charmap. See the */ + /* note for this function for a simple code example. */ + /* */ + /* Note that `*agindex' is set to~0 when there are no more codes in */ + /* the charmap. */ + /* */ FT_EXPORT( FT_ULong ) FT_Get_Next_Char( FT_Face face, FT_ULong char_code, FT_UInt *agindex ); - /************************************************************************** - * - * @function: - * FT_Face_Properties - * - * @description: - * Set or override certain (library or module-wide) properties on a - * face-by-face basis. Useful for finer-grained control and avoiding - * locks on shared structures (threads can modify their own faces as they - * see fit). - * - * Contrary to @FT_Property_Set, this function uses @FT_Parameter so that - * you can pass multiple properties to the target face in one call. Note - * that only a subset of the available properties can be controlled. - * - * * @FT_PARAM_TAG_STEM_DARKENING (stem darkening, corresponding to the - * property `no-stem-darkening` provided by the 'autofit', 'cff', - * 'type1', and 't1cid' modules; see @no-stem-darkening). - * - * * @FT_PARAM_TAG_LCD_FILTER_WEIGHTS (LCD filter weights, corresponding - * to function @FT_Library_SetLcdFilterWeights). - * - * * @FT_PARAM_TAG_RANDOM_SEED (seed value for the CFF, Type~1, and CID - * 'random' operator, corresponding to the `random-seed` property - * provided by the 'cff', 'type1', and 't1cid' modules; see - * @random-seed). - * - * Pass `NULL` as `data` in @FT_Parameter for a given tag to reset the - * option and use the library or module default again. - * - * @input: - * face :: - * A handle to the source face object. - * - * num_properties :: - * The number of properties that follow. - * - * properties :: - * A handle to an @FT_Parameter array with `num_properties` elements. - * - * @return: - * FreeType error code. 0~means success. - * - * @example: - * Here is an example that sets three properties. You must define - * `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` to make the LCD filter examples - * work. - * - * ``` - * FT_Parameter property1; - * FT_Bool darken_stems = 1; - * - * FT_Parameter property2; - * FT_LcdFiveTapFilter custom_weight = - * { 0x11, 0x44, 0x56, 0x44, 0x11 }; - * - * FT_Parameter property3; - * FT_Int32 random_seed = 314159265; - * - * FT_Parameter properties[3] = { property1, - * property2, - * property3 }; - * - * - * property1.tag = FT_PARAM_TAG_STEM_DARKENING; - * property1.data = &darken_stems; - * - * property2.tag = FT_PARAM_TAG_LCD_FILTER_WEIGHTS; - * property2.data = custom_weight; - * - * property3.tag = FT_PARAM_TAG_RANDOM_SEED; - * property3.data = &random_seed; - * - * FT_Face_Properties( face, 3, properties ); - * ``` - * - * The next example resets a single property to its default value. - * - * ``` - * FT_Parameter property; - * - * - * property.tag = FT_PARAM_TAG_LCD_FILTER_WEIGHTS; - * property.data = NULL; - * - * FT_Face_Properties( face, 1, &property ); - * ``` - * - * @since: - * 2.8 - * - */ - FT_EXPORT( FT_Error ) - FT_Face_Properties( FT_Face face, - FT_UInt num_properties, - FT_Parameter* properties ); - - - /************************************************************************** - * - * @function: - * FT_Get_Name_Index - * - * @description: - * Return the glyph index of a given glyph name. - * - * @input: - * face :: - * A handle to the source face object. - * - * glyph_name :: - * The glyph name. - * - * @return: - * The glyph index. 0~means 'undefined character code'. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Name_Index */ + /* */ + /* <Description> */ + /* Return the glyph index of a given glyph name. This function uses */ + /* driver specific objects to do the translation. */ + /* */ + /* <Input> */ + /* face :: A handle to the source face object. */ + /* */ + /* glyph_name :: The glyph name. */ + /* */ + /* <Return> */ + /* The glyph index. 0~means `undefined character code'. */ + /* */ FT_EXPORT( FT_UInt ) - FT_Get_Name_Index( FT_Face face, - const FT_String* glyph_name ); + FT_Get_Name_Index( FT_Face face, + FT_String* glyph_name ); - /************************************************************************** + /************************************************************************* * - * @enum: + * @macro: * FT_SUBGLYPH_FLAG_XXX * * @description: - * A list of constants describing subglyphs. Please refer to the 'glyf' - * table description in the OpenType specification for the meaning of the - * various flags (which get synthesized for non-OpenType subglyphs). - * - * https://docs.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description + * A list of constants used to describe subglyphs. Please refer to the + * TrueType specification for the meaning of the various flags. * * @values: * FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS :: @@ -3968,15 +3333,15 @@ FT_BEGIN_HEADER #define FT_SUBGLYPH_FLAG_USE_MY_METRICS 0x200 - /************************************************************************** + /************************************************************************* * - * @function: + * @func: * FT_Get_SubGlyph_Info * * @description: * Retrieve a description of a given subglyph. Only use it if - * `glyph->format` is @FT_GLYPH_FORMAT_COMPOSITE; an error is returned - * otherwise. + * `glyph->format' is @FT_GLYPH_FORMAT_COMPOSITE; an error is + * returned otherwise. * * @input: * glyph :: @@ -3984,7 +3349,7 @@ FT_BEGIN_HEADER * * sub_index :: * The index of the subglyph. Must be less than - * `glyph->num_subglyphs`. + * `glyph->num_subglyphs'. * * @output: * p_index :: @@ -4006,11 +3371,9 @@ FT_BEGIN_HEADER * FreeType error code. 0~means success. * * @note: - * The values of `*p_arg1`, `*p_arg2`, and `*p_transform` must be - * interpreted depending on the flags returned in `*p_flags`. See the - * OpenType specification for details. - * - * https://docs.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description + * The values of `*p_arg1', `*p_arg2', and `*p_transform' must be + * interpreted depending on the flags returned in `*p_flags'. See the + * TrueType specification for details. * */ FT_EXPORT( FT_Error ) @@ -4023,228 +3386,57 @@ FT_BEGIN_HEADER FT_Matrix *p_transform ); - /************************************************************************** - * - * @section: - * layer_management - * - * @title: - * Glyph Layer Management - * - * @abstract: - * Retrieving and manipulating OpenType's 'COLR' table data. - * - * @description: - * The functions described here allow access of colored glyph layer data - * in OpenType's 'COLR' tables. - */ - - - /************************************************************************** - * - * @struct: - * FT_LayerIterator - * - * @description: - * This iterator object is needed for @FT_Get_Color_Glyph_Layer. - * - * @fields: - * num_layers :: - * The number of glyph layers for the requested glyph index. Will be - * set by @FT_Get_Color_Glyph_Layer. - * - * layer :: - * The current layer. Will be set by @FT_Get_Color_Glyph_Layer. - * - * p :: - * An opaque pointer into 'COLR' table data. The caller must set this - * to `NULL` before the first call of @FT_Get_Color_Glyph_Layer. - */ - typedef struct FT_LayerIterator_ - { - FT_UInt num_layers; - FT_UInt layer; - FT_Byte* p; - - } FT_LayerIterator; - - - /************************************************************************** - * - * @function: - * FT_Get_Color_Glyph_Layer - * - * @description: - * This is an interface to the 'COLR' table in OpenType fonts to - * iteratively retrieve the colored glyph layers associated with the - * current glyph slot. - * - * https://docs.microsoft.com/en-us/typography/opentype/spec/colr - * - * The glyph layer data for a given glyph index, if present, provides an - * alternative, multi-color glyph representation: Instead of rendering - * the outline or bitmap with the given glyph index, glyphs with the - * indices and colors returned by this function are rendered layer by - * layer. - * - * The returned elements are ordered in the z~direction from bottom to - * top; the 'n'th element should be rendered with the associated palette - * color and blended on top of the already rendered layers (elements 0, - * 1, ..., n-1). - * - * @input: - * face :: - * A handle to the parent face object. - * - * base_glyph :: - * The glyph index the colored glyph layers are associated with. - * - * @inout: - * iterator :: - * An @FT_LayerIterator object. For the first call you should set - * `iterator->p` to `NULL`. For all following calls, simply use the - * same object again. - * - * @output: - * aglyph_index :: - * The glyph index of the current layer. - * - * acolor_index :: - * The color index into the font face's color palette of the current - * layer. The value 0xFFFF is special; it doesn't reference a palette - * entry but indicates that the text foreground color should be used - * instead (to be set up by the application outside of FreeType). - * - * The color palette can be retrieved with @FT_Palette_Select. - * - * @return: - * Value~1 if everything is OK. If there are no more layers (or if there - * are no layers at all), value~0 gets returned. In case of an error, - * value~0 is returned also. - * - * @note: - * This function is necessary if you want to handle glyph layers by - * yourself. In particular, functions that operate with @FT_GlyphRec - * objects (like @FT_Get_Glyph or @FT_Glyph_To_Bitmap) don't have access - * to this information. - * - * Note that @FT_Render_Glyph is able to handle colored glyph layers - * automatically if the @FT_LOAD_COLOR flag is passed to a previous call - * to @FT_Load_Glyph. [This is an experimental feature.] - * - * @example: - * ``` - * FT_Color* palette; - * FT_LayerIterator iterator; - * - * FT_Bool have_layers; - * FT_UInt layer_glyph_index; - * FT_UInt layer_color_index; - * - * - * error = FT_Palette_Select( face, palette_index, &palette ); - * if ( error ) - * palette = NULL; - * - * iterator.p = NULL; - * have_layers = FT_Get_Color_Glyph_Layer( face, - * glyph_index, - * &layer_glyph_index, - * &layer_color_index, - * &iterator ); - * - * if ( palette && have_layers ) - * { - * do - * { - * FT_Color layer_color; - * - * - * if ( layer_color_index == 0xFFFF ) - * layer_color = text_foreground_color; - * else - * layer_color = palette[layer_color_index]; - * - * // Load and render glyph `layer_glyph_index', then - * // blend resulting pixmap (using color `layer_color') - * // with previously created pixmaps. - * - * } while ( FT_Get_Color_Glyph_Layer( face, - * glyph_index, - * &layer_glyph_index, - * &layer_color_index, - * &iterator ) ); - * } - * ``` - */ - FT_EXPORT( FT_Bool ) - FT_Get_Color_Glyph_Layer( FT_Face face, - FT_UInt base_glyph, - FT_UInt *aglyph_index, - FT_UInt *acolor_index, - FT_LayerIterator* iterator ); - - - /************************************************************************** - * - * @section: - * base_interface - * - */ - - /************************************************************************** - * - * @enum: - * FT_FSTYPE_XXX - * - * @description: - * A list of bit flags used in the `fsType` field of the OS/2 table in a - * TrueType or OpenType font and the `FSType` entry in a PostScript font. - * These bit flags are returned by @FT_Get_FSType_Flags; they inform - * client applications of embedding and subsetting restrictions - * associated with a font. - * - * See - * https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/FontPolicies.pdf - * for more details. - * - * @values: - * FT_FSTYPE_INSTALLABLE_EMBEDDING :: - * Fonts with no fsType bit set may be embedded and permanently - * installed on the remote system by an application. - * - * FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING :: - * Fonts that have only this bit set must not be modified, embedded or - * exchanged in any manner without first obtaining permission of the - * font software copyright owner. - * - * FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING :: - * The font may be embedded and temporarily loaded on the remote - * system. Documents containing Preview & Print fonts must be opened - * 'read-only'; no edits can be applied to the document. - * - * FT_FSTYPE_EDITABLE_EMBEDDING :: - * The font may be embedded but must only be installed temporarily on - * other systems. In contrast to Preview & Print fonts, documents - * containing editable fonts may be opened for reading, editing is - * permitted, and changes may be saved. - * - * FT_FSTYPE_NO_SUBSETTING :: - * The font may not be subsetted prior to embedding. - * - * FT_FSTYPE_BITMAP_EMBEDDING_ONLY :: - * Only bitmaps contained in the font may be embedded; no outline data - * may be embedded. If there are no bitmaps available in the font, - * then the font is unembeddable. - * - * @note: - * The flags are ORed together, thus more than a single value can be - * returned. - * - * While the `fsType` flags can indicate that a font may be embedded, a - * license with the font vendor may be separately required to use the - * font in this way. - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* FT_FSTYPE_XXX */ + /* */ + /* <Description> */ + /* A list of bit flags used in the `fsType' field of the OS/2 table */ + /* in a TrueType or OpenType font and the `FSType' entry in a */ + /* PostScript font. These bit flags are returned by */ + /* @FT_Get_FSType_Flags; they inform client applications of embedding */ + /* and subsetting restrictions associated with a font. */ + /* */ + /* See http://www.adobe.com/devnet/acrobat/pdfs/FontPolicies.pdf for */ + /* more details. */ + /* */ + /* <Values> */ + /* FT_FSTYPE_INSTALLABLE_EMBEDDING :: */ + /* Fonts with no fsType bit set may be embedded and permanently */ + /* installed on the remote system by an application. */ + /* */ + /* FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING :: */ + /* Fonts that have only this bit set must not be modified, embedded */ + /* or exchanged in any manner without first obtaining permission of */ + /* the font software copyright owner. */ + /* */ + /* FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING :: */ + /* If this bit is set, the font may be embedded and temporarily */ + /* loaded on the remote system. Documents containing Preview & */ + /* Print fonts must be opened `read-only'; no edits can be applied */ + /* to the document. */ + /* */ + /* FT_FSTYPE_EDITABLE_EMBEDDING :: */ + /* If this bit is set, the font may be embedded but must only be */ + /* installed temporarily on other systems. In contrast to Preview */ + /* & Print fonts, documents containing editable fonts may be opened */ + /* for reading, editing is permitted, and changes may be saved. */ + /* */ + /* FT_FSTYPE_NO_SUBSETTING :: */ + /* If this bit is set, the font may not be subsetted prior to */ + /* embedding. */ + /* */ + /* FT_FSTYPE_BITMAP_EMBEDDING_ONLY :: */ + /* If this bit is set, only bitmaps contained in the font may be */ + /* embedded; no outline data may be embedded. If there are no */ + /* bitmaps available in the font, then the font is unembeddable. */ + /* */ + /* <Note> */ + /* While the fsType flags can indicate that a font may be embedded, a */ + /* license with the font vendor may be separately required to use the */ + /* font in this way. */ + /* */ #define FT_FSTYPE_INSTALLABLE_EMBEDDING 0x0000 #define FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING 0x0002 #define FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING 0x0004 @@ -4253,563 +3445,530 @@ FT_BEGIN_HEADER #define FT_FSTYPE_BITMAP_EMBEDDING_ONLY 0x0200 - /************************************************************************** - * - * @function: - * FT_Get_FSType_Flags - * - * @description: - * Return the `fsType` flags for a font. - * - * @input: - * face :: - * A handle to the source face object. - * - * @return: - * The `fsType` flags, see @FT_FSTYPE_XXX. - * - * @note: - * Use this function rather than directly reading the `fs_type` field in - * the @PS_FontInfoRec structure, which is only guaranteed to return the - * correct results for Type~1 fonts. - * - * @since: - * 2.3.8 - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_FSType_Flags */ + /* */ + /* <Description> */ + /* Return the fsType flags for a font. */ + /* */ + /* <Input> */ + /* face :: A handle to the source face object. */ + /* */ + /* <Return> */ + /* The fsType flags, @FT_FSTYPE_XXX. */ + /* */ + /* <Note> */ + /* Use this function rather than directly reading the `fs_type' field */ + /* in the @PS_FontInfoRec structure, which is only guaranteed to */ + /* return the correct results for Type~1 fonts. */ + /* */ + /* <Since> */ + /* 2.3.8 */ + /* */ FT_EXPORT( FT_UShort ) FT_Get_FSType_Flags( FT_Face face ); - /************************************************************************** - * - * @section: - * glyph_variants - * - * @title: - * Unicode Variation Sequences - * - * @abstract: - * The FreeType~2 interface to Unicode Variation Sequences (UVS), using - * the SFNT cmap format~14. - * - * @description: - * Many characters, especially for CJK scripts, have variant forms. They - * are a sort of grey area somewhere between being totally irrelevant and - * semantically distinct; for this reason, the Unicode consortium decided - * to introduce Variation Sequences (VS), consisting of a Unicode base - * character and a variation selector instead of further extending the - * already huge number of characters. - * - * Unicode maintains two different sets, namely 'Standardized Variation - * Sequences' and registered 'Ideographic Variation Sequences' (IVS), - * collected in the 'Ideographic Variation Database' (IVD). - * - * https://unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt - * https://unicode.org/reports/tr37/ https://unicode.org/ivd/ - * - * To date (January 2017), the character with the most ideographic - * variations is U+9089, having 32 such IVS. - * - * Three Mongolian Variation Selectors have the values U+180B-U+180D; 256 - * generic Variation Selectors are encoded in the ranges U+FE00-U+FE0F - * and U+E0100-U+E01EF. IVS currently use Variation Selectors from the - * range U+E0100-U+E01EF only. - * - * A VS consists of the base character value followed by a single - * Variation Selector. For example, to get the first variation of - * U+9089, you have to write the character sequence `U+9089 U+E0100`. - * - * Adobe and MS decided to support both standardized and ideographic VS - * with a new cmap subtable (format~14). It is an odd subtable because - * it is not a mapping of input code points to glyphs, but contains lists - * of all variations supported by the font. - * - * A variation may be either 'default' or 'non-default' for a given font. - * A default variation is the one you will get for that code point if you - * look it up in the standard Unicode cmap. A non-default variation is a - * different glyph. - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* glyph_variants */ + /* */ + /* <Title> */ + /* Glyph Variants */ + /* */ + /* <Abstract> */ + /* The FreeType~2 interface to Unicode Ideographic Variation */ + /* Sequences (IVS), using the SFNT cmap format~14. */ + /* */ + /* <Description> */ + /* Many CJK characters have variant forms. They are a sort of grey */ + /* area somewhere between being totally irrelevant and semantically */ + /* distinct; for this reason, the Unicode consortium decided to */ + /* introduce Ideographic Variation Sequences (IVS), consisting of a */ + /* Unicode base character and one of 240 variant selectors */ + /* (U+E0100-U+E01EF), instead of further extending the already huge */ + /* code range for CJK characters. */ + /* */ + /* An IVS is registered and unique; for further details please refer */ + /* to Unicode Technical Standard #37, the Ideographic Variation */ + /* Database: */ + /* */ + /* http://www.unicode.org/reports/tr37/ */ + /* */ + /* To date (November 2014), the character with the most variants is */ + /* U+9089, having 32 such IVS. */ + /* */ + /* Adobe and MS decided to support IVS with a new cmap subtable */ + /* (format~14). It is an odd subtable because it is not a mapping of */ + /* input code points to glyphs, but contains lists of all variants */ + /* supported by the font. */ + /* */ + /* A variant may be either `default' or `non-default'. A default */ + /* variant is the one you will get for that code point if you look it */ + /* up in the standard Unicode cmap. A non-default variant is a */ + /* different glyph. */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @function: - * FT_Face_GetCharVariantIndex - * - * @description: - * Return the glyph index of a given character code as modified by the - * variation selector. - * - * @input: - * face :: - * A handle to the source face object. - * - * charcode :: - * The character code point in Unicode. - * - * variantSelector :: - * The Unicode code point of the variation selector. - * - * @return: - * The glyph index. 0~means either 'undefined character code', or - * 'undefined selector code', or 'no variation selector cmap subtable', - * or 'current CharMap is not Unicode'. - * - * @note: - * If you use FreeType to manipulate the contents of font files directly, - * be aware that the glyph index returned by this function doesn't always - * correspond to the internal indices used within the file. This is done - * to ensure that value~0 always corresponds to the 'missing glyph'. - * - * This function is only meaningful if - * a) the font has a variation selector cmap sub table, and - * b) the current charmap has a Unicode encoding. - * - * @since: - * 2.3.6 - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Face_GetCharVariantIndex */ + /* */ + /* <Description> */ + /* Return the glyph index of a given character code as modified by */ + /* the variation selector. */ + /* */ + /* <Input> */ + /* face :: */ + /* A handle to the source face object. */ + /* */ + /* charcode :: */ + /* The character code point in Unicode. */ + /* */ + /* variantSelector :: */ + /* The Unicode code point of the variation selector. */ + /* */ + /* <Return> */ + /* The glyph index. 0~means either `undefined character code', or */ + /* `undefined selector code', or `no variation selector cmap */ + /* subtable', or `current CharMap is not Unicode'. */ + /* */ + /* <Note> */ + /* If you use FreeType to manipulate the contents of font files */ + /* directly, be aware that the glyph index returned by this function */ + /* doesn't always correspond to the internal indices used within */ + /* the file. This is done to ensure that value~0 always corresponds */ + /* to the `missing glyph'. */ + /* */ + /* This function is only meaningful if */ + /* a) the font has a variation selector cmap sub table, */ + /* and */ + /* b) the current charmap has a Unicode encoding. */ + /* */ + /* <Since> */ + /* 2.3.6 */ + /* */ FT_EXPORT( FT_UInt ) FT_Face_GetCharVariantIndex( FT_Face face, FT_ULong charcode, FT_ULong variantSelector ); - /************************************************************************** - * - * @function: - * FT_Face_GetCharVariantIsDefault - * - * @description: - * Check whether this variation of this Unicode character is the one to - * be found in the charmap. - * - * @input: - * face :: - * A handle to the source face object. - * - * charcode :: - * The character codepoint in Unicode. - * - * variantSelector :: - * The Unicode codepoint of the variation selector. - * - * @return: - * 1~if found in the standard (Unicode) cmap, 0~if found in the variation - * selector cmap, or -1 if it is not a variation. - * - * @note: - * This function is only meaningful if the font has a variation selector - * cmap subtable. - * - * @since: - * 2.3.6 - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Face_GetCharVariantIsDefault */ + /* */ + /* <Description> */ + /* Check whether this variant of this Unicode character is the one to */ + /* be found in the `cmap'. */ + /* */ + /* <Input> */ + /* face :: */ + /* A handle to the source face object. */ + /* */ + /* charcode :: */ + /* The character codepoint in Unicode. */ + /* */ + /* variantSelector :: */ + /* The Unicode codepoint of the variation selector. */ + /* */ + /* <Return> */ + /* 1~if found in the standard (Unicode) cmap, 0~if found in the */ + /* variation selector cmap, or -1 if it is not a variant. */ + /* */ + /* <Note> */ + /* This function is only meaningful if the font has a variation */ + /* selector cmap subtable. */ + /* */ + /* <Since> */ + /* 2.3.6 */ + /* */ FT_EXPORT( FT_Int ) FT_Face_GetCharVariantIsDefault( FT_Face face, FT_ULong charcode, FT_ULong variantSelector ); - /************************************************************************** - * - * @function: - * FT_Face_GetVariantSelectors - * - * @description: - * Return a zero-terminated list of Unicode variation selectors found in - * the font. - * - * @input: - * face :: - * A handle to the source face object. - * - * @return: - * A pointer to an array of selector code points, or `NULL` if there is - * no valid variation selector cmap subtable. - * - * @note: - * The last item in the array is~0; the array is owned by the @FT_Face - * object but can be overwritten or released on the next call to a - * FreeType function. - * - * @since: - * 2.3.6 - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Face_GetVariantSelectors */ + /* */ + /* <Description> */ + /* Return a zero-terminated list of Unicode variant selectors found */ + /* in the font. */ + /* */ + /* <Input> */ + /* face :: */ + /* A handle to the source face object. */ + /* */ + /* <Return> */ + /* A pointer to an array of selector code points, or NULL if there is */ + /* no valid variant selector cmap subtable. */ + /* */ + /* <Note> */ + /* The last item in the array is~0; the array is owned by the */ + /* @FT_Face object but can be overwritten or released on the next */ + /* call to a FreeType function. */ + /* */ + /* <Since> */ + /* 2.3.6 */ + /* */ FT_EXPORT( FT_UInt32* ) FT_Face_GetVariantSelectors( FT_Face face ); - /************************************************************************** - * - * @function: - * FT_Face_GetVariantsOfChar - * - * @description: - * Return a zero-terminated list of Unicode variation selectors found for - * the specified character code. - * - * @input: - * face :: - * A handle to the source face object. - * - * charcode :: - * The character codepoint in Unicode. - * - * @return: - * A pointer to an array of variation selector code points that are - * active for the given character, or `NULL` if the corresponding list is - * empty. - * - * @note: - * The last item in the array is~0; the array is owned by the @FT_Face - * object but can be overwritten or released on the next call to a - * FreeType function. - * - * @since: - * 2.3.6 - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Face_GetVariantsOfChar */ + /* */ + /* <Description> */ + /* Return a zero-terminated list of Unicode variant selectors found */ + /* for the specified character code. */ + /* */ + /* <Input> */ + /* face :: */ + /* A handle to the source face object. */ + /* */ + /* charcode :: */ + /* The character codepoint in Unicode. */ + /* */ + /* <Return> */ + /* A pointer to an array of variant selector code points that are */ + /* active for the given character, or NULL if the corresponding list */ + /* is empty. */ + /* */ + /* <Note> */ + /* The last item in the array is~0; the array is owned by the */ + /* @FT_Face object but can be overwritten or released on the next */ + /* call to a FreeType function. */ + /* */ + /* <Since> */ + /* 2.3.6 */ + /* */ FT_EXPORT( FT_UInt32* ) FT_Face_GetVariantsOfChar( FT_Face face, FT_ULong charcode ); - /************************************************************************** - * - * @function: - * FT_Face_GetCharsOfVariant - * - * @description: - * Return a zero-terminated list of Unicode character codes found for the - * specified variation selector. - * - * @input: - * face :: - * A handle to the source face object. - * - * variantSelector :: - * The variation selector code point in Unicode. - * - * @return: - * A list of all the code points that are specified by this selector - * (both default and non-default codes are returned) or `NULL` if there - * is no valid cmap or the variation selector is invalid. - * - * @note: - * The last item in the array is~0; the array is owned by the @FT_Face - * object but can be overwritten or released on the next call to a - * FreeType function. - * - * @since: - * 2.3.6 - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Face_GetCharsOfVariant */ + /* */ + /* <Description> */ + /* Return a zero-terminated list of Unicode character codes found for */ + /* the specified variant selector. */ + /* */ + /* <Input> */ + /* face :: */ + /* A handle to the source face object. */ + /* */ + /* variantSelector :: */ + /* The variant selector code point in Unicode. */ + /* */ + /* <Return> */ + /* A list of all the code points that are specified by this selector */ + /* (both default and non-default codes are returned) or NULL if there */ + /* is no valid cmap or the variant selector is invalid. */ + /* */ + /* <Note> */ + /* The last item in the array is~0; the array is owned by the */ + /* @FT_Face object but can be overwritten or released on the next */ + /* call to a FreeType function. */ + /* */ + /* <Since> */ + /* 2.3.6 */ + /* */ FT_EXPORT( FT_UInt32* ) FT_Face_GetCharsOfVariant( FT_Face face, FT_ULong variantSelector ); - /************************************************************************** - * - * @section: - * computations - * - * @title: - * Computations - * - * @abstract: - * Crunching fixed numbers and vectors. - * - * @description: - * This section contains various functions used to perform computations - * on 16.16 fixed-float numbers or 2d vectors. - * - * **Attention**: Most arithmetic functions take `FT_Long` as arguments. - * For historical reasons, FreeType was designed under the assumption - * that `FT_Long` is a 32-bit integer; results can thus be undefined if - * the arguments don't fit into 32 bits. - * - * @order: - * FT_MulDiv - * FT_MulFix - * FT_DivFix - * FT_RoundFix - * FT_CeilFix - * FT_FloorFix - * FT_Vector_Transform - * FT_Matrix_Multiply - * FT_Matrix_Invert - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* computations */ + /* */ + /* <Title> */ + /* Computations */ + /* */ + /* <Abstract> */ + /* Crunching fixed numbers and vectors. */ + /* */ + /* <Description> */ + /* This section contains various functions used to perform */ + /* computations on 16.16 fixed-float numbers or 2d vectors. */ + /* */ + /* <Order> */ + /* FT_MulDiv */ + /* FT_MulFix */ + /* FT_DivFix */ + /* FT_RoundFix */ + /* FT_CeilFix */ + /* FT_FloorFix */ + /* FT_Vector_Transform */ + /* FT_Matrix_Multiply */ + /* FT_Matrix_Invert */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @function: - * FT_MulDiv - * - * @description: - * Compute `(a*b)/c` with maximum accuracy, using a 64-bit intermediate - * integer whenever necessary. - * - * This function isn't necessarily as fast as some processor-specific - * operations, but is at least completely portable. - * - * @input: - * a :: - * The first multiplier. - * - * b :: - * The second multiplier. - * - * c :: - * The divisor. - * - * @return: - * The result of `(a*b)/c`. This function never traps when trying to - * divide by zero; it simply returns 'MaxInt' or 'MinInt' depending on - * the signs of `a` and `b`. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_MulDiv */ + /* */ + /* <Description> */ + /* A very simple function used to perform the computation `(a*b)/c' */ + /* with maximum accuracy (it uses a 64-bit intermediate integer */ + /* whenever necessary). */ + /* */ + /* This function isn't necessarily as fast as some processor specific */ + /* operations, but is at least completely portable. */ + /* */ + /* <Input> */ + /* a :: The first multiplier. */ + /* b :: The second multiplier. */ + /* c :: The divisor. */ + /* */ + /* <Return> */ + /* The result of `(a*b)/c'. This function never traps when trying to */ + /* divide by zero; it simply returns `MaxInt' or `MinInt' depending */ + /* on the signs of `a' and `b'. */ + /* */ FT_EXPORT( FT_Long ) FT_MulDiv( FT_Long a, FT_Long b, FT_Long c ); - /************************************************************************** - * - * @function: - * FT_MulFix - * - * @description: - * Compute `(a*b)/0x10000` with maximum accuracy. Its main use is to - * multiply a given value by a 16.16 fixed-point factor. - * - * @input: - * a :: - * The first multiplier. - * - * b :: - * The second multiplier. Use a 16.16 factor here whenever possible - * (see note below). - * - * @return: - * The result of `(a*b)/0x10000`. - * - * @note: - * This function has been optimized for the case where the absolute value - * of `a` is less than 2048, and `b` is a 16.16 scaling factor. As this - * happens mainly when scaling from notional units to fractional pixels - * in FreeType, it resulted in noticeable speed improvements between - * versions 2.x and 1.x. - * - * As a conclusion, always try to place a 16.16 factor as the _second_ - * argument of this function; this can make a great difference. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_MulFix */ + /* */ + /* <Description> */ + /* A very simple function used to perform the computation */ + /* `(a*b)/0x10000' with maximum accuracy. Most of the time this is */ + /* used to multiply a given value by a 16.16 fixed-point factor. */ + /* */ + /* <Input> */ + /* a :: The first multiplier. */ + /* b :: The second multiplier. Use a 16.16 factor here whenever */ + /* possible (see note below). */ + /* */ + /* <Return> */ + /* The result of `(a*b)/0x10000'. */ + /* */ + /* <Note> */ + /* This function has been optimized for the case where the absolute */ + /* value of `a' is less than 2048, and `b' is a 16.16 scaling factor. */ + /* As this happens mainly when scaling from notional units to */ + /* fractional pixels in FreeType, it resulted in noticeable speed */ + /* improvements between versions 2.x and 1.x. */ + /* */ + /* As a conclusion, always try to place a 16.16 factor as the */ + /* _second_ argument of this function; this can make a great */ + /* difference. */ + /* */ FT_EXPORT( FT_Long ) FT_MulFix( FT_Long a, FT_Long b ); - /************************************************************************** - * - * @function: - * FT_DivFix - * - * @description: - * Compute `(a*0x10000)/b` with maximum accuracy. Its main use is to - * divide a given value by a 16.16 fixed-point factor. - * - * @input: - * a :: - * The numerator. - * - * b :: - * The denominator. Use a 16.16 factor here. - * - * @return: - * The result of `(a*0x10000)/b`. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_DivFix */ + /* */ + /* <Description> */ + /* A very simple function used to perform the computation */ + /* `(a*0x10000)/b' with maximum accuracy. Most of the time, this is */ + /* used to divide a given value by a 16.16 fixed-point factor. */ + /* */ + /* <Input> */ + /* a :: The numerator. */ + /* b :: The denominator. Use a 16.16 factor here. */ + /* */ + /* <Return> */ + /* The result of `(a*0x10000)/b'. */ + /* */ FT_EXPORT( FT_Long ) FT_DivFix( FT_Long a, FT_Long b ); - /************************************************************************** - * - * @function: - * FT_RoundFix - * - * @description: - * Round a 16.16 fixed number. - * - * @input: - * a :: - * The number to be rounded. - * - * @return: - * `a` rounded to the nearest 16.16 fixed integer, halfway cases away - * from zero. - * - * @note: - * The function uses wrap-around arithmetic. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_RoundFix */ + /* */ + /* <Description> */ + /* A very simple function used to round a 16.16 fixed number. */ + /* */ + /* <Input> */ + /* a :: The number to be rounded. */ + /* */ + /* <Return> */ + /* The result of `(a + 0x8000) & -0x10000'. */ + /* */ FT_EXPORT( FT_Fixed ) FT_RoundFix( FT_Fixed a ); - /************************************************************************** - * - * @function: - * FT_CeilFix - * - * @description: - * Compute the smallest following integer of a 16.16 fixed number. - * - * @input: - * a :: - * The number for which the ceiling function is to be computed. - * - * @return: - * `a` rounded towards plus infinity. - * - * @note: - * The function uses wrap-around arithmetic. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_CeilFix */ + /* */ + /* <Description> */ + /* A very simple function used to compute the ceiling function of a */ + /* 16.16 fixed number. */ + /* */ + /* <Input> */ + /* a :: The number for which the ceiling function is to be computed. */ + /* */ + /* <Return> */ + /* The result of `(a + 0x10000 - 1) & -0x10000'. */ + /* */ FT_EXPORT( FT_Fixed ) FT_CeilFix( FT_Fixed a ); - /************************************************************************** - * - * @function: - * FT_FloorFix - * - * @description: - * Compute the largest previous integer of a 16.16 fixed number. - * - * @input: - * a :: - * The number for which the floor function is to be computed. - * - * @return: - * `a` rounded towards minus infinity. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_FloorFix */ + /* */ + /* <Description> */ + /* A very simple function used to compute the floor function of a */ + /* 16.16 fixed number. */ + /* */ + /* <Input> */ + /* a :: The number for which the floor function is to be computed. */ + /* */ + /* <Return> */ + /* The result of `a & -0x10000'. */ + /* */ FT_EXPORT( FT_Fixed ) FT_FloorFix( FT_Fixed a ); - /************************************************************************** - * - * @function: - * FT_Vector_Transform - * - * @description: - * Transform a single vector through a 2x2 matrix. - * - * @inout: - * vector :: - * The target vector to transform. - * - * @input: - * matrix :: - * A pointer to the source 2x2 matrix. - * - * @note: - * The result is undefined if either `vector` or `matrix` is invalid. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Vector_Transform */ + /* */ + /* <Description> */ + /* Transform a single vector through a 2x2 matrix. */ + /* */ + /* <InOut> */ + /* vector :: The target vector to transform. */ + /* */ + /* <Input> */ + /* matrix :: A pointer to the source 2x2 matrix. */ + /* */ + /* <Note> */ + /* The result is undefined if either `vector' or `matrix' is invalid. */ + /* */ FT_EXPORT( void ) - FT_Vector_Transform( FT_Vector* vector, + FT_Vector_Transform( FT_Vector* vec, const FT_Matrix* matrix ); - /************************************************************************** - * - * @section: - * version - * - * @title: - * FreeType Version - * - * @abstract: - * Functions and macros related to FreeType versions. - * - * @description: - * Note that those functions and macros are of limited use because even a - * new release of FreeType with only documentation changes increases the - * version number. - * - * @order: - * FT_Library_Version - * - * FREETYPE_MAJOR - * FREETYPE_MINOR - * FREETYPE_PATCH - * - * FT_Face_CheckTrueTypePatents - * FT_Face_SetUnpatentedHinting - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* version */ + /* */ + /* <Title> */ + /* FreeType Version */ + /* */ + /* <Abstract> */ + /* Functions and macros related to FreeType versions. */ + /* */ + /* <Description> */ + /* Note that those functions and macros are of limited use because */ + /* even a new release of FreeType with only documentation changes */ + /* increases the version number. */ + /* */ + /* <Order> */ + /* FT_Library_Version */ + /* */ + /* FREETYPE_MAJOR */ + /* FREETYPE_MINOR */ + /* FREETYPE_PATCH */ + /* */ + /* FT_Face_CheckTrueTypePatents */ + /* FT_Face_SetUnpatentedHinting */ + /* */ + /* FREETYPE_XXX */ + /* */ + /*************************************************************************/ - /************************************************************************** + /************************************************************************* * * @enum: * FREETYPE_XXX * * @description: - * These three macros identify the FreeType source code version. Use - * @FT_Library_Version to access them at runtime. + * These three macros identify the FreeType source code version. + * Use @FT_Library_Version to access them at runtime. * * @values: - * FREETYPE_MAJOR :: - * The major version number. - * FREETYPE_MINOR :: - * The minor version number. - * FREETYPE_PATCH :: - * The patch level. + * FREETYPE_MAJOR :: The major version number. + * FREETYPE_MINOR :: The minor version number. + * FREETYPE_PATCH :: The patch level. * * @note: - * The version number of FreeType if built as a dynamic link library with - * the 'libtool' package is _not_ controlled by these three macros. + * 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 10 -#define FREETYPE_PATCH 4 +#define FREETYPE_MINOR 5 +#define FREETYPE_PATCH 5 - /************************************************************************** - * - * @function: - * FT_Library_Version - * - * @description: - * Return the version of the FreeType library being used. This is useful - * when dynamically linking to the library, since one cannot use the - * macros @FREETYPE_MAJOR, @FREETYPE_MINOR, and @FREETYPE_PATCH. - * - * @input: - * library :: - * A source library handle. - * - * @output: - * amajor :: - * The major version number. - * - * aminor :: - * The minor version number. - * - * apatch :: - * The patch version number. - * - * @note: - * The reason why this function takes a `library` argument is because - * certain programs implement library initialization in a custom way that - * doesn't use @FT_Init_FreeType. - * - * In such cases, the library version might not be available before the - * library object has been created. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Library_Version */ + /* */ + /* <Description> */ + /* Return the version of the FreeType library being used. This is */ + /* useful when dynamically linking to the library, since one cannot */ + /* use the macros @FREETYPE_MAJOR, @FREETYPE_MINOR, and */ + /* @FREETYPE_PATCH. */ + /* */ + /* <Input> */ + /* library :: A source library handle. */ + /* */ + /* <Output> */ + /* amajor :: The major version number. */ + /* */ + /* aminor :: The minor version number. */ + /* */ + /* apatch :: The patch version number. */ + /* */ + /* <Note> */ + /* The reason why this function takes a `library' argument is because */ + /* certain programs implement library initialization in a custom way */ + /* that doesn't use @FT_Init_FreeType. */ + /* */ + /* In such cases, the library version might not be available before */ + /* the library object has been created. */ + /* */ FT_EXPORT( void ) FT_Library_Version( FT_Library library, FT_Int *amajor, @@ -4817,55 +3976,63 @@ FT_BEGIN_HEADER FT_Int *apatch ); - /************************************************************************** - * - * @function: - * FT_Face_CheckTrueTypePatents - * - * @description: - * Deprecated, does nothing. - * - * @input: - * face :: - * A face handle. - * - * @return: - * Always returns false. - * - * @note: - * Since May 2010, TrueType hinting is no longer patented. - * - * @since: - * 2.3.5 - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Face_CheckTrueTypePatents */ + /* */ + /* <Description> */ + /* Parse all bytecode instructions of a TrueType font file to check */ + /* whether any of the patented opcodes are used. This is only useful */ + /* if you want to be able to use the unpatented hinter with */ + /* fonts that do *not* use these opcodes. */ + /* */ + /* Note that this function parses *all* glyph instructions in the */ + /* font file, which may be slow. */ + /* */ + /* <Input> */ + /* face :: A face handle. */ + /* */ + /* <Return> */ + /* 1~if this is a TrueType font that uses one of the patented */ + /* opcodes, 0~otherwise. */ + /* */ + /* <Note> */ + /* Since May 2010, TrueType hinting is no longer patented. */ + /* */ + /* <Since> */ + /* 2.3.5 */ + /* */ FT_EXPORT( FT_Bool ) FT_Face_CheckTrueTypePatents( FT_Face face ); - /************************************************************************** - * - * @function: - * FT_Face_SetUnpatentedHinting - * - * @description: - * Deprecated, does nothing. - * - * @input: - * face :: - * A face handle. - * - * value :: - * New boolean setting. - * - * @return: - * Always returns false. - * - * @note: - * Since May 2010, TrueType hinting is no longer patented. - * - * @since: - * 2.3.5 - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Face_SetUnpatentedHinting */ + /* */ + /* <Description> */ + /* Enable or disable the unpatented hinter for a given face. */ + /* Only enable it if you have determined that the face doesn't */ + /* use any patented opcodes (see @FT_Face_CheckTrueTypePatents). */ + /* */ + /* <Input> */ + /* face :: A face handle. */ + /* */ + /* value :: New boolean setting. */ + /* */ + /* <Return> */ + /* The old setting value. This will always be false if this is not */ + /* an SFNT font, or if the unpatented hinter is not compiled in this */ + /* instance of the library. */ + /* */ + /* <Note> */ + /* Since May 2010, TrueType hinting is no longer patented. */ + /* */ + /* <Since> */ + /* 2.3.5 */ + /* */ FT_EXPORT( FT_Bool ) FT_Face_SetUnpatentedHinting( FT_Face face, FT_Bool value ); @@ -4875,7 +4042,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FREETYPE_H_ */ +#endif /* __FREETYPE_H__ */ /* END */ diff --git a/win64/include/freetype/ft2build.h b/win64/include/freetype/ft2build.h index b4fd1f8c..6f8eb7f3 100644 --- a/win64/include/freetype/ft2build.h +++ b/win64/include/freetype/ft2build.h @@ -1,42 +1,42 @@ -/**************************************************************************** - * - * ft2build.h - * - * FreeType 2 build and setup macros. - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ft2build.h */ +/* */ +/* FreeType 2 build and setup macros. */ +/* */ +/* Copyright 1996-2001, 2006, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * This is the 'entry point' for FreeType header file inclusions, to be - * loaded before all other header files. - * - * A typical example is - * - * ``` - * #include <ft2build.h> - * #include <freetype/freetype.h> - * ``` - * - */ + /*************************************************************************/ + /* */ + /* This is the `entry point' for FreeType header file inclusions. It is */ + /* the only header file which should be included directly; all other */ + /* FreeType header files should be accessed with macro names (after */ + /* including `ft2build.h'). */ + /* */ + /* A typical example is */ + /* */ + /* #include <ft2build.h> */ + /* #include FT_FREETYPE_H */ + /* */ + /*************************************************************************/ -#ifndef FT2BUILD_H_ -#define FT2BUILD_H_ +#ifndef __FT2BUILD_H__ +#define __FT2BUILD_H__ -#include <freetype/config/ftheader.h> +#include <config/ftheader.h> -#endif /* FT2BUILD_H_ */ +#endif /* __FT2BUILD_H__ */ /* END */ diff --git a/win64/include/freetype/ftadvanc.h b/win64/include/freetype/ftadvanc.h index f166bc6f..955f93fa 100644 --- a/win64/include/freetype/ftadvanc.h +++ b/win64/include/freetype/ftadvanc.h @@ -1,26 +1,27 @@ -/**************************************************************************** - * - * ftadvanc.h - * - * Quick computation of advance widths (specification only). - * - * Copyright (C) 2008-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftadvanc.h */ +/* */ +/* Quick computation of advance widths (specification only). */ +/* */ +/* Copyright 2008, 2013, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTADVANC_H_ -#define FTADVANC_H_ +#ifndef __FTADVANC_H__ +#define __FTADVANC_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -55,68 +56,68 @@ FT_BEGIN_HEADER */ - /************************************************************************** - * - * @enum: - * FT_ADVANCE_FLAG_FAST_ONLY - * - * @description: - * A bit-flag to be OR-ed with the `flags` parameter of the - * @FT_Get_Advance and @FT_Get_Advances functions. - * - * If set, it indicates that you want these functions to fail if the - * corresponding hinting mode or font driver doesn't allow for very quick - * advance computation. - * - * Typically, glyphs that are either unscaled, unhinted, bitmapped, or - * light-hinted can have their advance width computed very quickly. - * - * Normal and bytecode hinted modes that require loading, scaling, and - * hinting of the glyph outline, are extremely slow by comparison. - */ -#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000L + /*************************************************************************/ + /* */ + /* <Const> */ + /* FT_ADVANCE_FLAG_FAST_ONLY */ + /* */ + /* <Description> */ + /* A bit-flag to be OR-ed with the `flags' parameter of the */ + /* @FT_Get_Advance and @FT_Get_Advances functions. */ + /* */ + /* If set, it indicates that you want these functions to fail if the */ + /* corresponding hinting mode or font driver doesn't allow for very */ + /* quick advance computation. */ + /* */ + /* Typically, glyphs that are either unscaled, unhinted, bitmapped, */ + /* or light-hinted can have their advance width computed very */ + /* quickly. */ + /* */ + /* Normal and bytecode hinted modes that require loading, scaling, */ + /* and hinting of the glyph outline, are extremely slow by */ + /* comparison. */ + /* */ +#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000UL - /************************************************************************** - * - * @function: - * FT_Get_Advance - * - * @description: - * Retrieve the advance value of a given glyph outline in an @FT_Face. - * - * @input: - * face :: - * The source @FT_Face handle. - * - * gindex :: - * The glyph index. - * - * load_flags :: - * A set of bit flags similar to those used when calling - * @FT_Load_Glyph, used to determine what kind of advances you need. - * - * @output: - * padvance :: - * The advance value. If scaling is performed (based on the value of - * `load_flags`), the advance value is in 16.16 format. Otherwise, it - * is in font units. - * - * If @FT_LOAD_VERTICAL_LAYOUT is set, this is the vertical advance - * corresponding to a vertical layout. Otherwise, it is the horizontal - * advance in a horizontal layout. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and if - * the corresponding font backend doesn't have a quick way to retrieve - * the advances. - * - * A scaled advance is returned in 16.16 format but isn't transformed by - * the affine transformation specified by @FT_Set_Transform. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Advance */ + /* */ + /* <Description> */ + /* Retrieve the advance value of a given glyph outline in an */ + /* @FT_Face. */ + /* */ + /* <Input> */ + /* face :: The source @FT_Face handle. */ + /* */ + /* gindex :: The glyph index. */ + /* */ + /* load_flags :: A set of bit flags similar to those used when */ + /* calling @FT_Load_Glyph, used to determine what kind */ + /* of advances you need. */ + /* <Output> */ + /* padvance :: The advance value. If scaling is performed (based on */ + /* the value of `load_flags'), the advance value is in */ + /* 16.16 format. Otherwise, it is in font units. */ + /* */ + /* If @FT_LOAD_VERTICAL_LAYOUT is set, this is the */ + /* vertical advance corresponding to a vertical layout. */ + /* Otherwise, it is the horizontal advance in a */ + /* horizontal layout. */ + /* */ + /* <Return> */ + /* FreeType error code. 0 means success. */ + /* */ + /* <Note> */ + /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */ + /* if the corresponding font backend doesn't have a quick way to */ + /* retrieve the advances. */ + /* */ + /* A scaled advance is returned in 16.16 format but isn't transformed */ + /* by the affine transformation specified by @FT_Set_Transform. */ + /* */ FT_EXPORT( FT_Error ) FT_Get_Advance( FT_Face face, FT_UInt gindex, @@ -124,52 +125,50 @@ FT_BEGIN_HEADER FT_Fixed *padvance ); - /************************************************************************** - * - * @function: - * FT_Get_Advances - * - * @description: - * Retrieve the advance values of several glyph outlines in an @FT_Face. - * - * @input: - * face :: - * The source @FT_Face handle. - * - * start :: - * The first glyph index. - * - * count :: - * The number of advance values you want to retrieve. - * - * load_flags :: - * A set of bit flags similar to those used when calling - * @FT_Load_Glyph. - * - * @output: - * padvance :: - * The advance values. This array, to be provided by the caller, must - * contain at least `count` elements. - * - * If scaling is performed (based on the value of `load_flags`), the - * advance values are in 16.16 format. Otherwise, they are in font - * units. - * - * If @FT_LOAD_VERTICAL_LAYOUT is set, these are the vertical advances - * corresponding to a vertical layout. Otherwise, they are the - * horizontal advances in a horizontal layout. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and if - * the corresponding font backend doesn't have a quick way to retrieve - * the advances. - * - * Scaled advances are returned in 16.16 format but aren't transformed by - * the affine transformation specified by @FT_Set_Transform. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Advances */ + /* */ + /* <Description> */ + /* Retrieve the advance values of several glyph outlines in an */ + /* @FT_Face. */ + /* */ + /* <Input> */ + /* face :: The source @FT_Face handle. */ + /* */ + /* start :: The first glyph index. */ + /* */ + /* count :: The number of advance values you want to retrieve. */ + /* */ + /* load_flags :: A set of bit flags similar to those used when */ + /* calling @FT_Load_Glyph. */ + /* */ + /* <Output> */ + /* padvance :: The advance values. This array, to be provided by the */ + /* caller, must contain at least `count' elements. */ + /* */ + /* If scaling is performed (based on the value of */ + /* `load_flags'), the advance values are in 16.16 format. */ + /* Otherwise, they are in font units. */ + /* */ + /* If @FT_LOAD_VERTICAL_LAYOUT is set, these are the */ + /* vertical advances corresponding to a vertical layout. */ + /* Otherwise, they are the horizontal advances in a */ + /* horizontal layout. */ + /* */ + /* <Return> */ + /* FreeType error code. 0 means success. */ + /* */ + /* <Note> */ + /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */ + /* if the corresponding font backend doesn't have a quick way to */ + /* retrieve the advances. */ + /* */ + /* Scaled advances are returned in 16.16 format but aren't */ + /* transformed by the affine transformation specified by */ + /* @FT_Set_Transform. */ + /* */ FT_EXPORT( FT_Error ) FT_Get_Advances( FT_Face face, FT_UInt start, @@ -182,7 +181,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTADVANC_H_ */ +#endif /* __FTADVANC_H__ */ /* END */ diff --git a/win64/include/freetype/ftautoh.h b/win64/include/freetype/ftautoh.h new file mode 100644 index 00000000..59191abb --- /dev/null +++ b/win64/include/freetype/ftautoh.h @@ -0,0 +1,402 @@ +/***************************************************************************/ +/* */ +/* ftautoh.h */ +/* */ +/* FreeType API for controlling the auto-hinter (specification only). */ +/* */ +/* Copyright 2012, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __FTAUTOH_H__ +#define __FTAUTOH_H__ + +#include <ft2build.h> +#include FT_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: + * auto_hinter + * + * @title: + * The auto-hinter + * + * @abstract: + * Controlling the auto-hinting module. + * + * @description: + * While FreeType's auto-hinter doesn't expose API functions by itself, + * it is possible to control its behaviour with @FT_Property_Set and + * @FT_Property_Get. The following lists the available properties + * together with the necessary macros and structures. + * + * Note that the auto-hinter's module name is `autofitter' for + * historical reasons. + * + */ + + + /************************************************************************** + * + * @property: + * glyph-to-script-map + * + * @description: + * *Experimental* *only* + * + * 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. + * + * 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. + * + * The mapping between glyph indices and scripts (in the auto-hinter + * sense, see the @FT_AUTOHINTER_SCRIPT_XXX values) is stored as an + * array with `num_glyphs' elements, as found in the font's @FT_Face + * structure. The `glyph-to-script-map' 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. + * + * The following example code demonstrates how to access it (omitting + * the error handling). + * + * { + * FT_Library library; + * FT_Face face; + * FT_Prop_GlyphToScriptMap prop; + * + * + * FT_Init_FreeType( &library ); + * FT_New_Face( library, "foo.ttf", 0, &face ); + * + * prop.face = face; + * + * FT_Property_Get( library, "autofitter", + * "glyph-to-script-map", &prop ); + * + * // adjust `prop.map' as needed right here + * + * FT_Load_Glyph( face, ..., FT_LOAD_FORCE_AUTOHINT ); + * } + * + */ + + + /************************************************************************** + * + * @enum: + * FT_AUTOHINTER_SCRIPT_XXX + * + * @description: + * *Experimental* *only* + * + * A list of constants used for the @glyph-to-script-map property to + * specify the script submodule the auto-hinter should use for hinting a + * particular glyph. + * + * @values: + * FT_AUTOHINTER_SCRIPT_NONE :: + * Don't auto-hint this glyph. + * + * FT_AUTOHINTER_SCRIPT_LATIN :: + * Apply the latin auto-hinter. For the auto-hinter, `latin' is a + * very broad term, including Cyrillic and Greek also since characters + * from those scripts share the same design constraints. + * + * By default, characters from the following Unicode ranges are + * assigned to this submodule. + * + * { + * U+0020 - U+007F // Basic Latin (no control characters) + * U+00A0 - U+00FF // Latin-1 Supplement (no control characters) + * U+0100 - U+017F // Latin Extended-A + * U+0180 - U+024F // Latin Extended-B + * U+0250 - U+02AF // IPA Extensions + * U+02B0 - U+02FF // Spacing Modifier Letters + * U+0300 - U+036F // Combining Diacritical Marks + * U+0370 - U+03FF // Greek and Coptic + * U+0400 - U+04FF // Cyrillic + * U+0500 - U+052F // Cyrillic Supplement + * U+1D00 - U+1D7F // Phonetic Extensions + * U+1D80 - U+1DBF // Phonetic Extensions Supplement + * U+1DC0 - U+1DFF // Combining Diacritical Marks Supplement + * U+1E00 - U+1EFF // Latin Extended Additional + * U+1F00 - U+1FFF // Greek Extended + * U+2000 - U+206F // General Punctuation + * U+2070 - U+209F // Superscripts and Subscripts + * U+20A0 - U+20CF // Currency Symbols + * U+2150 - U+218F // Number Forms + * U+2460 - U+24FF // Enclosed Alphanumerics + * U+2C60 - U+2C7F // Latin Extended-C + * U+2DE0 - U+2DFF // Cyrillic Extended-A + * U+2E00 - U+2E7F // Supplemental Punctuation + * U+A640 - U+A69F // Cyrillic Extended-B + * U+A720 - U+A7FF // Latin Extended-D + * U+FB00 - U+FB06 // Alphab. Present. Forms (Latin Ligatures) + * U+1D400 - U+1D7FF // Mathematical Alphanumeric Symbols + * U+1F100 - U+1F1FF // Enclosed Alphanumeric Supplement + * } + * + * FT_AUTOHINTER_SCRIPT_CJK :: + * Apply the CJK auto-hinter, covering Chinese, Japanese, Korean, old + * Vietnamese, and some other scripts. + * + * By default, characters from the following Unicode ranges are + * assigned to this submodule. + * + * { + * U+1100 - U+11FF // Hangul Jamo + * U+2E80 - U+2EFF // CJK Radicals Supplement + * U+2F00 - U+2FDF // Kangxi Radicals + * U+2FF0 - U+2FFF // Ideographic Description Characters + * U+3000 - U+303F // CJK Symbols and Punctuation + * U+3040 - U+309F // Hiragana + * U+30A0 - U+30FF // Katakana + * U+3100 - U+312F // Bopomofo + * U+3130 - U+318F // Hangul Compatibility Jamo + * U+3190 - U+319F // Kanbun + * U+31A0 - U+31BF // Bopomofo Extended + * U+31C0 - U+31EF // CJK Strokes + * U+31F0 - U+31FF // Katakana Phonetic Extensions + * U+3200 - U+32FF // Enclosed CJK Letters and Months + * U+3300 - U+33FF // CJK Compatibility + * U+3400 - U+4DBF // CJK Unified Ideographs Extension A + * U+4DC0 - U+4DFF // Yijing Hexagram Symbols + * U+4E00 - U+9FFF // CJK Unified Ideographs + * U+A960 - U+A97F // Hangul Jamo Extended-A + * U+AC00 - U+D7AF // Hangul Syllables + * U+D7B0 - U+D7FF // Hangul Jamo Extended-B + * U+F900 - U+FAFF // CJK Compatibility Ideographs + * U+FE10 - U+FE1F // Vertical forms + * U+FE30 - U+FE4F // CJK Compatibility Forms + * U+FF00 - U+FFEF // Halfwidth and Fullwidth Forms + * U+1B000 - U+1B0FF // Kana Supplement + * U+1D300 - U+1D35F // Tai Xuan Hing Symbols + * U+1F200 - U+1F2FF // Enclosed Ideographic Supplement + * U+20000 - U+2A6DF // CJK Unified Ideographs Extension B + * U+2A700 - U+2B73F // CJK Unified Ideographs Extension C + * U+2B740 - U+2B81F // CJK Unified Ideographs Extension D + * U+2F800 - U+2FA1F // CJK Compatibility Ideographs Supplement + * } + * + * FT_AUTOHINTER_SCRIPT_INDIC :: + * Apply the indic auto-hinter, covering all major scripts from the + * Indian sub-continent and some other related scripts like Thai, Lao, + * or Tibetan. + * + * By default, characters from the following Unicode ranges are + * assigned to this submodule. + * + * { + * U+0900 - U+0DFF // Indic Range + * U+0F00 - U+0FFF // Tibetan + * U+1900 - U+194F // Limbu + * U+1B80 - U+1BBF // Sundanese + * U+1C80 - U+1CDF // Meetei Mayak + * U+A800 - U+A82F // Syloti Nagri + * U+11800 - U+118DF // Sharada + * } + * + * Note that currently Indic support is rudimentary only, missing blue + * zone support. + * + */ +#define FT_AUTOHINTER_SCRIPT_NONE 0 +#define FT_AUTOHINTER_SCRIPT_LATIN 1 +#define FT_AUTOHINTER_SCRIPT_CJK 2 +#define FT_AUTOHINTER_SCRIPT_INDIC 3 + + + /************************************************************************** + * + * @struct: + * FT_Prop_GlyphToScriptMap + * + * @description: + * *Experimental* *only* + * + * The data exchange structure for the @glyph-to-script-map property. + * + */ + typedef struct FT_Prop_GlyphToScriptMap_ + { + FT_Face face; + FT_Byte* map; + + } FT_Prop_GlyphToScriptMap; + + + /************************************************************************** + * + * @property: + * fallback-script + * + * @description: + * *Experimental* *only* + * + * If no auto-hinter script module can be assigned to a glyph, a + * fallback script gets assigned to it (see also the + * @glyph-to-script-map property). By default, this is + * @FT_AUTOHINTER_SCRIPT_CJK. Using the `fallback-script' property, + * this fallback value can be changed. + * + * { + * FT_Library library; + * FT_UInt fallback_script = FT_AUTOHINTER_SCRIPT_NONE; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "autofitter", + * "fallback-script", &fallback_script ); + * } + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * It's important to use the right timing for changing this value: The + * creation of the glyph-to-script map that eventually uses the + * fallback script value gets triggered either by setting or reading a + * face-specific property like @glyph-to-script-map, or by auto-hinting + * any glyph from that face. In particular, if you have already created + * an @FT_Face structure but not loaded any glyph (using the + * auto-hinter), a change of the fallback script will affect this face. + * + */ + + + /************************************************************************** + * + * @property: + * default-script + * + * @description: + * *Experimental* *only* + * + * If Freetype gets compiled with FT_CONFIG_OPTION_USE_HARFBUZZ to make + * the HarfBuzz library access OpenType features for getting better + * glyph coverages, this property sets the (auto-fitter) script to be + * used for the default (OpenType) script data of a font's GSUB table. + * Features for the default script are intended for all scripts not + * explicitly handled in GSUB; an example is a `dlig' feature, + * containing the combination of the characters `T', `E', and `L' to + * form a `TEL' ligature. + * + * By default, this is @FT_AUTOHINTER_SCRIPT_LATIN. Using the + * `default-script' property, this default value can be changed. + * + * { + * FT_Library library; + * FT_UInt default_script = FT_AUTOHINTER_SCRIPT_NONE; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "autofitter", + * "default-script", &default_script ); + * } + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * It's important to use the right timing for changing this value: The + * creation of the glyph-to-script map that eventually uses the + * default script value gets triggered either by setting or reading a + * face-specific property like @glyph-to-script-map, or by auto-hinting + * any glyph from that face. In particular, if you have already created + * an @FT_Face structure but not loaded any glyph (using the + * auto-hinter), a change of the default script will affect this face. + * + */ + + + /************************************************************************** + * + * @property: + * increase-x-height + * + * @description: + * For ppem values in the range 6~<= ppem <= `increase-x-height', round + * up the font's x~height much more often than normally. If the value + * is set to~0, which is the default, this feature is switched off. Use + * this property to improve the legibility of small font sizes if + * necessary. + * + * { + * FT_Library library; + * FT_Face face; + * FT_Prop_IncreaseXHeight prop; + * + * + * FT_Init_FreeType( &library ); + * FT_New_Face( library, "foo.ttf", 0, &face ); + * FT_Set_Char_Size( face, 10 * 64, 0, 72, 0 ); + * + * prop.face = face; + * prop.limit = 14; + * + * FT_Property_Set( library, "autofitter", + * "increase-x-height", &prop ); + * } + * + * @note: + * This property can be used with @FT_Property_Get also. + * + * Set this value right after calling @FT_Set_Char_Size, but before + * loading any glyph (using the auto-hinter). + * + */ + + + /************************************************************************** + * + * @struct: + * FT_Prop_IncreaseXHeight + * + * @description: + * The data exchange structure for the @increase-x-height property. + * + */ + typedef struct FT_Prop_IncreaseXHeight_ + { + FT_Face face; + FT_UInt limit; + + } FT_Prop_IncreaseXHeight; + + /* */ + + +FT_END_HEADER + +#endif /* __FTAUTOH_H__ */ + + +/* END */ diff --git a/win64/include/freetype/ftbbox.h b/win64/include/freetype/ftbbox.h index fda1ad94..d6800e24 100644 --- a/win64/include/freetype/ftbbox.h +++ b/win64/include/freetype/ftbbox.h @@ -1,37 +1,38 @@ -/**************************************************************************** - * - * ftbbox.h - * - * FreeType exact bbox computation (specification). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftbbox.h */ +/* */ +/* FreeType exact bbox computation (specification). */ +/* */ +/* Copyright 1996-2001, 2003, 2007, 2011, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * This component has a _single_ role: to compute exact outline bounding - * boxes. - * - * It is separated from the rest of the engine for various technical - * reasons. It may well be integrated in 'ftoutln' later. - * - */ + /*************************************************************************/ + /* */ + /* This component has a _single_ role: to compute exact outline bounding */ + /* boxes. */ + /* */ + /* It is separated from the rest of the engine for various technical */ + /* reasons. It may well be integrated in `ftoutln' later. */ + /* */ + /*************************************************************************/ -#ifndef FTBBOX_H_ -#define FTBBOX_H_ +#ifndef __FTBBOX_H__ +#define __FTBBOX_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -43,44 +44,43 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * outline_processing - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* outline_processing */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @function: - * FT_Outline_Get_BBox - * - * @description: - * Compute the exact bounding box of an outline. This is slower than - * computing the control box. However, it uses an advanced algorithm - * that returns _very_ quickly when the two boxes coincide. Otherwise, - * the outline Bezier arcs are traversed to extract their extrema. - * - * @input: - * outline :: - * A pointer to the source outline. - * - * @output: - * abbox :: - * The outline's exact bounding box. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If the font is tricky and the glyph has been loaded with - * @FT_LOAD_NO_SCALE, the resulting BBox is meaningless. To get - * reasonable values for the BBox it is necessary to load the glyph at a - * large ppem value (so that the hinting instructions can properly shift - * and scale the subglyphs), then extracting the BBox, which can be - * eventually converted back to font units. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Outline_Get_BBox */ + /* */ + /* <Description> */ + /* Compute the exact bounding box of an outline. This is slower */ + /* than computing the control box. However, it uses an advanced */ + /* algorithm that returns _very_ quickly when the two boxes */ + /* coincide. Otherwise, the outline Bézier arcs are traversed to */ + /* extract their extrema. */ + /* */ + /* <Input> */ + /* outline :: A pointer to the source outline. */ + /* */ + /* <Output> */ + /* abbox :: The outline's exact bounding box. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* If the font is tricky and the glyph has been loaded with */ + /* @FT_LOAD_NO_SCALE, the resulting BBox is meaningless. To get */ + /* reasonable values for the BBox it is necessary to load the glyph */ + /* at a large ppem value (so that the hinting instructions can */ + /* properly shift and scale the subglyphs), then extracting the BBox, */ + /* which can be eventually converted back to font units. */ + /* */ FT_EXPORT( FT_Error ) FT_Outline_Get_BBox( FT_Outline* outline, FT_BBox *abbox ); @@ -90,7 +90,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTBBOX_H_ */ +#endif /* __FTBBOX_H__ */ /* END */ diff --git a/win64/include/freetype/ftbdf.h b/win64/include/freetype/ftbdf.h index 2e1daeea..6d262e41 100644 --- a/win64/include/freetype/ftbdf.h +++ b/win64/include/freetype/ftbdf.h @@ -1,25 +1,26 @@ -/**************************************************************************** - * - * ftbdf.h - * - * FreeType API for accessing BDF-specific strings (specification). - * - * Copyright (C) 2002-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftbdf.h */ +/* */ +/* FreeType API for accessing BDF-specific strings (specification). */ +/* */ +/* Copyright 2002-2004, 2006, 2009, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTBDF_H_ -#define FTBDF_H_ +#ifndef __FTBDF_H__ +#define __FTBDF_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -31,25 +32,25 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * bdf_fonts - * - * @title: - * BDF and PCF Files - * - * @abstract: - * BDF and PCF specific API. - * - * @description: - * This section contains the declaration of functions specific to BDF and - * PCF fonts. - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* bdf_fonts */ + /* */ + /* <Title> */ + /* BDF and PCF Files */ + /* */ + /* <Abstract> */ + /* BDF and PCF specific API. */ + /* */ + /* <Description> */ + /* This section contains the declaration of functions specific to BDF */ + /* and PCF fonts. */ + /* */ + /*************************************************************************/ - /************************************************************************** + /********************************************************************** * * @enum: * BDF_PropertyType @@ -80,40 +81,40 @@ FT_BEGIN_HEADER } BDF_PropertyType; - /************************************************************************** + /********************************************************************** * * @type: * BDF_Property * * @description: - * A handle to a @BDF_PropertyRec structure to model a given BDF/PCF - * property. + * A handle to a @BDF_PropertyRec structure to model a given + * BDF/PCF property. */ typedef struct BDF_PropertyRec_* BDF_Property; - /************************************************************************** - * - * @struct: - * BDF_PropertyRec - * - * @description: - * This structure models a given BDF/PCF property. - * - * @fields: - * type :: - * The property type. - * - * u.atom :: - * The atom string, if type is @BDF_PROPERTY_TYPE_ATOM. May be - * `NULL`, indicating an empty string. - * - * u.integer :: - * A signed integer, if type is @BDF_PROPERTY_TYPE_INTEGER. - * - * u.cardinal :: - * An unsigned integer, if type is @BDF_PROPERTY_TYPE_CARDINAL. - */ + /********************************************************************** + * + * @struct: + * BDF_PropertyRec + * + * @description: + * This structure models a given BDF/PCF property. + * + * @fields: + * type :: + * The property type. + * + * u.atom :: + * The atom string, if type is @BDF_PROPERTY_TYPE_ATOM. May be + * NULL, indicating an empty string. + * + * u.integer :: + * A signed integer, if type is @BDF_PROPERTY_TYPE_INTEGER. + * + * u.cardinal :: + * An unsigned integer, if type is @BDF_PROPERTY_TYPE_CARDINAL. + */ typedef struct BDF_PropertyRec_ { BDF_PropertyType type; @@ -127,76 +128,73 @@ FT_BEGIN_HEADER } BDF_PropertyRec; - /************************************************************************** - * - * @function: - * FT_Get_BDF_Charset_ID - * - * @description: - * Retrieve a BDF font character set identity, according to the BDF - * specification. - * - * @input: - * face :: - * A handle to the input face. - * - * @output: - * acharset_encoding :: - * Charset encoding, as a C~string, owned by the face. - * - * acharset_registry :: - * Charset registry, as a C~string, owned by the face. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with BDF faces, returning an error otherwise. - */ + /********************************************************************** + * + * @function: + * FT_Get_BDF_Charset_ID + * + * @description: + * Retrieve a BDF font character set identity, according to + * the BDF specification. + * + * @input: + * face :: + * A handle to the input face. + * + * @output: + * acharset_encoding :: + * Charset encoding, as a C~string, owned by the face. + * + * acharset_registry :: + * Charset registry, as a C~string, owned by the face. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function only works with BDF faces, returning an error otherwise. + */ FT_EXPORT( FT_Error ) FT_Get_BDF_Charset_ID( FT_Face face, const char* *acharset_encoding, const char* *acharset_registry ); - /************************************************************************** - * - * @function: - * FT_Get_BDF_Property - * - * @description: - * Retrieve a BDF property from a BDF or PCF font file. - * - * @input: - * face :: - * A handle to the input face. - * - * name :: - * The property name. - * - * @output: - * aproperty :: - * The property. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function works with BDF _and_ PCF fonts. It returns an error - * otherwise. It also returns an error if the property is not in the - * font. - * - * A 'property' is a either key-value pair within the STARTPROPERTIES - * ... ENDPROPERTIES block of a BDF font or a key-value pair from the - * `info->props` array within a `FontRec` structure of a PCF font. - * - * Integer properties are always stored as 'signed' within PCF fonts; - * consequently, @BDF_PROPERTY_TYPE_CARDINAL is a possible return value - * for BDF fonts only. - * - * In case of error, `aproperty->type` is always set to - * @BDF_PROPERTY_TYPE_NONE. - */ + /********************************************************************** + * + * @function: + * FT_Get_BDF_Property + * + * @description: + * Retrieve a BDF property from a BDF or PCF font file. + * + * @input: + * face :: A handle to the input face. + * + * name :: The property name. + * + * @output: + * aproperty :: The property. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function works with BDF _and_ PCF fonts. It returns an error + * otherwise. It also returns an error if the property is not in the + * font. + * + * A `property' is a either key-value pair within the STARTPROPERTIES + * ... ENDPROPERTIES block of a BDF font or a key-value pair from the + * `info->props' array within a `FontRec' structure of a PCF font. + * + * Integer properties are always stored as `signed' within PCF fonts; + * consequently, @BDF_PROPERTY_TYPE_CARDINAL is a possible return value + * for BDF fonts only. + * + * In case of error, `aproperty->type' is always set to + * @BDF_PROPERTY_TYPE_NONE. + */ FT_EXPORT( FT_Error ) FT_Get_BDF_Property( FT_Face face, const char* prop_name, @@ -206,7 +204,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTBDF_H_ */ +#endif /* __FTBDF_H__ */ /* END */ diff --git a/win64/include/freetype/ftbitmap.h b/win64/include/freetype/ftbitmap.h index 282c22e1..eae71690 100644 --- a/win64/include/freetype/ftbitmap.h +++ b/win64/include/freetype/ftbitmap.h @@ -1,27 +1,27 @@ -/**************************************************************************** - * - * ftbitmap.h - * - * FreeType utility functions for bitmaps (specification). - * - * Copyright (C) 2004-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftbitmap.h */ +/* */ +/* FreeType utility functions for bitmaps (specification). */ +/* */ +/* Copyright 2004-2006, 2008, 2013, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTBITMAP_H_ -#define FTBITMAP_H_ +#ifndef __FTBITMAP_H__ +#define __FTBITMAP_H__ -#include <freetype/freetype.h> -#include <freetype/ftcolor.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -33,126 +33,100 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * bitmap_handling - * - * @title: - * Bitmap Handling - * - * @abstract: - * Handling FT_Bitmap objects. - * - * @description: - * This section contains functions for handling @FT_Bitmap objects, - * automatically adjusting the target's bitmap buffer size as needed. - * - * Note that none of the functions changes the bitmap's 'flow' (as - * indicated by the sign of the `pitch` field in @FT_Bitmap). - * - * To set the flow, assign an appropriate positive or negative value to - * the `pitch` field of the target @FT_Bitmap object after calling - * @FT_Bitmap_Init but before calling any of the other functions - * described here. - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* bitmap_handling */ + /* */ + /* <Title> */ + /* Bitmap Handling */ + /* */ + /* <Abstract> */ + /* Handling FT_Bitmap objects. */ + /* */ + /* <Description> */ + /* This section contains functions for handling @FT_Bitmap objects. */ + /* Note that none of the functions changes the bitmap's `flow' (as */ + /* indicated by the sign of the `pitch' field in `FT_Bitmap'). */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @function: - * FT_Bitmap_Init - * - * @description: - * Initialize a pointer to an @FT_Bitmap structure. - * - * @inout: - * abitmap :: - * A pointer to the bitmap structure. - * - * @note: - * A deprecated name for the same function is `FT_Bitmap_New`. - */ - FT_EXPORT( void ) - FT_Bitmap_Init( FT_Bitmap *abitmap ); - - - /* deprecated */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Bitmap_New */ + /* */ + /* <Description> */ + /* Initialize a pointer to an @FT_Bitmap structure. */ + /* */ + /* <InOut> */ + /* abitmap :: A pointer to the bitmap structure. */ + /* */ FT_EXPORT( void ) FT_Bitmap_New( FT_Bitmap *abitmap ); - /************************************************************************** - * - * @function: - * FT_Bitmap_Copy - * - * @description: - * Copy a bitmap into another one. - * - * @input: - * library :: - * A handle to a library object. - * - * source :: - * A handle to the source bitmap. - * - * @output: - * target :: - * A handle to the target bitmap. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * `source->buffer` and `target->buffer` must neither be equal nor - * overlap. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Bitmap_Copy */ + /* */ + /* <Description> */ + /* Copy a bitmap into another one. */ + /* */ + /* <Input> */ + /* library :: A handle to a library object. */ + /* */ + /* source :: A handle to the source bitmap. */ + /* */ + /* <Output> */ + /* target :: A handle to the target bitmap. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_Bitmap_Copy( FT_Library library, const FT_Bitmap *source, - FT_Bitmap *target ); + FT_Bitmap *target); - /************************************************************************** - * - * @function: - * FT_Bitmap_Embolden - * - * @description: - * Embolden a bitmap. The new bitmap will be about `xStrength` pixels - * wider and `yStrength` pixels higher. The left and bottom borders are - * kept unchanged. - * - * @input: - * library :: - * A handle to a library object. - * - * xStrength :: - * How strong the glyph is emboldened horizontally. Expressed in 26.6 - * pixel format. - * - * yStrength :: - * How strong the glyph is emboldened vertically. Expressed in 26.6 - * pixel format. - * - * @inout: - * bitmap :: - * A handle to the target bitmap. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The current implementation restricts `xStrength` to be less than or - * equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO. - * - * If you want to embolden the bitmap owned by a @FT_GlyphSlotRec, you - * should call @FT_GlyphSlot_Own_Bitmap on the slot first. - * - * Bitmaps in @FT_PIXEL_MODE_GRAY2 and @FT_PIXEL_MODE_GRAY@ format are - * converted to @FT_PIXEL_MODE_GRAY format (i.e., 8bpp). - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Bitmap_Embolden */ + /* */ + /* <Description> */ + /* Embolden a bitmap. The new bitmap will be about `xStrength' */ + /* pixels wider and `yStrength' pixels higher. The left and bottom */ + /* borders are kept unchanged. */ + /* */ + /* <Input> */ + /* library :: A handle to a library object. */ + /* */ + /* xStrength :: How strong the glyph is emboldened horizontally. */ + /* Expressed in 26.6 pixel format. */ + /* */ + /* yStrength :: How strong the glyph is emboldened vertically. */ + /* Expressed in 26.6 pixel format. */ + /* */ + /* <InOut> */ + /* bitmap :: A handle to the target bitmap. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* The current implementation restricts `xStrength' to be less than */ + /* or equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO. */ + /* */ + /* If you want to embolden the bitmap owned by a @FT_GlyphSlotRec, */ + /* you should call @FT_GlyphSlot_Own_Bitmap on the slot first. */ + /* */ + /* Bitmaps in @FT_PIXEL_MODE_GRAY2 and @FT_PIXEL_MODE_GRAY@ format */ + /* are converted to @FT_PIXEL_MODE_GRAY format (i.e., 8bpp). */ + /* */ FT_EXPORT( FT_Error ) FT_Bitmap_Embolden( FT_Library library, FT_Bitmap* bitmap, @@ -160,46 +134,39 @@ FT_BEGIN_HEADER FT_Pos yStrength ); - /************************************************************************** - * - * @function: - * FT_Bitmap_Convert - * - * @description: - * Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp to - * a bitmap object with depth 8bpp, making the number of used bytes per - * line (a.k.a. the 'pitch') a multiple of `alignment`. - * - * @input: - * library :: - * A handle to a library object. - * - * source :: - * The source bitmap. - * - * alignment :: - * The pitch of the bitmap is a multiple of this argument. Common - * values are 1, 2, or 4. - * - * @output: - * target :: - * The target bitmap. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * It is possible to call @FT_Bitmap_Convert multiple times without - * calling @FT_Bitmap_Done (the memory is simply reallocated). - * - * Use @FT_Bitmap_Done to finally remove the bitmap object. - * - * The `library` argument is taken to have access to FreeType's memory - * handling functions. - * - * `source->buffer` and `target->buffer` must neither be equal nor - * overlap. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Bitmap_Convert */ + /* */ + /* <Description> */ + /* Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp */ + /* to a bitmap object with depth 8bpp, making the number of used */ + /* bytes line (a.k.a. the `pitch') a multiple of `alignment'. */ + /* */ + /* <Input> */ + /* library :: A handle to a library object. */ + /* */ + /* source :: The source bitmap. */ + /* */ + /* alignment :: The pitch of the bitmap is a multiple of this */ + /* parameter. Common values are 1, 2, or 4. */ + /* */ + /* <Output> */ + /* target :: The target bitmap. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* It is possible to call @FT_Bitmap_Convert multiple times without */ + /* calling @FT_Bitmap_Done (the memory is simply reallocated). */ + /* */ + /* Use @FT_Bitmap_Done to finally remove the bitmap object. */ + /* */ + /* The `library' argument is taken to have access to FreeType's */ + /* memory handling functions. */ + /* */ FT_EXPORT( FT_Error ) FT_Bitmap_Convert( FT_Library library, const FT_Bitmap *source, @@ -207,112 +174,48 @@ FT_BEGIN_HEADER FT_Int alignment ); - /************************************************************************** - * - * @function: - * FT_Bitmap_Blend - * - * @description: - * Blend a bitmap onto another bitmap, using a given color. - * - * @input: - * library :: - * A handle to a library object. - * - * source :: - * The source bitmap, which can have any @FT_Pixel_Mode format. - * - * source_offset :: - * The offset vector to the upper left corner of the source bitmap in - * 26.6 pixel format. It should represent an integer offset; the - * function will set the lowest six bits to zero to enforce that. - * - * color :: - * The color used to draw `source` onto `target`. - * - * @inout: - * target :: - * A handle to an `FT_Bitmap` object. It should be either initialized - * as empty with a call to @FT_Bitmap_Init, or it should be of type - * @FT_PIXEL_MODE_BGRA. - * - * atarget_offset :: - * The offset vector to the upper left corner of the target bitmap in - * 26.6 pixel format. It should represent an integer offset; the - * function will set the lowest six bits to zero to enforce that. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function doesn't perform clipping. - * - * The bitmap in `target` gets allocated or reallocated as needed; the - * vector `atarget_offset` is updated accordingly. - * - * In case of allocation or reallocation, the bitmap's pitch is set to - * `4 * width`. Both `source` and `target` must have the same bitmap - * flow (as indicated by the sign of the `pitch` field). - * - * `source->buffer` and `target->buffer` must neither be equal nor - * overlap. - * - * @since: - * 2.10 - */ - FT_EXPORT( FT_Error ) - FT_Bitmap_Blend( FT_Library library, - const FT_Bitmap* source, - const FT_Vector source_offset, - FT_Bitmap* target, - FT_Vector *atarget_offset, - FT_Color color ); - - - /************************************************************************** - * - * @function: - * FT_GlyphSlot_Own_Bitmap - * - * @description: - * Make sure that a glyph slot owns `slot->bitmap`. - * - * @input: - * slot :: - * The glyph slot. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function is to be used in combination with @FT_Bitmap_Embolden. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_GlyphSlot_Own_Bitmap */ + /* */ + /* <Description> */ + /* Make sure that a glyph slot owns `slot->bitmap'. */ + /* */ + /* <Input> */ + /* slot :: The glyph slot. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* This function is to be used in combination with */ + /* @FT_Bitmap_Embolden. */ + /* */ FT_EXPORT( FT_Error ) FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot slot ); - /************************************************************************** - * - * @function: - * FT_Bitmap_Done - * - * @description: - * Destroy a bitmap object initialized with @FT_Bitmap_Init. - * - * @input: - * library :: - * A handle to a library object. - * - * bitmap :: - * The bitmap object to be freed. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The `library` argument is taken to have access to FreeType's memory - * handling functions. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Bitmap_Done */ + /* */ + /* <Description> */ + /* Destroy a bitmap object created with @FT_Bitmap_New. */ + /* */ + /* <Input> */ + /* library :: A handle to a library object. */ + /* */ + /* bitmap :: The bitmap object to be freed. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* The `library' argument is taken to have access to FreeType's */ + /* memory handling functions. */ + /* */ FT_EXPORT( FT_Error ) FT_Bitmap_Done( FT_Library library, FT_Bitmap *bitmap ); @@ -323,7 +226,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTBITMAP_H_ */ +#endif /* __FTBITMAP_H__ */ /* END */ diff --git a/win64/include/freetype/ftbzip2.h b/win64/include/freetype/ftbzip2.h index eb6a5a55..4dce161f 100644 --- a/win64/include/freetype/ftbzip2.h +++ b/win64/include/freetype/ftbzip2.h @@ -1,25 +1,26 @@ -/**************************************************************************** - * - * ftbzip2.h - * - * Bzip2-compressed stream support. - * - * Copyright (C) 2010-2020 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. - * - */ +/***************************************************************************/ +/* */ +/* ftbzip2.h */ +/* */ +/* Bzip2-compressed stream support. */ +/* */ +/* Copyright 2010 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. */ +/* */ +/***************************************************************************/ -#ifndef FTBZIP2_H_ -#define FTBZIP2_H_ +#ifndef __FTBZIP2_H__ +#define __FTBZIP2_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -30,63 +31,62 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * bzip2 - * - * @title: - * BZIP2 Streams - * - * @abstract: - * Using bzip2-compressed font files. - * - * @description: - * In certain builds of the library, bzip2 compression recognition is - * automatically handled when calling @FT_New_Face or @FT_Open_Face. - * This means that if no font driver is capable of handling the raw - * compressed file, the library will try to open a bzip2 compressed - * stream from it and re-open the face with it. - * - * The stream implementation is very basic and resets the decompression - * process each time seeking backwards is needed within the stream, - * which significantly undermines the performance. - * - * This section contains the declaration of Bzip2-specific functions. - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* bzip2 */ + /* */ + /* <Title> */ + /* BZIP2 Streams */ + /* */ + /* <Abstract> */ + /* Using bzip2-compressed font files. */ + /* */ + /* <Description> */ + /* This section contains the declaration of Bzip2-specific functions. */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @function: - * FT_Stream_OpenBzip2 - * - * @description: - * Open a new stream to parse bzip2-compressed font files. This is - * mainly used to support the compressed `*.pcf.bz2` fonts that come with - * XFree86. - * - * @input: - * stream :: - * The target embedding stream. - * - * source :: - * The source stream. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source stream must be opened _before_ calling this function. - * - * Calling the internal function `FT_Stream_Close` on the new stream will - * **not** call `FT_Stream_Close` on the source stream. None of the - * stream objects will be released to the heap. - * - * This function may return `FT_Err_Unimplemented_Feature` if your build - * of FreeType was not compiled with bzip2 support. - */ + /************************************************************************ + * + * @function: + * FT_Stream_OpenBzip2 + * + * @description: + * Open a new stream to parse bzip2-compressed font files. This is + * mainly used to support the compressed `*.pcf.bz2' fonts that come + * with XFree86. + * + * @input: + * stream :: + * The target embedding stream. + * + * source :: + * The source stream. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The source stream must be opened _before_ calling this function. + * + * Calling the internal function `FT_Stream_Close' on the new stream will + * *not* call `FT_Stream_Close' on the source stream. None of the stream + * objects will be released to the heap. + * + * The stream implementation is very basic and resets the decompression + * process each time seeking backwards is needed within the stream. + * + * In certain builds of the library, bzip2 compression recognition is + * automatically handled when calling @FT_New_Face or @FT_Open_Face. + * This means that if no font driver is capable of handling the raw + * compressed file, the library will try to open a bzip2 compressed stream + * from it and re-open the face with it. + * + * This function may return `FT_Err_Unimplemented_Feature' if your build + * of FreeType was not compiled with bzip2 support. + */ FT_EXPORT( FT_Error ) FT_Stream_OpenBzip2( FT_Stream stream, FT_Stream source ); @@ -96,7 +96,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTBZIP2_H_ */ +#endif /* __FTBZIP2_H__ */ /* END */ diff --git a/win64/include/freetype/ftcache.h b/win64/include/freetype/ftcache.h index 60472752..a30e925c 100644 --- a/win64/include/freetype/ftcache.h +++ b/win64/include/freetype/ftcache.h @@ -1,49 +1,50 @@ -/**************************************************************************** - * - * ftcache.h - * - * FreeType Cache subsystem (specification). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftcache.h */ +/* */ +/* FreeType Cache subsystem (specification). */ +/* */ +/* Copyright 1996-2008, 2010, 2013, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTCACHE_H_ -#define FTCACHE_H_ +#ifndef __FTCACHE_H__ +#define __FTCACHE_H__ -#include <freetype/ftglyph.h> +#include <ft2build.h> +#include FT_GLYPH_H FT_BEGIN_HEADER - /************************************************************************** + /************************************************************************* * - * @section: - * cache_subsystem + * <Section> + * cache_subsystem * - * @title: - * Cache Sub-System + * <Title> + * Cache Sub-System * - * @abstract: - * How to cache face, size, and glyph data with FreeType~2. + * <Abstract> + * How to cache face, size, and glyph data with FreeType~2. * - * @description: + * <Description> * This section describes the FreeType~2 cache sub-system, which is used * to limit the number of concurrently opened @FT_Face and @FT_Size * objects, as well as caching information like character maps and glyph * images while limiting their maximum memory usage. * - * Note that all types and functions begin with the `FTC_` prefix. + * Note that all types and functions begin with the `FTC_' prefix. * * The cache is highly portable and thus doesn't know anything about the * fonts installed on your system, or how to access them. This implies @@ -58,7 +59,7 @@ FT_BEGIN_HEADER * to convert an @FTC_FaceID into a new @FT_Face object. The latter is * then completely managed by the cache, including its termination * through @FT_Done_Face. To monitor termination of face objects, the - * finalizer callback in the `generic` field of the @FT_Face object can + * finalizer callback in the `generic' field of the @FT_Face object can * be used, which might also be used to store the @FTC_FaceID of the * face. * @@ -68,14 +69,14 @@ FT_BEGIN_HEADER * possible. * * Note that for the cache to work correctly, the face ID values must be - * **persistent**, which means that the contents they point to should not + * *persistent*, which means that the contents they point to should not * change at runtime, or that their value should not become invalid. * * If this is unavoidable (e.g., when a font is uninstalled at runtime), * you should call @FTC_Manager_RemoveFaceID as soon as possible, to let - * the cache get rid of any references to the old @FTC_FaceID it may keep - * internally. Failure to do so will lead to incorrect behaviour or even - * crashes. + * the cache get rid of any references to the old @FTC_FaceID it may + * keep internally. Failure to do so will lead to incorrect behaviour + * or even crashes. * * To use the cache, start with calling @FTC_Manager_New to create a new * @FTC_Manager object, which models a single cache instance. You can @@ -90,16 +91,16 @@ FT_BEGIN_HEADER * later use @FTC_ImageCache_Lookup to retrieve the corresponding * @FT_Glyph objects from the cache. * - * If you need lots of small bitmaps, it is much more memory efficient to - * call @FTC_SBitCache_New followed by @FTC_SBitCache_Lookup. This - * returns @FTC_SBitRec structures, which are used to store small bitmaps - * directly. (A small bitmap is one whose metrics and dimensions all fit - * into 8-bit integers). + * If you need lots of small bitmaps, it is much more memory efficient + * to call @FTC_SBitCache_New followed by @FTC_SBitCache_Lookup. This + * returns @FTC_SBitRec structures, which are used to store small + * bitmaps directly. (A small bitmap is one whose metrics and + * dimensions all fit into 8-bit integers). * * We hope to also provide a kerning cache in the near future. * * - * @order: + * <Order> * FTC_Manager * FTC_FaceID * FTC_Face_Requester @@ -141,20 +142,19 @@ FT_BEGIN_HEADER /*************************************************************************/ - /************************************************************************** + /************************************************************************* * - * @type: - * FTC_FaceID + * @type: FTC_FaceID * * @description: * An opaque pointer type that is used to identity face objects. The * contents of such objects is application-dependent. * - * These pointers are typically used to point to a user-defined structure - * containing a font file path, and face index. + * These pointers are typically used to point to a user-defined + * structure containing a font file path, and face index. * * @note: - * Never use `NULL` as a valid @FTC_FaceID. + * Never use NULL as a valid @FTC_FaceID. * * Face IDs are passed by the client to the cache manager that calls, * when needed, the @FTC_Face_Requester to translate them into new @@ -165,13 +165,13 @@ FT_BEGIN_HEADER * immediately call @FTC_Manager_RemoveFaceID before any other cache * function. * - * Failure to do so will result in incorrect behaviour or even memory - * leaks and crashes. + * Failure to do so will result in incorrect behaviour or even + * memory leaks and crashes. */ typedef FT_Pointer FTC_FaceID; - /************************************************************************** + /************************************************************************ * * @functype: * FTC_Face_Requester @@ -181,7 +181,7 @@ FT_BEGIN_HEADER * the cache manager to translate a given @FTC_FaceID into a new valid * @FT_Face object, on demand. * - * @input: + * <Input> * face_id :: * The face ID to resolve. * @@ -191,15 +191,15 @@ FT_BEGIN_HEADER * req_data :: * Application-provided request data (see note below). * - * @output: + * <Output> * aface :: * A new @FT_Face handle. * - * @return: + * <Return> * FreeType error code. 0~means success. * - * @note: - * The third parameter `req_data` is the same as the one passed by the + * <Note> + * The third parameter `req_data' is the same as the one passed by the * client when @FTC_Manager_New is called. * * The face requester should not perform funny things on the returned @@ -226,90 +226,84 @@ FT_BEGIN_HEADER /*************************************************************************/ - /************************************************************************** - * - * @type: - * FTC_Manager - * - * @description: - * This object corresponds to one instance of the cache-subsystem. It is - * used to cache one or more @FT_Face objects, along with corresponding - * @FT_Size objects. - * - * The manager intentionally limits the total number of opened @FT_Face - * and @FT_Size objects to control memory usage. See the `max_faces` and - * `max_sizes` parameters of @FTC_Manager_New. - * - * The manager is also used to cache 'nodes' of various types while - * limiting their total memory usage. - * - * All limitations are enforced by keeping lists of managed objects in - * most-recently-used order, and flushing old nodes to make room for new - * ones. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FTC_Manager */ + /* */ + /* <Description> */ + /* This object corresponds to one instance of the cache-subsystem. */ + /* It is used to cache one or more @FT_Face objects, along with */ + /* corresponding @FT_Size objects. */ + /* */ + /* The manager intentionally limits the total number of opened */ + /* @FT_Face and @FT_Size objects to control memory usage. See the */ + /* `max_faces' and `max_sizes' parameters of @FTC_Manager_New. */ + /* */ + /* The manager is also used to cache `nodes' of various types while */ + /* limiting their total memory usage. */ + /* */ + /* All limitations are enforced by keeping lists of managed objects */ + /* in most-recently-used order, and flushing old nodes to make room */ + /* for new ones. */ + /* */ typedef struct FTC_ManagerRec_* FTC_Manager; - /************************************************************************** - * - * @type: - * FTC_Node - * - * @description: - * An opaque handle to a cache node object. Each cache node is - * reference-counted. A node with a count of~0 might be flushed out of a - * full cache whenever a lookup request is performed. - * - * If you look up nodes, you have the ability to 'acquire' them, i.e., to - * increment their reference count. This will prevent the node from - * being flushed out of the cache until you explicitly 'release' it (see - * @FTC_Node_Unref). - * - * See also @FTC_SBitCache_Lookup and @FTC_ImageCache_Lookup. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FTC_Node */ + /* */ + /* <Description> */ + /* An opaque handle to a cache node object. Each cache node is */ + /* reference-counted. A node with a count of~0 might be flushed */ + /* out of a full cache whenever a lookup request is performed. */ + /* */ + /* If you look up nodes, you have the ability to `acquire' them, */ + /* i.e., to increment their reference count. This will prevent the */ + /* node from being flushed out of the cache until you explicitly */ + /* `release' it (see @FTC_Node_Unref). */ + /* */ + /* See also @FTC_SBitCache_Lookup and @FTC_ImageCache_Lookup. */ + /* */ typedef struct FTC_NodeRec_* FTC_Node; - /************************************************************************** - * - * @function: - * FTC_Manager_New - * - * @description: - * Create a new cache manager. - * - * @input: - * library :: - * The parent FreeType library handle to use. - * - * max_faces :: - * Maximum number of opened @FT_Face objects managed by this cache - * instance. Use~0 for defaults. - * - * max_sizes :: - * Maximum number of opened @FT_Size objects managed by this cache - * instance. Use~0 for defaults. - * - * max_bytes :: - * Maximum number of bytes to use for cached data nodes. Use~0 for - * defaults. Note that this value does not account for managed - * @FT_Face and @FT_Size objects. - * - * requester :: - * An application-provided callback used to translate face IDs into - * real @FT_Face objects. - * - * req_data :: - * A generic pointer that is passed to the requester each time it is - * called (see @FTC_Face_Requester). - * - * @output: - * amanager :: - * A handle to a new manager object. 0~in case of failure. - * - * @return: - * FreeType error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FTC_Manager_New */ + /* */ + /* <Description> */ + /* Create a new cache manager. */ + /* */ + /* <Input> */ + /* library :: The parent FreeType library handle to use. */ + /* */ + /* max_faces :: Maximum number of opened @FT_Face objects managed by */ + /* this cache instance. Use~0 for defaults. */ + /* */ + /* max_sizes :: Maximum number of opened @FT_Size objects managed by */ + /* this cache instance. Use~0 for defaults. */ + /* */ + /* max_bytes :: Maximum number of bytes to use for cached data nodes. */ + /* Use~0 for defaults. Note that this value does not */ + /* account for managed @FT_Face and @FT_Size objects. */ + /* */ + /* requester :: An application-provided callback used to translate */ + /* face IDs into real @FT_Face objects. */ + /* */ + /* req_data :: A generic pointer that is passed to the requester */ + /* each time it is called (see @FTC_Face_Requester). */ + /* */ + /* <Output> */ + /* amanager :: A handle to a new manager object. 0~in case of */ + /* failure. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FTC_Manager_New( FT_Library library, FT_UInt max_faces, @@ -320,124 +314,114 @@ FT_BEGIN_HEADER FTC_Manager *amanager ); - /************************************************************************** - * - * @function: - * FTC_Manager_Reset - * - * @description: - * Empty a given cache manager. This simply gets rid of all the - * currently cached @FT_Face and @FT_Size objects within the manager. - * - * @inout: - * manager :: - * A handle to the manager. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FTC_Manager_Reset */ + /* */ + /* <Description> */ + /* Empty a given cache manager. This simply gets rid of all the */ + /* currently cached @FT_Face and @FT_Size objects within the manager. */ + /* */ + /* <InOut> */ + /* manager :: A handle to the manager. */ + /* */ FT_EXPORT( void ) FTC_Manager_Reset( FTC_Manager manager ); - /************************************************************************** - * - * @function: - * FTC_Manager_Done - * - * @description: - * Destroy a given manager after emptying it. - * - * @input: - * manager :: - * A handle to the target cache manager object. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FTC_Manager_Done */ + /* */ + /* <Description> */ + /* Destroy a given manager after emptying it. */ + /* */ + /* <Input> */ + /* manager :: A handle to the target cache manager object. */ + /* */ FT_EXPORT( void ) FTC_Manager_Done( FTC_Manager manager ); - /************************************************************************** - * - * @function: - * FTC_Manager_LookupFace - * - * @description: - * Retrieve the @FT_Face object that corresponds to a given face ID - * through a cache manager. - * - * @input: - * manager :: - * A handle to the cache manager. - * - * face_id :: - * The ID of the face object. - * - * @output: - * aface :: - * A handle to the face object. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The returned @FT_Face object is always owned by the manager. You - * should never try to discard it yourself. - * - * The @FT_Face object doesn't necessarily have a current size object - * (i.e., face->size can be~0). If you need a specific 'font size', use - * @FTC_Manager_LookupSize instead. - * - * Never change the face's transformation matrix (i.e., never call the - * @FT_Set_Transform function) on a returned face! If you need to - * transform glyphs, do it yourself after glyph loading. - * - * When you perform a lookup, out-of-memory errors are detected _within_ - * the lookup and force incremental flushes of the cache until enough - * memory is released for the lookup to succeed. - * - * If a lookup fails with `FT_Err_Out_Of_Memory` the cache has already - * been completely flushed, and still no memory was available for the - * operation. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FTC_Manager_LookupFace */ + /* */ + /* <Description> */ + /* Retrieve the @FT_Face object that corresponds to a given face ID */ + /* through a cache manager. */ + /* */ + /* <Input> */ + /* manager :: A handle to the cache manager. */ + /* */ + /* face_id :: The ID of the face object. */ + /* */ + /* <Output> */ + /* aface :: A handle to the face object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* The returned @FT_Face object is always owned by the manager. You */ + /* should never try to discard it yourself. */ + /* */ + /* The @FT_Face object doesn't necessarily have a current size object */ + /* (i.e., face->size can be~0). If you need a specific `font size', */ + /* use @FTC_Manager_LookupSize instead. */ + /* */ + /* Never change the face's transformation matrix (i.e., never call */ + /* the @FT_Set_Transform function) on a returned face! If you need */ + /* to transform glyphs, do it yourself after glyph loading. */ + /* */ + /* When you perform a lookup, out-of-memory errors are detected */ + /* _within_ the lookup and force incremental flushes of the cache */ + /* until enough memory is released for the lookup to succeed. */ + /* */ + /* If a lookup fails with `FT_Err_Out_Of_Memory' the cache has */ + /* already been completely flushed, and still no memory was available */ + /* for the operation. */ + /* */ FT_EXPORT( FT_Error ) FTC_Manager_LookupFace( FTC_Manager manager, FTC_FaceID face_id, FT_Face *aface ); - /************************************************************************** - * - * @struct: - * FTC_ScalerRec - * - * @description: - * A structure used to describe a given character size in either pixels - * or points to the cache manager. See @FTC_Manager_LookupSize. - * - * @fields: - * face_id :: - * The source face ID. - * - * width :: - * The character width. - * - * height :: - * The character height. - * - * pixel :: - * A Boolean. If 1, the `width` and `height` fields are interpreted as - * integer pixel character sizes. Otherwise, they are expressed as - * 1/64th of points. - * - * x_res :: - * Only used when `pixel` is value~0 to indicate the horizontal - * resolution in dpi. - * - * y_res :: - * Only used when `pixel` is value~0 to indicate the vertical - * resolution in dpi. - * - * @note: - * This type is mainly used to retrieve @FT_Size objects through the - * cache manager. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FTC_ScalerRec */ + /* */ + /* <Description> */ + /* A structure used to describe a given character size in either */ + /* pixels or points to the cache manager. See */ + /* @FTC_Manager_LookupSize. */ + /* */ + /* <Fields> */ + /* face_id :: The source face ID. */ + /* */ + /* width :: The character width. */ + /* */ + /* height :: The character height. */ + /* */ + /* pixel :: A Boolean. If 1, the `width' and `height' fields are */ + /* interpreted as integer pixel character sizes. */ + /* Otherwise, they are expressed as 1/64th of points. */ + /* */ + /* x_res :: Only used when `pixel' is value~0 to indicate the */ + /* horizontal resolution in dpi. */ + /* */ + /* y_res :: Only used when `pixel' is value~0 to indicate the */ + /* vertical resolution in dpi. */ + /* */ + /* <Note> */ + /* This type is mainly used to retrieve @FT_Size objects through the */ + /* cache manager. */ + /* */ typedef struct FTC_ScalerRec_ { FTC_FaceID face_id; @@ -450,93 +434,89 @@ FT_BEGIN_HEADER } FTC_ScalerRec; - /************************************************************************** - * - * @struct: - * FTC_Scaler - * - * @description: - * A handle to an @FTC_ScalerRec structure. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FTC_Scaler */ + /* */ + /* <Description> */ + /* A handle to an @FTC_ScalerRec structure. */ + /* */ typedef struct FTC_ScalerRec_* FTC_Scaler; - /************************************************************************** - * - * @function: - * FTC_Manager_LookupSize - * - * @description: - * Retrieve the @FT_Size object that corresponds to a given - * @FTC_ScalerRec pointer through a cache manager. - * - * @input: - * manager :: - * A handle to the cache manager. - * - * scaler :: - * A scaler handle. - * - * @output: - * asize :: - * A handle to the size object. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The returned @FT_Size object is always owned by the manager. You - * should never try to discard it by yourself. - * - * You can access the parent @FT_Face object simply as `size->face` if - * you need it. Note that this object is also owned by the manager. - * - * @note: - * When you perform a lookup, out-of-memory errors are detected _within_ - * the lookup and force incremental flushes of the cache until enough - * memory is released for the lookup to succeed. - * - * If a lookup fails with `FT_Err_Out_Of_Memory` the cache has already - * been completely flushed, and still no memory is available for the - * operation. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FTC_Manager_LookupSize */ + /* */ + /* <Description> */ + /* Retrieve the @FT_Size object that corresponds to a given */ + /* @FTC_ScalerRec pointer through a cache manager. */ + /* */ + /* <Input> */ + /* manager :: A handle to the cache manager. */ + /* */ + /* scaler :: A scaler handle. */ + /* */ + /* <Output> */ + /* asize :: A handle to the size object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* The returned @FT_Size object is always owned by the manager. You */ + /* should never try to discard it by yourself. */ + /* */ + /* You can access the parent @FT_Face object simply as `size->face' */ + /* if you need it. Note that this object is also owned by the */ + /* manager. */ + /* */ + /* <Note> */ + /* When you perform a lookup, out-of-memory errors are detected */ + /* _within_ the lookup and force incremental flushes of the cache */ + /* until enough memory is released for the lookup to succeed. */ + /* */ + /* If a lookup fails with `FT_Err_Out_Of_Memory' the cache has */ + /* already been completely flushed, and still no memory is available */ + /* for the operation. */ + /* */ FT_EXPORT( FT_Error ) FTC_Manager_LookupSize( FTC_Manager manager, FTC_Scaler scaler, FT_Size *asize ); - /************************************************************************** - * - * @function: - * FTC_Node_Unref - * - * @description: - * Decrement a cache node's internal reference count. When the count - * reaches 0, it is not destroyed but becomes eligible for subsequent - * cache flushes. - * - * @input: - * node :: - * The cache node handle. - * - * manager :: - * The cache manager handle. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FTC_Node_Unref */ + /* */ + /* <Description> */ + /* Decrement a cache node's internal reference count. When the count */ + /* reaches 0, it is not destroyed but becomes eligible for subsequent */ + /* cache flushes. */ + /* */ + /* <Input> */ + /* node :: The cache node handle. */ + /* */ + /* manager :: The cache manager handle. */ + /* */ FT_EXPORT( void ) FTC_Node_Unref( FTC_Node node, FTC_Manager manager ); - /************************************************************************** + /************************************************************************* * * @function: * FTC_Manager_RemoveFaceID * * @description: - * A special function used to indicate to the cache manager that a given - * @FTC_FaceID is no longer valid, either because its content changed, or - * because it was deallocated or uninstalled. + * A special function used to indicate to the cache manager that + * a given @FTC_FaceID is no longer valid, either because its + * content changed, or because it was deallocated or uninstalled. * * @input: * manager :: @@ -547,11 +527,11 @@ FT_BEGIN_HEADER * * @note: * This function flushes all nodes from the cache corresponding to this - * `face_id`, with the exception of nodes with a non-null reference + * `face_id', with the exception of nodes with a non-null reference * count. * - * Such nodes are however modified internally so as to never appear in - * later lookups with the same `face_id` value, and to be immediately + * Such nodes are however modified internally so as to never appear + * in later lookups with the same `face_id' value, and to be immediately * destroyed when released by all their users. * */ @@ -560,20 +540,27 @@ FT_BEGIN_HEADER FTC_FaceID face_id ); - /************************************************************************** + /*************************************************************************/ + /* */ + /* <Section> */ + /* cache_subsystem */ + /* */ + /*************************************************************************/ + + /************************************************************************* * * @type: * FTC_CMapCache * * @description: - * An opaque handle used to model a charmap cache. This cache is to hold - * character codes -> glyph indices mappings. + * An opaque handle used to model a charmap cache. This cache is to + * hold character codes -> glyph indices mappings. * */ typedef struct FTC_CMapCacheRec_* FTC_CMapCache; - /************************************************************************** + /************************************************************************* * * @function: * FTC_CMapCache_New @@ -587,7 +574,7 @@ FT_BEGIN_HEADER * * @output: * acache :: - * A new cache handle. `NULL` in case of error. + * A new cache handle. NULL in case of error. * * @return: * FreeType error code. 0~means success. @@ -602,7 +589,7 @@ FT_BEGIN_HEADER FTC_CMapCache *acache ); - /************************************************************************** + /************************************************************************ * * @function: * FTC_CMapCache_Lookup @@ -626,7 +613,7 @@ FT_BEGIN_HEADER * The character code (in the corresponding charmap). * * @return: - * Glyph index. 0~means 'no glyph'. + * Glyph index. 0~means `no glyph'. * */ FT_EXPORT( FT_UInt ) @@ -636,6 +623,14 @@ FT_BEGIN_HEADER FT_UInt32 char_code ); + /*************************************************************************/ + /* */ + /* <Section> */ + /* cache_subsystem */ + /* */ + /*************************************************************************/ + + /*************************************************************************/ /*************************************************************************/ /*************************************************************************/ @@ -647,7 +642,7 @@ FT_BEGIN_HEADER /*************************************************************************/ - /************************************************************************** + /************************************************************************* * * @struct: * FTC_ImageTypeRec @@ -672,14 +667,14 @@ FT_BEGIN_HEADER typedef struct FTC_ImageTypeRec_ { FTC_FaceID face_id; - FT_UInt width; - FT_UInt height; + FT_Int width; + FT_Int height; FT_Int32 flags; } FTC_ImageTypeRec; - /************************************************************************** + /************************************************************************* * * @type: * FTC_ImageType @@ -700,87 +695,83 @@ FT_BEGIN_HEADER (d1)->flags == (d2)->flags ) - /************************************************************************** - * - * @type: - * FTC_ImageCache - * - * @description: - * A handle to a glyph image cache object. They are designed to hold - * many distinct glyph images while not exceeding a certain memory - * threshold. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FTC_ImageCache */ + /* */ + /* <Description> */ + /* A handle to a glyph image cache object. They are designed to */ + /* hold many distinct glyph images while not exceeding a certain */ + /* memory threshold. */ + /* */ typedef struct FTC_ImageCacheRec_* FTC_ImageCache; - /************************************************************************** - * - * @function: - * FTC_ImageCache_New - * - * @description: - * Create a new glyph image cache. - * - * @input: - * manager :: - * The parent manager for the image cache. - * - * @output: - * acache :: - * A handle to the new glyph image cache object. - * - * @return: - * FreeType error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FTC_ImageCache_New */ + /* */ + /* <Description> */ + /* Create a new glyph image cache. */ + /* */ + /* <Input> */ + /* manager :: The parent manager for the image cache. */ + /* */ + /* <Output> */ + /* acache :: A handle to the new glyph image cache object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FTC_ImageCache_New( FTC_Manager manager, FTC_ImageCache *acache ); - /************************************************************************** - * - * @function: - * FTC_ImageCache_Lookup - * - * @description: - * Retrieve a given glyph image from a glyph image cache. - * - * @input: - * cache :: - * A handle to the source glyph image cache. - * - * type :: - * A pointer to a glyph image type descriptor. - * - * gindex :: - * The glyph index to retrieve. - * - * @output: - * aglyph :: - * The corresponding @FT_Glyph object. 0~in case of failure. - * - * anode :: - * Used to return the address of the corresponding cache node after - * incrementing its reference count (see note below). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The returned glyph is owned and managed by the glyph image cache. - * Never try to transform or discard it manually! You can however create - * a copy with @FT_Glyph_Copy and modify the new one. - * - * If `anode` is _not_ `NULL`, it receives the address of the cache node - * containing the glyph image, after increasing its reference count. - * This ensures that the node (as well as the @FT_Glyph) will always be - * kept in the cache until you call @FTC_Node_Unref to 'release' it. - * - * If `anode` is `NULL`, the cache node is left unchanged, which means - * that the @FT_Glyph could be flushed out of the cache on the next call - * to one of the caching sub-system APIs. Don't assume that it is - * persistent! - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FTC_ImageCache_Lookup */ + /* */ + /* <Description> */ + /* Retrieve a given glyph image from a glyph image cache. */ + /* */ + /* <Input> */ + /* cache :: A handle to the source glyph image cache. */ + /* */ + /* type :: A pointer to a glyph image type descriptor. */ + /* */ + /* gindex :: The glyph index to retrieve. */ + /* */ + /* <Output> */ + /* aglyph :: The corresponding @FT_Glyph object. 0~in case of */ + /* failure. */ + /* */ + /* anode :: Used to return the address of of the corresponding cache */ + /* node after incrementing its reference count (see note */ + /* below). */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* The returned glyph is owned and managed by the glyph image cache. */ + /* Never try to transform or discard it manually! You can however */ + /* create a copy with @FT_Glyph_Copy and modify the new one. */ + /* */ + /* If `anode' is _not_ NULL, it receives the address of the cache */ + /* node containing the glyph image, after increasing its reference */ + /* count. This ensures that the node (as well as the @FT_Glyph) will */ + /* always be kept in the cache until you call @FTC_Node_Unref to */ + /* `release' it. */ + /* */ + /* If `anode' is NULL, the cache node is left unchanged, which means */ + /* that the @FT_Glyph could be flushed out of the cache on the next */ + /* call to one of the caching sub-system APIs. Don't assume that it */ + /* is persistent! */ + /* */ FT_EXPORT( FT_Error ) FTC_ImageCache_Lookup( FTC_ImageCache cache, FTC_ImageType type, @@ -789,57 +780,54 @@ FT_BEGIN_HEADER FTC_Node *anode ); - /************************************************************************** - * - * @function: - * FTC_ImageCache_LookupScaler - * - * @description: - * A variant of @FTC_ImageCache_Lookup that uses an @FTC_ScalerRec to - * specify the face ID and its size. - * - * @input: - * cache :: - * A handle to the source glyph image cache. - * - * scaler :: - * A pointer to a scaler descriptor. - * - * load_flags :: - * The corresponding load flags. - * - * gindex :: - * The glyph index to retrieve. - * - * @output: - * aglyph :: - * The corresponding @FT_Glyph object. 0~in case of failure. - * - * anode :: - * Used to return the address of the corresponding cache node after - * incrementing its reference count (see note below). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The returned glyph is owned and managed by the glyph image cache. - * Never try to transform or discard it manually! You can however create - * a copy with @FT_Glyph_Copy and modify the new one. - * - * If `anode` is _not_ `NULL`, it receives the address of the cache node - * containing the glyph image, after increasing its reference count. - * This ensures that the node (as well as the @FT_Glyph) will always be - * kept in the cache until you call @FTC_Node_Unref to 'release' it. - * - * If `anode` is `NULL`, the cache node is left unchanged, which means - * that the @FT_Glyph could be flushed out of the cache on the next call - * to one of the caching sub-system APIs. Don't assume that it is - * persistent! - * - * Calls to @FT_Set_Char_Size and friends have no effect on cached - * glyphs; you should always use the FreeType cache API instead. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FTC_ImageCache_LookupScaler */ + /* */ + /* <Description> */ + /* A variant of @FTC_ImageCache_Lookup that uses an @FTC_ScalerRec */ + /* to specify the face ID and its size. */ + /* */ + /* <Input> */ + /* cache :: A handle to the source glyph image cache. */ + /* */ + /* scaler :: A pointer to a scaler descriptor. */ + /* */ + /* load_flags :: The corresponding load flags. */ + /* */ + /* gindex :: The glyph index to retrieve. */ + /* */ + /* <Output> */ + /* aglyph :: The corresponding @FT_Glyph object. 0~in case of */ + /* failure. */ + /* */ + /* anode :: Used to return the address of of the corresponding */ + /* cache node after incrementing its reference count */ + /* (see note below). */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* The returned glyph is owned and managed by the glyph image cache. */ + /* Never try to transform or discard it manually! You can however */ + /* create a copy with @FT_Glyph_Copy and modify the new one. */ + /* */ + /* If `anode' is _not_ NULL, it receives the address of the cache */ + /* node containing the glyph image, after increasing its reference */ + /* count. This ensures that the node (as well as the @FT_Glyph) will */ + /* always be kept in the cache until you call @FTC_Node_Unref to */ + /* `release' it. */ + /* */ + /* If `anode' is NULL, the cache node is left unchanged, which means */ + /* that the @FT_Glyph could be flushed out of the cache on the next */ + /* call to one of the caching sub-system APIs. Don't assume that it */ + /* is persistent! */ + /* */ + /* Calls to @FT_Set_Char_Size and friends have no effect on cached */ + /* glyphs; you should always use the FreeType cache API instead. */ + /* */ FT_EXPORT( FT_Error ) FTC_ImageCache_LookupScaler( FTC_ImageCache cache, FTC_Scaler scaler, @@ -849,60 +837,53 @@ FT_BEGIN_HEADER FTC_Node *anode ); - /************************************************************************** - * - * @type: - * FTC_SBit - * - * @description: - * A handle to a small bitmap descriptor. See the @FTC_SBitRec structure - * for details. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FTC_SBit */ + /* */ + /* <Description> */ + /* A handle to a small bitmap descriptor. See the @FTC_SBitRec */ + /* structure for details. */ + /* */ typedef struct FTC_SBitRec_* FTC_SBit; - /************************************************************************** - * - * @struct: - * FTC_SBitRec - * - * @description: - * A very compact structure used to describe a small glyph bitmap. - * - * @fields: - * width :: - * The bitmap width in pixels. - * - * height :: - * The bitmap height in pixels. - * - * left :: - * The horizontal distance from the pen position to the left bitmap - * border (a.k.a. 'left side bearing', or 'lsb'). - * - * top :: - * The vertical distance from the pen position (on the baseline) to the - * upper bitmap border (a.k.a. 'top side bearing'). The distance is - * positive for upwards y~coordinates. - * - * format :: - * The format of the glyph bitmap (monochrome or gray). - * - * max_grays :: - * Maximum gray level value (in the range 1 to~255). - * - * pitch :: - * The number of bytes per bitmap line. May be positive or negative. - * - * xadvance :: - * The horizontal advance width in pixels. - * - * yadvance :: - * The vertical advance height in pixels. - * - * buffer :: - * A pointer to the bitmap pixels. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FTC_SBitRec */ + /* */ + /* <Description> */ + /* A very compact structure used to describe a small glyph bitmap. */ + /* */ + /* <Fields> */ + /* width :: The bitmap width in pixels. */ + /* */ + /* height :: The bitmap height in pixels. */ + /* */ + /* left :: The horizontal distance from the pen position to the */ + /* left bitmap border (a.k.a. `left side bearing', or */ + /* `lsb'). */ + /* */ + /* top :: The vertical distance from the pen position (on the */ + /* baseline) to the upper bitmap border (a.k.a. `top */ + /* side bearing'). The distance is positive for upwards */ + /* y~coordinates. */ + /* */ + /* format :: The format of the glyph bitmap (monochrome or gray). */ + /* */ + /* max_grays :: Maximum gray level value (in the range 1 to~255). */ + /* */ + /* pitch :: The number of bytes per bitmap line. May be positive */ + /* or negative. */ + /* */ + /* xadvance :: The horizontal advance width in pixels. */ + /* */ + /* yadvance :: The vertical advance height in pixels. */ + /* */ + /* buffer :: A pointer to the bitmap pixels. */ + /* */ typedef struct FTC_SBitRec_ { FT_Byte width; @@ -921,93 +902,87 @@ FT_BEGIN_HEADER } FTC_SBitRec; - /************************************************************************** - * - * @type: - * FTC_SBitCache - * - * @description: - * A handle to a small bitmap cache. These are special cache objects - * used to store small glyph bitmaps (and anti-aliased pixmaps) in a much - * more efficient way than the traditional glyph image cache implemented - * by @FTC_ImageCache. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FTC_SBitCache */ + /* */ + /* <Description> */ + /* A handle to a small bitmap cache. These are special cache objects */ + /* used to store small glyph bitmaps (and anti-aliased pixmaps) in a */ + /* much more efficient way than the traditional glyph image cache */ + /* implemented by @FTC_ImageCache. */ + /* */ typedef struct FTC_SBitCacheRec_* FTC_SBitCache; - /************************************************************************** - * - * @function: - * FTC_SBitCache_New - * - * @description: - * Create a new cache to store small glyph bitmaps. - * - * @input: - * manager :: - * A handle to the source cache manager. - * - * @output: - * acache :: - * A handle to the new sbit cache. `NULL` in case of error. - * - * @return: - * FreeType error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FTC_SBitCache_New */ + /* */ + /* <Description> */ + /* Create a new cache to store small glyph bitmaps. */ + /* */ + /* <Input> */ + /* manager :: A handle to the source cache manager. */ + /* */ + /* <Output> */ + /* acache :: A handle to the new sbit cache. NULL in case of error. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FTC_SBitCache_New( FTC_Manager manager, FTC_SBitCache *acache ); - /************************************************************************** - * - * @function: - * FTC_SBitCache_Lookup - * - * @description: - * Look up a given small glyph bitmap in a given sbit cache and 'lock' it - * to prevent its flushing from the cache until needed. - * - * @input: - * cache :: - * A handle to the source sbit cache. - * - * type :: - * A pointer to the glyph image type descriptor. - * - * gindex :: - * The glyph index. - * - * @output: - * sbit :: - * A handle to a small bitmap descriptor. - * - * anode :: - * Used to return the address of the corresponding cache node after - * incrementing its reference count (see note below). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The small bitmap descriptor and its bit buffer are owned by the cache - * and should never be freed by the application. They might as well - * disappear from memory on the next cache lookup, so don't treat them as - * persistent data. - * - * The descriptor's `buffer` field is set to~0 to indicate a missing - * glyph bitmap. - * - * If `anode` is _not_ `NULL`, it receives the address of the cache node - * containing the bitmap, after increasing its reference count. This - * ensures that the node (as well as the image) will always be kept in - * the cache until you call @FTC_Node_Unref to 'release' it. - * - * If `anode` is `NULL`, the cache node is left unchanged, which means - * that the bitmap could be flushed out of the cache on the next call to - * one of the caching sub-system APIs. Don't assume that it is - * persistent! - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FTC_SBitCache_Lookup */ + /* */ + /* <Description> */ + /* Look up a given small glyph bitmap in a given sbit cache and */ + /* `lock' it to prevent its flushing from the cache until needed. */ + /* */ + /* <Input> */ + /* cache :: A handle to the source sbit cache. */ + /* */ + /* type :: A pointer to the glyph image type descriptor. */ + /* */ + /* gindex :: The glyph index. */ + /* */ + /* <Output> */ + /* sbit :: A handle to a small bitmap descriptor. */ + /* */ + /* anode :: Used to return the address of of the corresponding cache */ + /* node after incrementing its reference count (see note */ + /* below). */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* The small bitmap descriptor and its bit buffer are owned by the */ + /* cache and should never be freed by the application. They might */ + /* as well disappear from memory on the next cache lookup, so don't */ + /* treat them as persistent data. */ + /* */ + /* The descriptor's `buffer' field is set to~0 to indicate a missing */ + /* glyph bitmap. */ + /* */ + /* If `anode' is _not_ NULL, it receives the address of the cache */ + /* node containing the bitmap, after increasing its reference count. */ + /* This ensures that the node (as well as the image) will always be */ + /* kept in the cache until you call @FTC_Node_Unref to `release' it. */ + /* */ + /* If `anode' is NULL, the cache node is left unchanged, which means */ + /* that the bitmap could be flushed out of the cache on the next */ + /* call to one of the caching sub-system APIs. Don't assume that it */ + /* is persistent! */ + /* */ FT_EXPORT( FT_Error ) FTC_SBitCache_Lookup( FTC_SBitCache cache, FTC_ImageType type, @@ -1016,58 +991,53 @@ FT_BEGIN_HEADER FTC_Node *anode ); - /************************************************************************** - * - * @function: - * FTC_SBitCache_LookupScaler - * - * @description: - * A variant of @FTC_SBitCache_Lookup that uses an @FTC_ScalerRec to - * specify the face ID and its size. - * - * @input: - * cache :: - * A handle to the source sbit cache. - * - * scaler :: - * A pointer to the scaler descriptor. - * - * load_flags :: - * The corresponding load flags. - * - * gindex :: - * The glyph index. - * - * @output: - * sbit :: - * A handle to a small bitmap descriptor. - * - * anode :: - * Used to return the address of the corresponding cache node after - * incrementing its reference count (see note below). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The small bitmap descriptor and its bit buffer are owned by the cache - * and should never be freed by the application. They might as well - * disappear from memory on the next cache lookup, so don't treat them as - * persistent data. - * - * The descriptor's `buffer` field is set to~0 to indicate a missing - * glyph bitmap. - * - * If `anode` is _not_ `NULL`, it receives the address of the cache node - * containing the bitmap, after increasing its reference count. This - * ensures that the node (as well as the image) will always be kept in - * the cache until you call @FTC_Node_Unref to 'release' it. - * - * If `anode` is `NULL`, the cache node is left unchanged, which means - * that the bitmap could be flushed out of the cache on the next call to - * one of the caching sub-system APIs. Don't assume that it is - * persistent! - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FTC_SBitCache_LookupScaler */ + /* */ + /* <Description> */ + /* A variant of @FTC_SBitCache_Lookup that uses an @FTC_ScalerRec */ + /* to specify the face ID and its size. */ + /* */ + /* <Input> */ + /* cache :: A handle to the source sbit cache. */ + /* */ + /* scaler :: A pointer to the scaler descriptor. */ + /* */ + /* load_flags :: The corresponding load flags. */ + /* */ + /* gindex :: The glyph index. */ + /* */ + /* <Output> */ + /* sbit :: A handle to a small bitmap descriptor. */ + /* */ + /* anode :: Used to return the address of of the corresponding */ + /* cache node after incrementing its reference count */ + /* (see note below). */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* The small bitmap descriptor and its bit buffer are owned by the */ + /* cache and should never be freed by the application. They might */ + /* as well disappear from memory on the next cache lookup, so don't */ + /* treat them as persistent data. */ + /* */ + /* The descriptor's `buffer' field is set to~0 to indicate a missing */ + /* glyph bitmap. */ + /* */ + /* If `anode' is _not_ NULL, it receives the address of the cache */ + /* node containing the bitmap, after increasing its reference count. */ + /* This ensures that the node (as well as the image) will always be */ + /* kept in the cache until you call @FTC_Node_Unref to `release' it. */ + /* */ + /* If `anode' is NULL, the cache node is left unchanged, which means */ + /* that the bitmap could be flushed out of the cache on the next */ + /* call to one of the caching sub-system APIs. Don't assume that it */ + /* is persistent! */ + /* */ FT_EXPORT( FT_Error ) FTC_SBitCache_LookupScaler( FTC_SBitCache cache, FTC_Scaler scaler, @@ -1081,7 +1051,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTCACHE_H_ */ +#endif /* __FTCACHE_H__ */ /* END */ diff --git a/win64/include/freetype/ftcffdrv.h b/win64/include/freetype/ftcffdrv.h new file mode 100644 index 00000000..f7031bc8 --- /dev/null +++ b/win64/include/freetype/ftcffdrv.h @@ -0,0 +1,262 @@ +/***************************************************************************/ +/* */ +/* ftcffdrv.h */ +/* */ +/* FreeType API for controlling the CFF driver (specification only). */ +/* */ +/* Copyright 2013, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __FTCFFDRV_H__ +#define __FTCFFDRV_H__ + +#include <ft2build.h> +#include FT_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: + * cff_driver + * + * @title: + * The CFF driver + * + * @abstract: + * Controlling the CFF driver module. + * + * @description: + * While FreeType's CFF driver doesn't expose API functions by itself, + * it is possible to control its behaviour with @FT_Property_Set and + * @FT_Property_Get. The list below gives the available properties + * together with the necessary macros and structures. + * + * The CFF driver's module name is `cff'. + * + * *Hinting* *and* *antialiasing* *principles* *of* *the* *new* *engine* + * + * The rasterizer is positioning horizontal features (e.g., ascender + * height & x-height, or crossbars) on the pixel grid and minimizing the + * amount of antialiasing applied to them, while placing vertical + * features (vertical stems) on the pixel grid without hinting, thus + * representing the stem position and weight accurately. Sometimes the + * vertical stems may be only partially black. In this context, + * `antialiasing' means that stems are not positioned exactly on pixel + * borders, causing a fuzzy appearance. + * + * There are two principles behind this approach. + * + * 1) No hinting in the horizontal direction: Unlike `superhinted' + * TrueType, which changes glyph widths to accommodate regular + * inter-glyph spacing, Adobe's approach is `faithful to the design' in + * representing both the glyph width and the inter-glyph spacing + * designed for the font. This makes the screen display as close as it + * can be to the result one would get with infinite resolution, while + * preserving what is considered the key characteristics of each glyph. + * Note that the distances between unhinted and grid-fitted positions at + * small sizes are comparable to kerning values and thus would be + * noticeable (and distracting) while reading if hinting were applied. + * + * One of the reasons to not hint horizontally is antialiasing for LCD + * screens: The pixel geometry of modern displays supplies three + * vertical sub-pixels as the eye moves horizontally across each visible + * pixel. On devices where we can be certain this characteristic is + * present a rasterizer can take advantage of the sub-pixels to add + * increments of weight. In Western writing systems this turns out to + * be the more critical direction anyway; the weights and spacing of + * vertical stems (see above) are central to Armenian, Cyrillic, Greek, + * and Latin type designs. Even when the rasterizer uses greyscale + * antialiasing instead of color (a necessary compromise when one + * doesn't know the screen characteristics), the unhinted vertical + * features preserve the design's weight and spacing much better than + * aliased type would. + * + * 2) Aligment in the vertical direction: Weights and spacing along the + * y~axis are less critical; what is much more important is the visual + * alignment of related features (like cap-height and x-height). The + * sense of alignment for these is enhanced by the sharpness of grid-fit + * edges, while the cruder vertical resolution (full pixels instead of + * 1/3 pixels) is less of a problem. + * + * On the technical side, horizontal alignment zones for ascender, + * x-height, and other important height values (traditionally called + * `blue zones') as defined in the font are positioned independently, + * each being rounded to the nearest pixel edge, taking care of + * overshoot suppression at small sizes, stem darkening, and scaling. + * + * Hstems (this is, hint values defined in the font to help align + * horizontal features) that fall within a blue zone are said to be + * `captured' and are aligned to that zone. Uncaptured stems are moved + * in one of four ways, top edge up or down, bottom edge up or down. + * Unless there are conflicting hstems, the smallest movement is taken + * to minimize distortion. + * + * @order: + * hinting-engine + * no-stem-darkening + * darkening-parameters + * + */ + + + /************************************************************************** + * + * @property: + * hinting-engine + * + * @description: + * Thanks to Adobe, which contributed a new hinting (and parsing) + * engine, an application can select between `freetype' and `adobe' if + * compiled with CFF_CONFIG_OPTION_OLD_ENGINE. If this configuration + * macro isn't defined, `hinting-engine' does nothing. + * + * The default engine is `freetype' if CFF_CONFIG_OPTION_OLD_ENGINE is + * defined, and `adobe' otherwise. + * + * The following example code demonstrates how to select Adobe's hinting + * engine (omitting the error handling). + * + * { + * FT_Library library; + * FT_UInt hinting_engine = FT_CFF_HINTING_ADOBE; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "cff", + * "hinting-engine", &hinting_engine ); + * } + * + * @note: + * This property can be used with @FT_Property_Get also. + * + */ + + + /************************************************************************** + * + * @enum: + * FT_CFF_HINTING_XXX + * + * @description: + * A list of constants used for the @hinting-engine property to select + * the hinting engine for CFF fonts. + * + * @values: + * FT_CFF_HINTING_FREETYPE :: + * Use the old FreeType hinting engine. + * + * FT_CFF_HINTING_ADOBE :: + * Use the hinting engine contributed by Adobe. + * + */ +#define FT_CFF_HINTING_FREETYPE 0 +#define FT_CFF_HINTING_ADOBE 1 + + + /************************************************************************** + * + * @property: + * no-stem-darkening + * + * @description: + * By default, the Adobe CFF engine darkens stems at smaller sizes, + * regardless of hinting, to enhance contrast. This feature requires + * a rendering system with proper gamma correction. Setting this + * property, stem darkening gets switched off. + * + * Note that stem darkening is never applied if @FT_LOAD_NO_SCALE is set. + * + * { + * FT_Library library; + * FT_Bool no_stem_darkening = TRUE; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "cff", + * "no-stem-darkening", &no_stem_darkening ); + * } + * + * @note: + * This property can be used with @FT_Property_Get also. + * + */ + + + /************************************************************************** + * + * @property: + * darkening-parameters + * + * @description: + * By default, the Adobe CFF engine darkens stems as follows (if the + * `no-stem-darkening' property isn't set): + * + * { + * stem width <= 0.5px: darkening amount = 0.4px + * stem width = 1px: darkening amount = 0.275px + * stem width = 1.667px: darkening amount = 0.275px + * stem width >= 2.333px: darkening amount = 0px + * } + * + * and piecewise linear in-between. At configuration time, these four + * control points can be set with the macro + * `CFF_CONFIG_OPTION_DARKENING_PARAMETERS'. At runtime, the control + * points can be changed using the `darkening-parameters' property, as + * the following example demonstrates. + * + * { + * FT_Library library; + * FT_Int darken_params[8] = { 500, 300, // x1, y1 + * 1000, 200, // x2, y2 + * 1500, 100, // x3, y3 + * 2000, 0 }; // x4, y4 + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "cff", + * "darkening-parameters", darken_params ); + * } + * + * The x~values give the stem width, and the y~values the darkening + * amount. The unit is 1000th of pixels. All coordinate values must be + * positive; the x~values must be monotonically increasing; the + * y~values must be monotonically decreasing and smaller than or + * equal to 500 (corresponding to half a pixel); the slope of each + * linear piece must be shallower than -1 (e.g., -.4). + * + * @note: + * This property can be used with @FT_Property_Get also. + * + */ + + /* */ + + +FT_END_HEADER + + +#endif /* __FTCFFDRV_H__ */ + + +/* END */ diff --git a/win64/include/freetype/ftchapters.h b/win64/include/freetype/ftchapters.h index 2ee26973..d333761c 100644 --- a/win64/include/freetype/ftchapters.h +++ b/win64/include/freetype/ftchapters.h @@ -1,145 +1,121 @@ -/**************************************************************************** - * - * This file defines the structure of the FreeType reference. - * It is used by the python script that generates the HTML files. - * - */ +/***************************************************************************/ +/* */ +/* This file defines the structure of the FreeType reference. */ +/* It is used by the python script that generates the HTML files. */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * @chapter: - * general_remarks - * - * @title: - * General Remarks - * - * @sections: - * header_inclusion - * user_allocation - * - */ +/***************************************************************************/ +/* */ +/* <Chapter> */ +/* general_remarks */ +/* */ +/* <Title> */ +/* General Remarks */ +/* */ +/* <Sections> */ +/* header_inclusion */ +/* user_allocation */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * @chapter: - * core_api - * - * @title: - * Core API - * - * @sections: - * version - * basic_types - * base_interface - * glyph_variants - * color_management - * layer_management - * glyph_management - * mac_specific - * sizes_management - * header_file_macros - * - */ +/***************************************************************************/ +/* */ +/* <Chapter> */ +/* core_api */ +/* */ +/* <Title> */ +/* Core API */ +/* */ +/* <Sections> */ +/* version */ +/* basic_types */ +/* base_interface */ +/* glyph_variants */ +/* glyph_management */ +/* mac_specific */ +/* sizes_management */ +/* header_file_macros */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * @chapter: - * format_specific - * - * @title: - * Format-Specific API - * - * @sections: - * multiple_masters - * truetype_tables - * type1_tables - * sfnt_names - * bdf_fonts - * cid_fonts - * pfr_fonts - * winfnt_fonts - * font_formats - * gasp_table - * - */ +/***************************************************************************/ +/* */ +/* <Chapter> */ +/* format_specific */ +/* */ +/* <Title> */ +/* Format-Specific API */ +/* */ +/* <Sections> */ +/* multiple_masters */ +/* 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 - * - */ +/***************************************************************************/ +/* */ +/* <Chapter> */ +/* module_specific */ +/* */ +/* <Title> */ +/* Controlling FreeType Modules */ +/* */ +/* <Sections> */ +/* auto_hinter */ +/* cff_driver */ +/* tt_driver */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * @chapter: - * cache_subsystem - * - * @title: - * Cache Sub-System - * - * @sections: - * cache_subsystem - * - */ +/***************************************************************************/ +/* */ +/* <Chapter> */ +/* cache_subsystem */ +/* */ +/* <Title> */ +/* Cache Sub-System */ +/* */ +/* <Sections> */ +/* cache_subsystem */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * @chapter: - * support_api - * - * @title: - * Support API - * - * @sections: - * computations - * list_processing - * outline_processing - * quick_advance - * bitmap_handling - * raster - * glyph_stroker - * system_interface - * module_management - * gzip - * lzw - * bzip2 - * - */ - - - /************************************************************************** - * - * @chapter: - * error_codes - * - * @title: - * Error Codes - * - * @sections: - * error_enumerations - * error_code_values - * - */ - - -/* END */ +/***************************************************************************/ +/* */ +/* <Chapter> */ +/* support_api */ +/* */ +/* <Title> */ +/* Support API */ +/* */ +/* <Sections> */ +/* computations */ +/* list_processing */ +/* outline_processing */ +/* quick_advance */ +/* bitmap_handling */ +/* raster */ +/* glyph_stroker */ +/* system_interface */ +/* module_management */ +/* gzip */ +/* lzw */ +/* bzip2 */ +/* lcd_filtering */ +/* */ +/***************************************************************************/ diff --git a/win64/include/freetype/ftcid.h b/win64/include/freetype/ftcid.h index a29fb333..17550d87 100644 --- a/win64/include/freetype/ftcid.h +++ b/win64/include/freetype/ftcid.h @@ -1,25 +1,25 @@ -/**************************************************************************** - * - * ftcid.h - * - * FreeType API for accessing CID font information (specification). - * - * Copyright (C) 2007-2020 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. - * - */ +/***************************************************************************/ +/* */ +/* ftcid.h */ +/* */ +/* FreeType API for accessing CID font information (specification). */ +/* */ +/* Copyright 2007, 2009 by Dereg Clegg, 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. */ +/* */ +/***************************************************************************/ -#ifndef FTCID_H_ -#define FTCID_H_ +#ifndef __FTCID_H__ +#define __FTCID_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -31,25 +31,25 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * cid_fonts - * - * @title: - * CID Fonts - * - * @abstract: - * CID-keyed font-specific API. - * - * @description: - * This section contains the declaration of CID-keyed font-specific - * functions. - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* cid_fonts */ + /* */ + /* <Title> */ + /* CID Fonts */ + /* */ + /* <Abstract> */ + /* CID-keyed font specific API. */ + /* */ + /* <Description> */ + /* This section contains the declaration of CID-keyed font specific */ + /* functions. */ + /* */ + /*************************************************************************/ - /************************************************************************** + /********************************************************************** * * @function: * FT_Get_CID_Registry_Ordering_Supplement @@ -60,17 +60,17 @@ FT_BEGIN_HEADER * * @input: * face :: - * A handle to the input face. + * A handle to the input face. * * @output: * registry :: - * The registry, as a C~string, owned by the face. + * The registry, as a C~string, owned by the face. * * ordering :: - * The ordering, as a C~string, owned by the face. + * The ordering, as a C~string, owned by the face. * * supplement :: - * The supplement. + * The supplement. * * @return: * FreeType error code. 0~means success. @@ -86,33 +86,33 @@ FT_BEGIN_HEADER FT_Get_CID_Registry_Ordering_Supplement( FT_Face face, const char* *registry, const char* *ordering, - FT_Int *supplement ); + FT_Int *supplement); - /************************************************************************** + /********************************************************************** * * @function: * FT_Get_CID_Is_Internally_CID_Keyed * * @description: - * Retrieve the type of the input face, CID keyed or not. In contrast - * to the @FT_IS_CID_KEYED macro this function returns successfully also - * for CID-keyed fonts in an SFNT wrapper. + * Retrieve the type of the input face, CID keyed or not. In + * constrast to the @FT_IS_CID_KEYED macro this function returns + * successfully also for CID-keyed fonts in an SNFT wrapper. * * @input: * face :: - * A handle to the input face. + * A handle to the input face. * * @output: * is_cid :: - * The type of the face as an @FT_Bool. + * The type of the face as an @FT_Bool. * * @return: * FreeType error code. 0~means success. * * @note: - * This function only works with CID faces and OpenType fonts, returning - * an error otherwise. + * This function only works with CID faces and OpenType fonts, + * returning an error otherwise. * * @since: * 2.3.9 @@ -122,7 +122,7 @@ FT_BEGIN_HEADER FT_Bool *is_cid ); - /************************************************************************** + /********************************************************************** * * @function: * FT_Get_CID_From_Glyph_Index @@ -132,21 +132,21 @@ FT_BEGIN_HEADER * * @input: * face :: - * A handle to the input face. + * A handle to the input face. * * glyph_index :: - * The input glyph index. + * The input glyph index. * * @output: * cid :: - * The CID as an @FT_UInt. + * The CID as an @FT_UInt. * * @return: * FreeType error code. 0~means success. * * @note: - * This function only works with CID faces and OpenType fonts, returning - * an error otherwise. + * This function only works with CID faces and OpenType fonts, + * returning an error otherwise. * * @since: * 2.3.9 @@ -161,7 +161,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTCID_H_ */ +#endif /* __FTCID_H__ */ /* END */ diff --git a/win64/include/freetype/ftcolor.h b/win64/include/freetype/ftcolor.h deleted file mode 100644 index ecc6485e..00000000 --- a/win64/include/freetype/ftcolor.h +++ /dev/null @@ -1,313 +0,0 @@ -/**************************************************************************** - * - * ftcolor.h - * - * FreeType's glyph color management (specification). - * - * Copyright (C) 2018-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.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 FTCOLOR_H_ -#define FTCOLOR_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: - * color_management - * - * @title: - * Glyph Color Management - * - * @abstract: - * Retrieving and manipulating OpenType's 'CPAL' table data. - * - * @description: - * The functions described here allow access and manipulation of color - * palette entries in OpenType's 'CPAL' tables. - */ - - - /************************************************************************** - * - * @struct: - * FT_Color - * - * @description: - * This structure models a BGRA color value of a 'CPAL' palette entry. - * - * The used color space is sRGB; the colors are not pre-multiplied, and - * alpha values must be explicitly set. - * - * @fields: - * blue :: - * Blue value. - * - * green :: - * Green value. - * - * red :: - * Red value. - * - * alpha :: - * Alpha value, giving the red, green, and blue color's opacity. - * - * @since: - * 2.10 - */ - typedef struct FT_Color_ - { - FT_Byte blue; - FT_Byte green; - FT_Byte red; - FT_Byte alpha; - - } FT_Color; - - - /************************************************************************** - * - * @enum: - * FT_PALETTE_XXX - * - * @description: - * A list of bit field constants used in the `palette_flags` array of the - * @FT_Palette_Data structure to indicate for which background a palette - * with a given index is usable. - * - * @values: - * FT_PALETTE_FOR_LIGHT_BACKGROUND :: - * The palette is appropriate to use when displaying the font on a - * light background such as white. - * - * FT_PALETTE_FOR_DARK_BACKGROUND :: - * The palette is appropriate to use when displaying the font on a dark - * background such as black. - * - * @since: - * 2.10 - */ -#define FT_PALETTE_FOR_LIGHT_BACKGROUND 0x01 -#define FT_PALETTE_FOR_DARK_BACKGROUND 0x02 - - - /************************************************************************** - * - * @struct: - * FT_Palette_Data - * - * @description: - * This structure holds the data of the 'CPAL' table. - * - * @fields: - * num_palettes :: - * The number of palettes. - * - * palette_name_ids :: - * An optional read-only array of palette name IDs with `num_palettes` - * elements, corresponding to entries like 'dark' or 'light' in the - * font's 'name' table. - * - * An empty name ID in the 'CPAL' table gets represented as value - * 0xFFFF. - * - * `NULL` if the font's 'CPAL' table doesn't contain appropriate data. - * - * palette_flags :: - * An optional read-only array of palette flags with `num_palettes` - * elements. Possible values are an ORed combination of - * @FT_PALETTE_FOR_LIGHT_BACKGROUND and - * @FT_PALETTE_FOR_DARK_BACKGROUND. - * - * `NULL` if the font's 'CPAL' table doesn't contain appropriate data. - * - * num_palette_entries :: - * The number of entries in a single palette. All palettes have the - * same size. - * - * palette_entry_name_ids :: - * An optional read-only array of palette entry name IDs with - * `num_palette_entries`. In each palette, entries with the same index - * have the same function. For example, index~0 might correspond to - * string 'outline' in the font's 'name' table to indicate that this - * palette entry is used for outlines, index~1 might correspond to - * 'fill' to indicate the filling color palette entry, etc. - * - * An empty entry name ID in the 'CPAL' table gets represented as value - * 0xFFFF. - * - * `NULL` if the font's 'CPAL' table doesn't contain appropriate data. - * - * @note: - * Use function @FT_Get_Sfnt_Name to map name IDs and entry name IDs to - * name strings. - * - * Use function @FT_Palette_Select to get the colors associated with a - * palette entry. - * - * @since: - * 2.10 - */ - typedef struct FT_Palette_Data_ { - FT_UShort num_palettes; - const FT_UShort* palette_name_ids; - const FT_UShort* palette_flags; - - FT_UShort num_palette_entries; - const FT_UShort* palette_entry_name_ids; - - } FT_Palette_Data; - - - /************************************************************************** - * - * @function: - * FT_Palette_Data_Get - * - * @description: - * Retrieve the face's color palette data. - * - * @input: - * face :: - * The source face handle. - * - * @output: - * apalette :: - * A pointer to an @FT_Palette_Data structure. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * All arrays in the returned @FT_Palette_Data structure are read-only. - * - * This function always returns an error if the config macro - * `TT_CONFIG_OPTION_COLOR_LAYERS` is not defined in `ftoption.h`. - * - * @since: - * 2.10 - */ - FT_EXPORT( FT_Error ) - FT_Palette_Data_Get( FT_Face face, - FT_Palette_Data *apalette ); - - - /************************************************************************** - * - * @function: - * FT_Palette_Select - * - * @description: - * This function has two purposes. - * - * (1) It activates a palette for rendering color glyphs, and - * - * (2) it retrieves all (unmodified) color entries of this palette. This - * function returns a read-write array, which means that a calling - * application can modify the palette entries on demand. - * - * A corollary of (2) is that calling the function, then modifying some - * values, then calling the function again with the same arguments resets - * all color entries to the original 'CPAL' values; all user modifications - * are lost. - * - * @input: - * face :: - * The source face handle. - * - * palette_index :: - * The palette index. - * - * @output: - * apalette :: - * An array of color entries for a palette with index `palette_index`, - * having `num_palette_entries` elements (as found in the - * `FT_Palette_Data` structure). If `apalette` is set to `NULL`, no - * array gets returned (and no color entries can be modified). - * - * In case the font doesn't support color palettes, `NULL` is returned. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The array pointed to by `apalette_entries` is owned and managed by - * FreeType. - * - * This function always returns an error if the config macro - * `TT_CONFIG_OPTION_COLOR_LAYERS` is not defined in `ftoption.h`. - * - * @since: - * 2.10 - */ - FT_EXPORT( FT_Error ) - FT_Palette_Select( FT_Face face, - FT_UShort palette_index, - FT_Color* *apalette ); - - - /************************************************************************** - * - * @function: - * FT_Palette_Set_Foreground_Color - * - * @description: - * 'COLR' uses palette index 0xFFFF to indicate a 'text foreground - * color'. This function sets this value. - * - * @input: - * face :: - * The source face handle. - * - * foreground_color :: - * An `FT_Color` structure to define the text foreground color. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If this function isn't called, the text foreground color is set to - * white opaque (BGRA value 0xFFFFFFFF) if - * @FT_PALETTE_FOR_DARK_BACKGROUND is present for the current palette, - * and black opaque (BGRA value 0x000000FF) otherwise, including the case - * that no palette types are available in the 'CPAL' table. - * - * This function always returns an error if the config macro - * `TT_CONFIG_OPTION_COLOR_LAYERS` is not defined in `ftoption.h`. - * - * @since: - * 2.10 - */ - FT_EXPORT( FT_Error ) - FT_Palette_Set_Foreground_Color( FT_Face face, - FT_Color foreground_color ); - - /* */ - - -FT_END_HEADER - -#endif /* FTCOLOR_H_ */ - - -/* END */ diff --git a/win64/include/freetype/ftdriver.h b/win64/include/freetype/ftdriver.h deleted file mode 100644 index 804ec34a..00000000 --- a/win64/include/freetype/ftdriver.h +++ /dev/null @@ -1,1227 +0,0 @@ -/**************************************************************************** - * - * ftdriver.h - * - * FreeType API for controlling driver modules (specification only). - * - * Copyright (C) 2017-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.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 FTDRIVER_H_ -#define FTDRIVER_H_ - -#include <freetype/freetype.h> -#include <freetype/ftparams.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: - * auto_hinter - * - * @title: - * The auto-hinter - * - * @abstract: - * Controlling the auto-hinting module. - * - * @description: - * While FreeType's auto-hinter doesn't expose API functions by itself, - * it is possible to control its behaviour with @FT_Property_Set and - * @FT_Property_Get. The following lists the available properties - * together with the necessary macros and structures. - * - * Note that the auto-hinter's module name is 'autofitter' for historical - * reasons. - * - * Available properties are @increase-x-height, @no-stem-darkening - * (experimental), @darkening-parameters (experimental), @warping - * (experimental), @glyph-to-script-map (experimental), @fallback-script - * (experimental), and @default-script (experimental), as documented in - * the @properties section. - * - */ - - - /************************************************************************** - * - * @section: - * cff_driver - * - * @title: - * The CFF driver - * - * @abstract: - * Controlling the CFF driver module. - * - * @description: - * While FreeType's CFF driver doesn't expose API functions by itself, it - * is possible to control its behaviour with @FT_Property_Set and - * @FT_Property_Get. - * - * The CFF driver's module name is 'cff'. - * - * Available properties are @hinting-engine, @no-stem-darkening, - * @darkening-parameters, and @random-seed, as documented in the - * @properties section. - * - * - * **Hinting and antialiasing principles of the new engine** - * - * The rasterizer is positioning horizontal features (e.g., ascender - * height & x-height, or crossbars) on the pixel grid and minimizing the - * amount of antialiasing applied to them, while placing vertical - * features (vertical stems) on the pixel grid without hinting, thus - * representing the stem position and weight accurately. Sometimes the - * vertical stems may be only partially black. In this context, - * 'antialiasing' means that stems are not positioned exactly on pixel - * borders, causing a fuzzy appearance. - * - * There are two principles behind this approach. - * - * 1) No hinting in the horizontal direction: Unlike 'superhinted' - * TrueType, which changes glyph widths to accommodate regular - * inter-glyph spacing, Adobe's approach is 'faithful to the design' in - * representing both the glyph width and the inter-glyph spacing designed - * for the font. This makes the screen display as close as it can be to - * the result one would get with infinite resolution, while preserving - * what is considered the key characteristics of each glyph. Note that - * the distances between unhinted and grid-fitted positions at small - * sizes are comparable to kerning values and thus would be noticeable - * (and distracting) while reading if hinting were applied. - * - * One of the reasons to not hint horizontally is antialiasing for LCD - * screens: The pixel geometry of modern displays supplies three vertical - * subpixels as the eye moves horizontally across each visible pixel. On - * devices where we can be certain this characteristic is present a - * rasterizer can take advantage of the subpixels to add increments of - * weight. In Western writing systems this turns out to be the more - * critical direction anyway; the weights and spacing of vertical stems - * (see above) are central to Armenian, Cyrillic, Greek, and Latin type - * designs. Even when the rasterizer uses greyscale antialiasing instead - * of color (a necessary compromise when one doesn't know the screen - * characteristics), the unhinted vertical features preserve the design's - * weight and spacing much better than aliased type would. - * - * 2) Alignment in the vertical direction: Weights and spacing along the - * y~axis are less critical; what is much more important is the visual - * alignment of related features (like cap-height and x-height). The - * sense of alignment for these is enhanced by the sharpness of grid-fit - * edges, while the cruder vertical resolution (full pixels instead of - * 1/3 pixels) is less of a problem. - * - * On the technical side, horizontal alignment zones for ascender, - * x-height, and other important height values (traditionally called - * 'blue zones') as defined in the font are positioned independently, - * each being rounded to the nearest pixel edge, taking care of overshoot - * suppression at small sizes, stem darkening, and scaling. - * - * Hstems (this is, hint values defined in the font to help align - * horizontal features) that fall within a blue zone are said to be - * 'captured' and are aligned to that zone. Uncaptured stems are moved - * in one of four ways, top edge up or down, bottom edge up or down. - * Unless there are conflicting hstems, the smallest movement is taken to - * minimize distortion. - * - */ - - - /************************************************************************** - * - * @section: - * pcf_driver - * - * @title: - * The PCF driver - * - * @abstract: - * Controlling the PCF driver module. - * - * @description: - * While FreeType's PCF driver doesn't expose API functions by itself, it - * is possible to control its behaviour with @FT_Property_Set and - * @FT_Property_Get. Right now, there is a single property - * @no-long-family-names available if FreeType is compiled with - * PCF_CONFIG_OPTION_LONG_FAMILY_NAMES. - * - * The PCF driver's module name is 'pcf'. - * - */ - - - /************************************************************************** - * - * @section: - * t1_cid_driver - * - * @title: - * The Type 1 and CID drivers - * - * @abstract: - * Controlling the Type~1 and CID driver modules. - * - * @description: - * It is possible to control the behaviour of FreeType's Type~1 and - * Type~1 CID drivers with @FT_Property_Set and @FT_Property_Get. - * - * Behind the scenes, both drivers use the Adobe CFF engine for hinting; - * however, the used properties must be specified separately. - * - * The Type~1 driver's module name is 'type1'; the CID driver's module - * name is 't1cid'. - * - * Available properties are @hinting-engine, @no-stem-darkening, - * @darkening-parameters, and @random-seed, as documented in the - * @properties section. - * - * Please see the @cff_driver section for more details on the new hinting - * engine. - * - */ - - - /************************************************************************** - * - * @section: - * tt_driver - * - * @title: - * The TrueType driver - * - * @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 following lists the available properties - * together with the necessary macros and structures. - * - * The TrueType driver's module name is 'truetype'. - * - * A single property @interpreter-version is available, as documented in - * the @properties section. - * - * We start with 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 - * 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. - * - * _Font Smoothing_ - * - * 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. - * - * _ClearType Rendering_ - * - * 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 - * http://rastertragedy.com/RTRCh4.htm#Sec21. 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. - * - * _ClearType Compatible Widths_ - * - * One of the earliest challenges with ClearType was allowing the - * implementation in GDI to be selected without requiring all UI and - * documents to reflow. To address this, a compatible method of - * rendering ClearType was added where the font hints are executed once - * to determine the width in bi-level rendering, and then re-run in - * ClearType, with the difference in widths being absorbed in the font - * hints for ClearType (mostly in the white space of hints); see - * http://rastertragedy.com/RTRCh4.htm#Sec20. Somewhat by - * definition, compatible width ClearType allows for non-linear widths, - * but only when the bi-level version has non-linear widths. - * - * _ClearType Subpixel Positioning_ - * - * One of the nice benefits of ClearType is the ability to more crisply - * display fractional widths; unfortunately, the GDI model of integer - * bitmaps did not support this. However, the WPF and Direct Write - * frameworks do support fractional widths. DWrite calls this 'natural - * mode', not to be confused with GDI's 'natural widths'. Subpixel - * positioning, in the current implementation of Direct Write, - * unfortunately does not support hinted advance widths, see - * http://rastertragedy.com/RTRCh4.htm#Sec22. Note that the - * TrueType interpreter fully allows the advance width to be adjusted in - * this mode, just the DWrite client will ignore those changes. - * - * _ClearType Backward Compatibility_ - * - * This is a set of exceptions made in the TrueType interpreter to - * minimize hinting techniques that were problematic with the extra - * resolution of ClearType; see - * http://rastertragedy.com/RTRCh4.htm#Sec1 and - * https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx. - * This technique is not to be confused with ClearType compatible widths. - * ClearType backward compatibility has no direct impact on changing - * advance widths, but there might be an indirect impact on disabling - * some deltas. This could be worked around in backward compatibility - * mode. - * - * _Native ClearType Mode_ - * - * (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: - * Driver properties - * - * @abstract: - * Controlling driver modules. - * - * @description: - * Driver modules can be controlled by setting and unsetting properties, - * using the functions @FT_Property_Set and @FT_Property_Get. This - * section documents the available properties, together with auxiliary - * macros and structures. - * - */ - - - /************************************************************************** - * - * @enum: - * FT_HINTING_XXX - * - * @description: - * A list of constants used for the @hinting-engine property to select - * the hinting engine for CFF, Type~1, and CID fonts. - * - * @values: - * FT_HINTING_FREETYPE :: - * Use the old FreeType hinting engine. - * - * FT_HINTING_ADOBE :: - * Use the hinting engine contributed by Adobe. - * - * @since: - * 2.9 - * - */ -#define FT_HINTING_FREETYPE 0 -#define FT_HINTING_ADOBE 1 - - /* these constants (introduced in 2.4.12) are deprecated */ -#define FT_CFF_HINTING_FREETYPE FT_HINTING_FREETYPE -#define FT_CFF_HINTING_ADOBE FT_HINTING_ADOBE - - - /************************************************************************** - * - * @property: - * hinting-engine - * - * @description: - * Thanks to Adobe, which contributed a new hinting (and parsing) engine, - * an application can select between 'freetype' and 'adobe' if compiled - * with `CFF_CONFIG_OPTION_OLD_ENGINE`. If this configuration macro - * isn't defined, 'hinting-engine' does nothing. - * - * The same holds for the Type~1 and CID modules if compiled with - * `T1_CONFIG_OPTION_OLD_ENGINE`. - * - * For the 'cff' module, the default engine is 'freetype' if - * `CFF_CONFIG_OPTION_OLD_ENGINE` is defined, and 'adobe' otherwise. - * - * For both the 'type1' and 't1cid' modules, the default engine is - * 'freetype' if `T1_CONFIG_OPTION_OLD_ENGINE` is defined, and 'adobe' - * otherwise. - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * This property can be set via the `FREETYPE_PROPERTIES` environment - * variable (using values 'adobe' or 'freetype'). - * - * @example: - * The following example code demonstrates how to select Adobe's hinting - * engine for the 'cff' module (omitting the error handling). - * - * ``` - * FT_Library library; - * FT_UInt hinting_engine = FT_HINTING_ADOBE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "cff", - * "hinting-engine", &hinting_engine ); - * ``` - * - * @since: - * 2.4.12 (for 'cff' module) - * - * 2.9 (for 'type1' and 't1cid' modules) - * - */ - - - /************************************************************************** - * - * @property: - * no-stem-darkening - * - * @description: - * All glyphs that pass through the auto-hinter will be emboldened unless - * this property is set to TRUE. The same is true for the CFF, Type~1, - * and CID font modules if the 'Adobe' engine is selected (which is the - * default). - * - * Stem darkening emboldens glyphs at smaller sizes to make them more - * readable on common low-DPI screens when using linear alpha blending - * and gamma correction, see @FT_Render_Glyph. When not using linear - * alpha blending and gamma correction, glyphs will appear heavy and - * fuzzy! - * - * Gamma correction essentially lightens fonts since shades of grey are - * shifted to higher pixel values (=~higher brightness) to match the - * original intention to the reality of our screens. The side-effect is - * that glyphs 'thin out'. Mac OS~X and Adobe's proprietary font - * rendering library implement a counter-measure: stem darkening at - * smaller sizes where shades of gray dominate. By emboldening a glyph - * slightly in relation to its pixel size, individual pixels get higher - * coverage of filled-in outlines and are therefore 'blacker'. This - * counteracts the 'thinning out' of glyphs, making text remain readable - * at smaller sizes. - * - * For the auto-hinter, stem-darkening is experimental currently and thus - * switched off by default (this is, `no-stem-darkening` is set to TRUE - * by default). Total consistency with the CFF driver is not achieved - * right now because the emboldening method differs and glyphs must be - * scaled down on the Y-axis to keep outline points inside their - * precomputed blue zones. The smaller the size (especially 9ppem and - * down), the higher the loss of emboldening versus the CFF driver. - * - * Note that stem darkening is never applied if @FT_LOAD_NO_SCALE is set. - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * This property can be set via the `FREETYPE_PROPERTIES` environment - * variable (using values 1 and 0 for 'on' and 'off', respectively). It - * can also be set per face using @FT_Face_Properties with - * @FT_PARAM_TAG_STEM_DARKENING. - * - * @example: - * ``` - * FT_Library library; - * FT_Bool no_stem_darkening = TRUE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "cff", - * "no-stem-darkening", &no_stem_darkening ); - * ``` - * - * @since: - * 2.4.12 (for 'cff' module) - * - * 2.6.2 (for 'autofitter' module) - * - * 2.9 (for 'type1' and 't1cid' modules) - * - */ - - - /************************************************************************** - * - * @property: - * darkening-parameters - * - * @description: - * By default, the Adobe hinting engine, as used by the CFF, Type~1, and - * CID font drivers, darkens stems as follows (if the `no-stem-darkening` - * property isn't set): - * - * ``` - * stem width <= 0.5px: darkening amount = 0.4px - * stem width = 1px: darkening amount = 0.275px - * stem width = 1.667px: darkening amount = 0.275px - * stem width >= 2.333px: darkening amount = 0px - * ``` - * - * and piecewise linear in-between. At configuration time, these four - * control points can be set with the macro - * `CFF_CONFIG_OPTION_DARKENING_PARAMETERS`; the CFF, Type~1, and CID - * drivers share these values. At runtime, the control points can be - * changed using the `darkening-parameters` property (see the example - * below that demonstrates this for the Type~1 driver). - * - * The x~values give the stem width, and the y~values the darkening - * amount. The unit is 1000th of pixels. All coordinate values must be - * positive; the x~values must be monotonically increasing; the y~values - * must be monotonically decreasing and smaller than or equal to 500 - * (corresponding to half a pixel); the slope of each linear piece must - * be shallower than -1 (e.g., -.4). - * - * The auto-hinter provides this property, too, as an experimental - * feature. See @no-stem-darkening for more. - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * This property can be set via the `FREETYPE_PROPERTIES` environment - * variable, using eight comma-separated integers without spaces. Here - * the above example, using `\` to break the line for readability. - * - * ``` - * FREETYPE_PROPERTIES=\ - * type1:darkening-parameters=500,300,1000,200,1500,100,2000,0 - * ``` - * - * @example: - * ``` - * FT_Library library; - * FT_Int darken_params[8] = { 500, 300, // x1, y1 - * 1000, 200, // x2, y2 - * 1500, 100, // x3, y3 - * 2000, 0 }; // x4, y4 - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "type1", - * "darkening-parameters", darken_params ); - * ``` - * - * @since: - * 2.5.1 (for 'cff' module) - * - * 2.6.2 (for 'autofitter' module) - * - * 2.9 (for 'type1' and 't1cid' modules) - * - */ - - - /************************************************************************** - * - * @property: - * random-seed - * - * @description: - * By default, the seed value for the CFF 'random' operator and the - * similar '0 28 callothersubr pop' command for the Type~1 and CID - * drivers is set to a random value. However, mainly for debugging - * purposes, it is often necessary to use a known value as a seed so that - * the pseudo-random number sequences generated by 'random' are - * repeatable. - * - * The `random-seed` property does that. Its argument is a signed 32bit - * integer; if the value is zero or negative, the seed given by the - * `intitialRandomSeed` private DICT operator in a CFF file gets used (or - * a default value if there is no such operator). If the value is - * positive, use it instead of `initialRandomSeed`, which is consequently - * ignored. - * - * @note: - * This property can be set via the `FREETYPE_PROPERTIES` environment - * variable. It can also be set per face using @FT_Face_Properties with - * @FT_PARAM_TAG_RANDOM_SEED. - * - * @since: - * 2.8 (for 'cff' module) - * - * 2.9 (for 'type1' and 't1cid' modules) - * - */ - - - /************************************************************************** - * - * @property: - * no-long-family-names - * - * @description: - * If `PCF_CONFIG_OPTION_LONG_FAMILY_NAMES` is active while compiling - * FreeType, the PCF driver constructs long family names. - * - * There are many PCF fonts just called 'Fixed' which look completely - * different, and which have nothing to do with each other. When - * selecting 'Fixed' in KDE or Gnome one gets results that appear rather - * random, the style changes often if one changes the size and one cannot - * select some fonts at all. The improve this situation, the PCF module - * prepends the foundry name (plus a space) to the family name. It also - * checks whether there are 'wide' characters; all put together, family - * names like 'Sony Fixed' or 'Misc Fixed Wide' are constructed. - * - * If `no-long-family-names` is set, this feature gets switched off. - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * This property can be set via the `FREETYPE_PROPERTIES` environment - * variable (using values 1 and 0 for 'on' and 'off', respectively). - * - * @example: - * ``` - * FT_Library library; - * FT_Bool no_long_family_names = TRUE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "pcf", - * "no-long-family-names", - * &no_long_family_names ); - * ``` - * - * @since: - * 2.8 - */ - - - /************************************************************************** - * - * @enum: - * TT_INTERPRETER_VERSION_XXX - * - * @description: - * A list of constants used for the @interpreter-version property to - * select the hinting engine for Truetype fonts. - * - * The numeric value in the constant names represents the version number - * as returned by the 'GETINFO' bytecode instruction. - * - * @values: - * TT_INTERPRETER_VERSION_35 :: - * Version~35 corresponds to MS rasterizer v.1.7 as used e.g. in - * Windows~98; only grayscale and B/W rasterizing is supported. - * - * TT_INTERPRETER_VERSION_38 :: - * Version~38 corresponds to MS rasterizer v.1.9; it is roughly - * equivalent to the hinting provided by DirectWrite ClearType (as can - * be found, for example, in the Internet Explorer~9 running on - * Windows~7). It is used in FreeType to select the 'Infinality' - * subpixel hinting code. The code may be removed in a future version. - * - * TT_INTERPRETER_VERSION_40 :: - * Version~40 corresponds to MS rasterizer v.2.1; it is roughly - * equivalent to the hinting provided by DirectWrite ClearType (as can - * be found, for example, in Microsoft's Edge Browser on Windows~10). - * It is used in FreeType to select the 'minimal' subpixel hinting - * code, a stripped-down and higher performance version of the - * 'Infinality' code. - * - * @note: - * This property controls the behaviour of the bytecode interpreter and - * thus how outlines get hinted. It does **not** control how glyph get - * rasterized! In particular, it does not control subpixel color - * filtering. - * - * If FreeType has not been compiled with the configuration option - * `TT_CONFIG_OPTION_SUBPIXEL_HINTING`, selecting version~38 or~40 causes - * an `FT_Err_Unimplemented_Feature` error. - * - * Depending on the graphics framework, Microsoft uses different bytecode - * and rendering engines. As a consequence, the version numbers returned - * by a call to the 'GETINFO' bytecode instruction are more convoluted - * than desired. - * - * Here are two tables that try to shed some light on the possible values - * for the MS rasterizer engine, together with the additional features - * introduced by it. - * - * ``` - * GETINFO framework version feature - * ------------------------------------------------------------------- - * 3 GDI (Win 3.1), v1.0 16-bit, first version - * TrueImage - * 33 GDI (Win NT 3.1), v1.5 32-bit - * HP Laserjet - * 34 GDI (Win 95) v1.6 font smoothing, - * new SCANTYPE opcode - * 35 GDI (Win 98/2000) v1.7 (UN)SCALED_COMPONENT_OFFSET - * bits in composite glyphs - * 36 MGDI (Win CE 2) v1.6+ classic ClearType - * 37 GDI (XP and later), v1.8 ClearType - * GDI+ old (before Vista) - * 38 GDI+ old (Vista, Win 7), v1.9 subpixel ClearType, - * WPF Y-direction ClearType, - * additional error checking - * 39 DWrite (before Win 8) v2.0 subpixel ClearType flags - * in GETINFO opcode, - * bug fixes - * 40 GDI+ (after Win 7), v2.1 Y-direction ClearType flag - * DWrite (Win 8) in GETINFO opcode, - * Gray ClearType - * ``` - * - * The 'version' field gives a rough orientation only, since some - * applications provided certain features much earlier (as an example, - * Microsoft Reader used subpixel and Y-direction ClearType already in - * Windows 2000). Similarly, updates to a given framework might include - * improved hinting support. - * - * ``` - * version sampling rendering comment - * x y x y - * -------------------------------------------------------------- - * v1.0 normal normal B/W B/W bi-level - * v1.6 high high gray gray grayscale - * v1.8 high normal color-filter B/W (GDI) ClearType - * v1.9 high high color-filter gray Color ClearType - * v2.1 high normal gray B/W Gray ClearType - * v2.1 high high gray gray Gray ClearType - * ``` - * - * Color and Gray ClearType are the two available variants of - * 'Y-direction ClearType', meaning grayscale rasterization along the - * Y-direction; the name used in the TrueType specification for this - * feature is 'symmetric smoothing'. 'Classic ClearType' is the original - * algorithm used before introducing a modified version in Win~XP. - * Another name for v1.6's grayscale rendering is 'font smoothing', and - * 'Color ClearType' is sometimes also called 'DWrite ClearType'. To - * differentiate between today's Color ClearType and the earlier - * ClearType variant with B/W rendering along the vertical axis, the - * latter is sometimes called 'GDI ClearType'. - * - * 'Normal' and 'high' sampling describe the (virtual) resolution to - * access the rasterized outline after the hinting process. 'Normal' - * means 1 sample per grid line (i.e., B/W). In the current Microsoft - * implementation, 'high' means an extra virtual resolution of 16x16 (or - * 16x1) grid lines per pixel for bytecode instructions like 'MIRP'. - * After hinting, these 16 grid lines are mapped to 6x5 (or 6x1) grid - * lines for color filtering if Color ClearType is activated. - * - * Note that 'Gray ClearType' is essentially the same as v1.6's grayscale - * rendering. However, the GETINFO instruction handles it differently: - * v1.6 returns bit~12 (hinting for grayscale), while v2.1 returns - * bits~13 (hinting for ClearType), 18 (symmetrical smoothing), and~19 - * (Gray ClearType). Also, this mode respects bits 2 and~3 for the - * version~1 gasp table exclusively (like Color ClearType), while v1.6 - * only respects the values of version~0 (bits 0 and~1). - * - * Keep in mind that the features of the above interpreter versions might - * not map exactly to FreeType features or behavior because it is a - * fundamentally different library with different internals. - * - */ -#define TT_INTERPRETER_VERSION_35 35 -#define TT_INTERPRETER_VERSION_38 38 -#define TT_INTERPRETER_VERSION_40 40 - - - /************************************************************************** - * - * @property: - * interpreter-version - * - * @description: - * Currently, three versions are available, two representing the bytecode - * interpreter with subpixel hinting support (old 'Infinality' code and - * new stripped-down and higher performance 'minimal' code) and one - * without, respectively. The default is subpixel support if - * `TT_CONFIG_OPTION_SUBPIXEL_HINTING` is defined, and no subpixel - * support otherwise (since it isn't available then). - * - * If subpixel hinting is on, many TrueType bytecode instructions behave - * differently compared to B/W or grayscale rendering (except if 'native - * ClearType' is selected by the font). Microsoft's main idea is to - * render at a much increased horizontal resolution, then sampling down - * the created output to subpixel precision. However, many older fonts - * are not suited to this and must be specially taken care of by applying - * (hardcoded) tweaks in Microsoft's interpreter. - * - * Details on subpixel hinting and some of the necessary tweaks can be - * found in Greg Hitchcock's whitepaper at - * 'https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'. - * Note that FreeType currently doesn't really 'subpixel hint' (6x1, 6x2, - * or 6x5 supersampling) like discussed in the paper. Depending on the - * chosen interpreter, it simply ignores instructions on vertical stems - * to arrive at very similar results. - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * This property can be set via the `FREETYPE_PROPERTIES` environment - * variable (using values '35', '38', or '40'). - * - * @example: - * The following example code demonstrates how to deactivate subpixel - * hinting (omitting the error handling). - * - * ``` - * FT_Library library; - * FT_Face face; - * FT_UInt interpreter_version = TT_INTERPRETER_VERSION_35; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "truetype", - * "interpreter-version", - * &interpreter_version ); - * ``` - * - * @since: - * 2.5 - */ - - - /************************************************************************** - * - * @property: - * glyph-to-script-map - * - * @description: - * **Experimental only** - * - * 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. - * - * 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. - * - * The mapping between glyph indices and scripts (in the auto-hinter - * sense, see the @FT_AUTOHINTER_SCRIPT_XXX values) is stored as an array - * with `num_glyphs` elements, as found in the font's @FT_Face structure. - * The `glyph-to-script-map` 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. - * - * @example: - * The following example code demonstrates how to access it (omitting the - * error handling). - * - * ``` - * FT_Library library; - * FT_Face face; - * FT_Prop_GlyphToScriptMap prop; - * - * - * FT_Init_FreeType( &library ); - * FT_New_Face( library, "foo.ttf", 0, &face ); - * - * prop.face = face; - * - * FT_Property_Get( library, "autofitter", - * "glyph-to-script-map", &prop ); - * - * // adjust `prop.map' as needed right here - * - * FT_Load_Glyph( face, ..., FT_LOAD_FORCE_AUTOHINT ); - * ``` - * - * @since: - * 2.4.11 - * - */ - - - /************************************************************************** - * - * @enum: - * FT_AUTOHINTER_SCRIPT_XXX - * - * @description: - * **Experimental only** - * - * A list of constants used for the @glyph-to-script-map property to - * specify the script submodule the auto-hinter should use for hinting a - * particular glyph. - * - * @values: - * FT_AUTOHINTER_SCRIPT_NONE :: - * Don't auto-hint this glyph. - * - * FT_AUTOHINTER_SCRIPT_LATIN :: - * Apply the latin auto-hinter. For the auto-hinter, 'latin' is a very - * broad term, including Cyrillic and Greek also since characters from - * those scripts share the same design constraints. - * - * By default, characters from the following Unicode ranges are - * assigned to this submodule. - * - * ``` - * U+0020 - U+007F // Basic Latin (no control characters) - * U+00A0 - U+00FF // Latin-1 Supplement (no control characters) - * U+0100 - U+017F // Latin Extended-A - * U+0180 - U+024F // Latin Extended-B - * U+0250 - U+02AF // IPA Extensions - * U+02B0 - U+02FF // Spacing Modifier Letters - * U+0300 - U+036F // Combining Diacritical Marks - * U+0370 - U+03FF // Greek and Coptic - * U+0400 - U+04FF // Cyrillic - * U+0500 - U+052F // Cyrillic Supplement - * U+1D00 - U+1D7F // Phonetic Extensions - * U+1D80 - U+1DBF // Phonetic Extensions Supplement - * U+1DC0 - U+1DFF // Combining Diacritical Marks Supplement - * U+1E00 - U+1EFF // Latin Extended Additional - * U+1F00 - U+1FFF // Greek Extended - * U+2000 - U+206F // General Punctuation - * U+2070 - U+209F // Superscripts and Subscripts - * U+20A0 - U+20CF // Currency Symbols - * U+2150 - U+218F // Number Forms - * U+2460 - U+24FF // Enclosed Alphanumerics - * U+2C60 - U+2C7F // Latin Extended-C - * U+2DE0 - U+2DFF // Cyrillic Extended-A - * U+2E00 - U+2E7F // Supplemental Punctuation - * U+A640 - U+A69F // Cyrillic Extended-B - * U+A720 - U+A7FF // Latin Extended-D - * U+FB00 - U+FB06 // Alphab. Present. Forms (Latin Ligatures) - * U+1D400 - U+1D7FF // Mathematical Alphanumeric Symbols - * U+1F100 - U+1F1FF // Enclosed Alphanumeric Supplement - * ``` - * - * FT_AUTOHINTER_SCRIPT_CJK :: - * Apply the CJK auto-hinter, covering Chinese, Japanese, Korean, old - * Vietnamese, and some other scripts. - * - * By default, characters from the following Unicode ranges are - * assigned to this submodule. - * - * ``` - * U+1100 - U+11FF // Hangul Jamo - * U+2E80 - U+2EFF // CJK Radicals Supplement - * U+2F00 - U+2FDF // Kangxi Radicals - * U+2FF0 - U+2FFF // Ideographic Description Characters - * U+3000 - U+303F // CJK Symbols and Punctuation - * U+3040 - U+309F // Hiragana - * U+30A0 - U+30FF // Katakana - * U+3100 - U+312F // Bopomofo - * U+3130 - U+318F // Hangul Compatibility Jamo - * U+3190 - U+319F // Kanbun - * U+31A0 - U+31BF // Bopomofo Extended - * U+31C0 - U+31EF // CJK Strokes - * U+31F0 - U+31FF // Katakana Phonetic Extensions - * U+3200 - U+32FF // Enclosed CJK Letters and Months - * U+3300 - U+33FF // CJK Compatibility - * U+3400 - U+4DBF // CJK Unified Ideographs Extension A - * U+4DC0 - U+4DFF // Yijing Hexagram Symbols - * U+4E00 - U+9FFF // CJK Unified Ideographs - * U+A960 - U+A97F // Hangul Jamo Extended-A - * U+AC00 - U+D7AF // Hangul Syllables - * U+D7B0 - U+D7FF // Hangul Jamo Extended-B - * U+F900 - U+FAFF // CJK Compatibility Ideographs - * U+FE10 - U+FE1F // Vertical forms - * U+FE30 - U+FE4F // CJK Compatibility Forms - * U+FF00 - U+FFEF // Halfwidth and Fullwidth Forms - * U+1B000 - U+1B0FF // Kana Supplement - * U+1D300 - U+1D35F // Tai Xuan Hing Symbols - * U+1F200 - U+1F2FF // Enclosed Ideographic Supplement - * U+20000 - U+2A6DF // CJK Unified Ideographs Extension B - * U+2A700 - U+2B73F // CJK Unified Ideographs Extension C - * U+2B740 - U+2B81F // CJK Unified Ideographs Extension D - * U+2F800 - U+2FA1F // CJK Compatibility Ideographs Supplement - * ``` - * - * FT_AUTOHINTER_SCRIPT_INDIC :: - * Apply the indic auto-hinter, covering all major scripts from the - * Indian sub-continent and some other related scripts like Thai, Lao, - * or Tibetan. - * - * By default, characters from the following Unicode ranges are - * assigned to this submodule. - * - * ``` - * U+0900 - U+0DFF // Indic Range - * U+0F00 - U+0FFF // Tibetan - * U+1900 - U+194F // Limbu - * U+1B80 - U+1BBF // Sundanese - * U+A800 - U+A82F // Syloti Nagri - * U+ABC0 - U+ABFF // Meetei Mayek - * U+11800 - U+118DF // Sharada - * ``` - * - * Note that currently Indic support is rudimentary only, missing blue - * zone support. - * - * @since: - * 2.4.11 - * - */ -#define FT_AUTOHINTER_SCRIPT_NONE 0 -#define FT_AUTOHINTER_SCRIPT_LATIN 1 -#define FT_AUTOHINTER_SCRIPT_CJK 2 -#define FT_AUTOHINTER_SCRIPT_INDIC 3 - - - /************************************************************************** - * - * @struct: - * FT_Prop_GlyphToScriptMap - * - * @description: - * **Experimental only** - * - * The data exchange structure for the @glyph-to-script-map property. - * - * @since: - * 2.4.11 - * - */ - typedef struct FT_Prop_GlyphToScriptMap_ - { - FT_Face face; - FT_UShort* map; - - } FT_Prop_GlyphToScriptMap; - - - /************************************************************************** - * - * @property: - * fallback-script - * - * @description: - * **Experimental only** - * - * If no auto-hinter script module can be assigned to a glyph, a fallback - * script gets assigned to it (see also the @glyph-to-script-map - * property). By default, this is @FT_AUTOHINTER_SCRIPT_CJK. Using the - * `fallback-script` property, this fallback value can be changed. - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * It's important to use the right timing for changing this value: The - * creation of the glyph-to-script map that eventually uses the fallback - * script value gets triggered either by setting or reading a - * face-specific property like @glyph-to-script-map, or by auto-hinting - * any glyph from that face. In particular, if you have already created - * an @FT_Face structure but not loaded any glyph (using the - * auto-hinter), a change of the fallback script will affect this face. - * - * @example: - * ``` - * FT_Library library; - * FT_UInt fallback_script = FT_AUTOHINTER_SCRIPT_NONE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "autofitter", - * "fallback-script", &fallback_script ); - * ``` - * - * @since: - * 2.4.11 - * - */ - - - /************************************************************************** - * - * @property: - * default-script - * - * @description: - * **Experimental only** - * - * If FreeType gets compiled with `FT_CONFIG_OPTION_USE_HARFBUZZ` to make - * the HarfBuzz library access OpenType features for getting better glyph - * coverages, this property sets the (auto-fitter) script to be used for - * the default (OpenType) script data of a font's GSUB table. Features - * for the default script are intended for all scripts not explicitly - * handled in GSUB; an example is a 'dlig' feature, containing the - * combination of the characters 'T', 'E', and 'L' to form a 'TEL' - * ligature. - * - * By default, this is @FT_AUTOHINTER_SCRIPT_LATIN. Using the - * `default-script` property, this default value can be changed. - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * It's important to use the right timing for changing this value: The - * creation of the glyph-to-script map that eventually uses the default - * script value gets triggered either by setting or reading a - * face-specific property like @glyph-to-script-map, or by auto-hinting - * any glyph from that face. In particular, if you have already created - * an @FT_Face structure but not loaded any glyph (using the - * auto-hinter), a change of the default script will affect this face. - * - * @example: - * ``` - * FT_Library library; - * FT_UInt default_script = FT_AUTOHINTER_SCRIPT_NONE; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "autofitter", - * "default-script", &default_script ); - * ``` - * - * @since: - * 2.5.3 - * - */ - - - /************************************************************************** - * - * @property: - * increase-x-height - * - * @description: - * For ppem values in the range 6~<= ppem <= `increase-x-height`, round - * up the font's x~height much more often than normally. If the value is - * set to~0, which is the default, this feature is switched off. Use - * this property to improve the legibility of small font sizes if - * necessary. - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * Set this value right after calling @FT_Set_Char_Size, but before - * loading any glyph (using the auto-hinter). - * - * @example: - * ``` - * FT_Library library; - * FT_Face face; - * FT_Prop_IncreaseXHeight prop; - * - * - * FT_Init_FreeType( &library ); - * FT_New_Face( library, "foo.ttf", 0, &face ); - * FT_Set_Char_Size( face, 10 * 64, 0, 72, 0 ); - * - * prop.face = face; - * prop.limit = 14; - * - * FT_Property_Set( library, "autofitter", - * "increase-x-height", &prop ); - * ``` - * - * @since: - * 2.4.11 - * - */ - - - /************************************************************************** - * - * @struct: - * FT_Prop_IncreaseXHeight - * - * @description: - * The data exchange structure for the @increase-x-height property. - * - */ - typedef struct FT_Prop_IncreaseXHeight_ - { - FT_Face face; - FT_UInt limit; - - } FT_Prop_IncreaseXHeight; - - - /************************************************************************** - * - * @property: - * warping - * - * @description: - * **Experimental only** - * - * If FreeType gets compiled with option `AF_CONFIG_OPTION_USE_WARPER` to - * activate the warp hinting code in the auto-hinter, this property - * switches warping on and off. - * - * Warping only works in 'normal' auto-hinting mode replacing it. The - * idea of the code is to slightly scale and shift a glyph along the - * non-hinted dimension (which is usually the horizontal axis) so that as - * much of its segments are aligned (more or less) to the grid. To find - * out a glyph's optimal scaling and shifting value, various parameter - * combinations are tried and scored. - * - * By default, warping is off. - * - * @note: - * This property can be used with @FT_Property_Get also. - * - * This property can be set via the `FREETYPE_PROPERTIES` environment - * variable (using values 1 and 0 for 'on' and 'off', respectively). - * - * The warping code can also change advance widths. Have a look at the - * `lsb_delta` and `rsb_delta` fields in the @FT_GlyphSlotRec structure - * for details on improving inter-glyph distances while rendering. - * - * Since warping is a global property of the auto-hinter it is best to - * change its value before rendering any face. Otherwise, you should - * reload all faces that get auto-hinted in 'normal' hinting mode. - * - * @example: - * This example shows how to switch on warping (omitting the error - * handling). - * - * ``` - * FT_Library library; - * FT_Bool warping = 1; - * - * - * FT_Init_FreeType( &library ); - * - * FT_Property_Set( library, "autofitter", "warping", &warping ); - * ``` - * - * @since: - * 2.6 - * - */ - - - /* */ - - -FT_END_HEADER - - -#endif /* FTDRIVER_H_ */ - - -/* END */ diff --git a/win64/include/freetype/fterrdef.h b/win64/include/freetype/fterrdef.h index 895d2d4d..99b2fade 100644 --- a/win64/include/freetype/fterrdef.h +++ b/win64/include/freetype/fterrdef.h @@ -1,57 +1,33 @@ -/**************************************************************************** - * - * fterrdef.h - * - * FreeType error codes (specification). - * - * Copyright (C) 2002-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* fterrdef.h */ +/* */ +/* FreeType error codes (specification). */ +/* */ +/* Copyright 2002, 2004, 2006, 2007, 2010-2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * @section: - * error_code_values - * - * @title: - * Error Code Values - * - * @abstract: - * All possible error codes returned by FreeType functions. - * - * @description: - * The list below is taken verbatim from the file `fterrdef.h` (loaded - * automatically by including `FT_FREETYPE_H`). The first argument of the - * `FT_ERROR_DEF_` macro is the error label; by default, the prefix - * `FT_Err_` gets added so that you get error names like - * `FT_Err_Cannot_Open_Resource`. The second argument is the error code, - * and the last argument an error string, which is not used by FreeType. - * - * Within your application you should **only** use error names and - * **never** its numeric values! The latter might (and actually do) - * change in forthcoming FreeType versions. - * - * Macro `FT_NOERRORDEF_` defines `FT_Err_Ok`, which is always zero. See - * the 'Error Enumerations' subsection how to automatically generate a - * list of error strings. - * - */ + /*******************************************************************/ + /*******************************************************************/ + /***** *****/ + /***** LIST OF ERROR CODES/MESSAGES *****/ + /***** *****/ + /*******************************************************************/ + /*******************************************************************/ - /************************************************************************** - * - * @enum: - * FT_Err_XXX - * - */ + /* You need to define both FT_ERRORDEF_ and FT_NOERRORDEF_ before */ + /* including this file. */ + /* generic errors */ @@ -230,10 +206,6 @@ "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 */ @@ -246,7 +218,7 @@ FT_ERRORDEF_( No_Unicode_Glyph_Name, 0xA3, "no Unicode glyph name found" ) FT_ERRORDEF_( Glyph_Too_Big, 0xA4, - "glyph too big for hinting" ) + "glyph to big for hinting" ) /* BDF errors */ @@ -273,7 +245,5 @@ FT_ERRORDEF_( Corrupted_Font_Glyphs, 0xBA, "Font glyphs corrupted or missing fields" ) - /* */ - /* END */ diff --git a/win64/include/freetype/fterrors.h b/win64/include/freetype/fterrors.h index 60a637c7..0fa3e4dc 100644 --- a/win64/include/freetype/fterrors.h +++ b/win64/include/freetype/fterrors.h @@ -1,130 +1,92 @@ -/**************************************************************************** - * - * fterrors.h - * - * FreeType error code handling (specification). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* fterrors.h */ +/* */ +/* FreeType error code handling (specification). */ +/* */ +/* Copyright 1996-2002, 2004, 2007, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * @section: - * error_enumerations - * - * @title: - * Error Enumerations - * - * @abstract: - * How to handle errors and error strings. - * - * @description: - * The header file `fterrors.h` (which is automatically included by - * `freetype.h` defines the handling of FreeType's enumeration - * constants. It can also be used to generate error message strings - * with a small macro trick explained below. - * - * **Error Formats** - * - * The configuration macro `FT_CONFIG_OPTION_USE_MODULE_ERRORS` can be - * defined in `ftoption.h` in order to make the higher byte indicate the - * module where the error has happened (this is not compatible with - * standard builds of FreeType~2, however). See the file `ftmoderr.h` - * for more details. - * - * **Error Message Strings** - * - * Error definitions are set up with special macros that allow client - * applications to build a table of error message strings. The strings - * are not included in a normal build of FreeType~2 to save space (most - * client applications do not use them). - * - * To do so, you have to define the following macros before including - * this file. - * - * ``` - * FT_ERROR_START_LIST - * ``` - * - * This macro is called before anything else to define the start of the - * error list. It is followed by several `FT_ERROR_DEF` calls. - * - * ``` - * FT_ERROR_DEF( e, v, s ) - * ``` - * - * This macro is called to define one single error. 'e' is the error - * code identifier (e.g., `Invalid_Argument`), 'v' is the error's - * numerical value, and 's' is the corresponding error string. - * - * ``` - * FT_ERROR_END_LIST - * ``` - * - * This macro ends the list. - * - * Additionally, you have to undefine `FTERRORS_H_` before #including - * this file. - * - * Here is a simple example. - * - * ``` - * #undef FTERRORS_H_ - * #define FT_ERRORDEF( e, v, s ) { e, s }, - * #define FT_ERROR_START_LIST { - * #define FT_ERROR_END_LIST { 0, NULL } }; - * - * const struct - * { - * int err_code; - * const char* err_msg; - * } ft_errors[] = - * - * #include <freetype/fterrors.h> - * ``` - * - * An alternative to using an array is a switch statement. - * - * ``` - * #undef FTERRORS_H_ - * #define FT_ERROR_START_LIST switch ( error_code ) { - * #define FT_ERRORDEF( e, v, s ) case v: return s; - * #define FT_ERROR_END_LIST } - * ``` - * - * If you use `FT_CONFIG_OPTION_USE_MODULE_ERRORS`, `error_code` should - * be replaced with `FT_ERROR_BASE(error_code)` in the last example. - */ + /*************************************************************************/ + /* */ + /* This special header file is used to define the handling of FT2 */ + /* enumeration constants. It can also be used to generate error message */ + /* strings with a small macro trick explained below. */ + /* */ + /* I - Error Formats */ + /* ----------------- */ + /* */ + /* The configuration macro FT_CONFIG_OPTION_USE_MODULE_ERRORS can be */ + /* defined in ftoption.h in order to make the higher byte indicate */ + /* the module where the error has happened (this is not compatible */ + /* with standard builds of FreeType 2). See the file `ftmoderr.h' for */ + /* more details. */ + /* */ + /* */ + /* II - Error Message strings */ + /* -------------------------- */ + /* */ + /* The error definitions below are made through special macros that */ + /* allow client applications to build a table of error message strings */ + /* if they need it. The strings are not included in a normal build of */ + /* FreeType 2 to save space (most client applications do not use */ + /* them). */ + /* */ + /* To do so, you have to define the following macros before including */ + /* this file: */ + /* */ + /* FT_ERROR_START_LIST :: */ + /* This macro is called before anything else to define the start of */ + /* the error list. It is followed by several FT_ERROR_DEF calls */ + /* (see below). */ + /* */ + /* FT_ERROR_DEF( e, v, s ) :: */ + /* This macro is called to define one single error. */ + /* `e' is the error code identifier (e.g. FT_Err_Invalid_Argument). */ + /* `v' is the error numerical value. */ + /* `s' is the corresponding error string. */ + /* */ + /* FT_ERROR_END_LIST :: */ + /* This macro ends the list. */ + /* */ + /* Additionally, you have to undefine __FTERRORS_H__ before #including */ + /* this file. */ + /* */ + /* Here is a simple example: */ + /* */ + /* { */ + /* #undef __FTERRORS_H__ */ + /* #define FT_ERRORDEF( e, v, s ) { e, s }, */ + /* #define FT_ERROR_START_LIST { */ + /* #define FT_ERROR_END_LIST { 0, 0 } }; */ + /* */ + /* const struct */ + /* { */ + /* int err_code; */ + /* const char* err_msg; */ + /* } ft_errors[] = */ + /* */ + /* #include FT_ERRORS_H */ + /* } */ + /* */ + /*************************************************************************/ - /* */ - /* In previous FreeType versions we used `__FTERRORS_H__`. However, */ - /* using two successive underscores in a non-system symbol name */ - /* violates the C (and C++) standard, so it was changed to the */ - /* current form. In spite of this, we have to make */ - /* */ - /* ``` */ - /* #undefine __FTERRORS_H__ */ - /* ``` */ - /* */ - /* work for backward compatibility. */ - /* */ -#if !( defined( FTERRORS_H_ ) && defined ( __FTERRORS_H__ ) ) -#define FTERRORS_H_ +#ifndef __FTERRORS_H__ #define __FTERRORS_H__ /* include module base error codes */ -#include <freetype/ftmoderr.h> +#include FT_MODULE_ERRORS_H /*******************************************************************/ @@ -140,7 +102,7 @@ /* FT_ERR_PREFIX is used as a prefix for error identifiers. */ - /* By default, we use `FT_Err_`. */ + /* By default, we use `FT_Err_'. */ /* */ #ifndef FT_ERR_PREFIX #define FT_ERR_PREFIX FT_Err_ @@ -168,8 +130,6 @@ /* */ #ifndef FT_ERRORDEF -#define FT_INCLUDE_ERR_PROTOS - #define FT_ERRORDEF( e, v, s ) e = v, #define FT_ERROR_START_LIST enum { #define FT_ERROR_END_LIST FT_ERR_CAT( FT_ERR_PREFIX, Max ) }; @@ -197,7 +157,7 @@ /* now include the error codes */ -#include <freetype/fterrdef.h> +#include FT_ERROR_DEFINITIONS_H #ifdef FT_ERROR_END_LIST @@ -232,63 +192,7 @@ #undef FT_ERR_PREFIX #endif - /* FT_INCLUDE_ERR_PROTOS: Control whether function prototypes should be */ - /* included with */ - /* */ - /* #include <freetype/fterrors.h> */ - /* */ - /* This is only true where `FT_ERRORDEF` is */ - /* undefined. */ - /* */ - /* FT_ERR_PROTOS_DEFINED: Actual multiple-inclusion protection of */ - /* `fterrors.h`. */ -#ifdef FT_INCLUDE_ERR_PROTOS -#undef FT_INCLUDE_ERR_PROTOS - -#ifndef FT_ERR_PROTOS_DEFINED -#define FT_ERR_PROTOS_DEFINED - - -FT_BEGIN_HEADER - - /************************************************************************** - * - * @function: - * FT_Error_String - * - * @description: - * Retrieve the description of a valid FreeType error code. - * - * @input: - * error_code :: - * A valid FreeType error code. - * - * @return: - * A C~string or `NULL`, if any error occurred. - * - * @note: - * FreeType has to be compiled with `FT_CONFIG_OPTION_ERROR_STRINGS` or - * `FT_DEBUG_LEVEL_ERROR` to get meaningful descriptions. - * 'error_string' will be `NULL` otherwise. - * - * Module identification will be ignored: - * - * ```c - * strcmp( FT_Error_String( FT_Err_Unknown_File_Format ), - * FT_Error_String( BDF_Err_Unknown_File_Format ) ) == 0; - * ``` - */ - FT_EXPORT( const char* ) - FT_Error_String( FT_Error error_code ); - -FT_END_HEADER - - -#endif /* FT_ERR_PROTOS_DEFINED */ - -#endif /* FT_INCLUDE_ERR_PROTOS */ - -#endif /* !(FTERRORS_H_ && __FTERRORS_H__) */ +#endif /* __FTERRORS_H__ */ /* END */ diff --git a/win64/include/freetype/ftfntfmt.h b/win64/include/freetype/ftfntfmt.h deleted file mode 100644 index f803349c..00000000 --- a/win64/include/freetype/ftfntfmt.h +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** - * - * ftfntfmt.h - * - * Support functions for font formats. - * - * Copyright (C) 2002-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.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 FTFNTFMT_H_ -#define FTFNTFMT_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: - * font_formats - * - * @title: - * Font Formats - * - * @abstract: - * Getting the font format. - * - * @description: - * The single function in this section can be used to get the font format. - * Note that this information is not needed normally; however, there are - * special cases (like in PDF devices) where it is important to - * differentiate, in spite of FreeType's uniform API. - * - */ - - - /************************************************************************** - * - * @function: - * FT_Get_Font_Format - * - * @description: - * Return a string describing the format of a given face. Possible values - * are 'TrueType', 'Type~1', 'BDF', 'PCF', 'Type~42', 'CID~Type~1', 'CFF', - * 'PFR', and 'Windows~FNT'. - * - * The return value is suitable to be used as an X11 FONT_PROPERTY. - * - * @input: - * face :: - * Input face handle. - * - * @return: - * Font format string. `NULL` in case of error. - * - * @note: - * A deprecated name for the same function is `FT_Get_X11_Font_Format`. - */ - FT_EXPORT( const char* ) - FT_Get_Font_Format( FT_Face face ); - - - /* deprecated */ - FT_EXPORT( const char* ) - FT_Get_X11_Font_Format( FT_Face face ); - - - /* */ - - -FT_END_HEADER - -#endif /* FTFNTFMT_H_ */ - - -/* END */ diff --git a/win64/include/freetype/ftgasp.h b/win64/include/freetype/ftgasp.h index 6b76882c..3f3d7654 100644 --- a/win64/include/freetype/ftgasp.h +++ b/win64/include/freetype/ftgasp.h @@ -1,25 +1,26 @@ -/**************************************************************************** - * - * ftgasp.h - * - * Access of TrueType's 'gasp' table (specification). - * - * Copyright (C) 2007-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftgasp.h */ +/* */ +/* Access of TrueType's `gasp' table (specification). */ +/* */ +/* Copyright 2007, 2008, 2011 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTGASP_H_ -#define FTGASP_H_ +#ifndef _FT_GASP_H_ +#define _FT_GASP_H_ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -28,10 +29,7 @@ #endif -FT_BEGIN_HEADER - - - /************************************************************************** + /*************************************************************************** * * @section: * gasp_table @@ -40,16 +38,16 @@ FT_BEGIN_HEADER * Gasp Table * * @abstract: - * Retrieving TrueType 'gasp' table entries. + * Retrieving TrueType `gasp' table entries. * * @description: * The function @FT_Get_Gasp can be used to query a TrueType or OpenType - * font for specific entries in its 'gasp' table, if any. This is mainly - * useful when implementing native TrueType hinting with the bytecode - * interpreter to duplicate the Windows text rendering results. + * font for specific entries in its `gasp' table, if any. This is + * mainly useful when implementing native TrueType hinting with the + * bytecode interpreter to duplicate the Windows text rendering results. */ - /************************************************************************** + /************************************************************************* * * @enum: * FT_GASP_XXX @@ -65,7 +63,7 @@ FT_BEGIN_HEADER * * FT_GASP_DO_GRIDFIT :: * Grid-fitting and hinting should be performed at the specified ppem. - * This **really** means TrueType bytecode interpretation. If this bit + * This *really* means TrueType bytecode interpretation. If this bit * is not set, no hinting gets applied. * * FT_GASP_DO_GRAY :: @@ -79,13 +77,13 @@ FT_BEGIN_HEADER * Grid-fitting must be used with ClearType's symmetric smoothing. * * @note: - * The bit-flags `FT_GASP_DO_GRIDFIT` and `FT_GASP_DO_GRAY` are to be + * The bit-flags `FT_GASP_DO_GRIDFIT' and `FT_GASP_DO_GRAY' are to be * used for standard font rasterization only. Independently of that, - * `FT_GASP_SYMMETRIC_SMOOTHING` and `FT_GASP_SYMMETRIC_GRIDFIT` are to - * be used if ClearType is enabled (and `FT_GASP_DO_GRIDFIT` and - * `FT_GASP_DO_GRAY` are consequently ignored). + * `FT_GASP_SYMMETRIC_SMOOTHING' and `FT_GASP_SYMMETRIC_GRIDFIT' are to + * be used if ClearType is enabled (and `FT_GASP_DO_GRIDFIT' and + * `FT_GASP_DO_GRAY' are consequently ignored). * - * 'ClearType' is Microsoft's implementation of LCD rendering, partly + * `ClearType' is Microsoft's implementation of LCD rendering, partly * protected by patents. * * @since: @@ -94,36 +92,26 @@ FT_BEGIN_HEADER #define FT_GASP_NO_TABLE -1 #define FT_GASP_DO_GRIDFIT 0x01 #define FT_GASP_DO_GRAY 0x02 -#define FT_GASP_SYMMETRIC_GRIDFIT 0x04 #define FT_GASP_SYMMETRIC_SMOOTHING 0x08 +#define FT_GASP_SYMMETRIC_GRIDFIT 0x10 - /************************************************************************** + /************************************************************************* * - * @function: + * @func: * FT_Get_Gasp * * @description: - * For a TrueType or OpenType font file, return the rasterizer behaviour - * flags from the font's 'gasp' table corresponding to a given character - * pixel size. + * Read the `gasp' table from a TrueType or OpenType font file and + * return the entry corresponding to a given character pixel size. * * @input: - * face :: - * The source face handle. - * - * ppem :: - * The vertical character pixel size. + * face :: The source face handle. + * ppem :: The vertical character pixel size. * * @return: * Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE if there is no - * 'gasp' table in the face. - * - * @note: - * If you want to use the MM functionality of OpenType variation fonts - * (i.e., using @FT_Set_Var_Design_Coordinates and friends), call this - * function **after** setting an instance since the return values can - * change. + * `gasp' table in the face. * * @since: * 2.3.0 @@ -135,9 +123,7 @@ FT_BEGIN_HEADER /* */ -FT_END_HEADER - -#endif /* FTGASP_H_ */ +#endif /* _FT_GASP_H_ */ /* END */ diff --git a/win64/include/freetype/ftglyph.h b/win64/include/freetype/ftglyph.h index 704619e3..15fa6a99 100644 --- a/win64/include/freetype/ftglyph.h +++ b/win64/include/freetype/ftglyph.h @@ -1,39 +1,40 @@ -/**************************************************************************** - * - * ftglyph.h - * - * FreeType convenience functions to handle glyphs (specification). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftglyph.h */ +/* */ +/* FreeType convenience functions to handle glyphs (specification). */ +/* */ +/* Copyright 1996-2003, 2006, 2008, 2009, 2011, 2013, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * This file contains the definition of several convenience functions that - * can be used by client applications to easily retrieve glyph bitmaps and - * outlines from a given face. - * - * These functions should be optional if you are writing a font server or - * text layout engine on top of FreeType. However, they are pretty handy - * for many other simple uses of the library. - * - */ + /*************************************************************************/ + /* */ + /* This file contains the definition of several convenience functions */ + /* that can be used by client applications to easily retrieve glyph */ + /* bitmaps and outlines from a given face. */ + /* */ + /* These functions should be optional if you are writing a font server */ + /* or text layout engine on top of FreeType. However, they are pretty */ + /* handy for many other simple uses of the library. */ + /* */ + /*************************************************************************/ -#ifndef FTGLYPH_H_ -#define FTGLYPH_H_ +#ifndef __FTGLYPH_H__ +#define __FTGLYPH_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -45,70 +46,65 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * glyph_management - * - * @title: - * Glyph Management - * - * @abstract: - * Generic interface to manage individual glyph data. - * - * @description: - * This section contains definitions used to manage glyph data through - * generic @FT_Glyph objects. Each of them can contain a bitmap, - * a vector outline, or even images in other formats. These objects are - * detached from @FT_Face, contrary to @FT_GlyphSlot. - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* glyph_management */ + /* */ + /* <Title> */ + /* Glyph Management */ + /* */ + /* <Abstract> */ + /* Generic interface to manage individual glyph data. */ + /* */ + /* <Description> */ + /* This section contains definitions used to manage glyph data */ + /* through generic FT_Glyph objects. Each of them can contain a */ + /* bitmap, a vector outline, or even images in other formats. */ + /* */ + /*************************************************************************/ /* forward declaration to a private type */ typedef struct FT_Glyph_Class_ FT_Glyph_Class; - /************************************************************************** - * - * @type: - * FT_Glyph - * - * @description: - * Handle to an object used to model generic glyph images. It is a - * pointer to the @FT_GlyphRec structure and can contain a glyph bitmap - * or pointer. - * - * @note: - * Glyph objects are not owned by the library. You must thus release - * them manually (through @FT_Done_Glyph) _before_ calling - * @FT_Done_FreeType. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Glyph */ + /* */ + /* <Description> */ + /* Handle to an object used to model generic glyph images. It is a */ + /* pointer to the @FT_GlyphRec structure and can contain a glyph */ + /* bitmap or pointer. */ + /* */ + /* <Note> */ + /* Glyph objects are not owned by the library. You must thus release */ + /* them manually (through @FT_Done_Glyph) _before_ calling */ + /* @FT_Done_FreeType. */ + /* */ typedef struct FT_GlyphRec_* FT_Glyph; - /************************************************************************** - * - * @struct: - * FT_GlyphRec - * - * @description: - * The root glyph structure contains a given glyph image plus its advance - * width in 16.16 fixed-point format. - * - * @fields: - * library :: - * A handle to the FreeType library object. - * - * clazz :: - * A pointer to the glyph's class. Private. - * - * format :: - * The format of the glyph's image. - * - * advance :: - * A 16.16 vector that gives the glyph's advance width. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_GlyphRec */ + /* */ + /* <Description> */ + /* The root glyph structure contains a given glyph image plus its */ + /* advance width in 16.16 fixed-point format. */ + /* */ + /* <Fields> */ + /* library :: A handle to the FreeType library object. */ + /* */ + /* clazz :: A pointer to the glyph's class. Private. */ + /* */ + /* format :: The format of the glyph's image. */ + /* */ + /* advance :: A 16.16 vector that gives the glyph's advance width. */ + /* */ typedef struct FT_GlyphRec_ { FT_Library library; @@ -119,51 +115,48 @@ FT_BEGIN_HEADER } FT_GlyphRec; - /************************************************************************** - * - * @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. - */ + /*************************************************************************/ + /* */ + /* <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 @FT_Glyph fields. - * - * 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 - * pen position to the top border of the glyph bitmap. This distance - * is positive for upwards~y! - * - * bitmap :: - * A descriptor for the bitmap. - * - * @note: - * You can typecast an @FT_Glyph to @FT_BitmapGlyph if you have - * `glyph->format == FT_GLYPH_FORMAT_BITMAP`. This lets you access the - * bitmap's contents easily. - * - * The corresponding pixel buffer is always owned by @FT_BitmapGlyph and - * is thus created and destroyed with it. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_BitmapGlyphRec */ + /* */ + /* <Description> */ + /* A structure used for bitmap glyph images. This really is a */ + /* `sub-class' of @FT_GlyphRec. */ + /* */ + /* <Fields> */ + /* root :: The root @FT_Glyph fields. */ + /* */ + /* 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 pen position to the top border of the glyph */ + /* bitmap. This distance is positive for upwards~y! */ + /* */ + /* bitmap :: A descriptor for the bitmap. */ + /* */ + /* <Note> */ + /* You can typecast an @FT_Glyph to @FT_BitmapGlyph if you have */ + /* `glyph->format == FT_GLYPH_FORMAT_BITMAP'. This lets you access */ + /* the bitmap's contents easily. */ + /* */ + /* The corresponding pixel buffer is always owned by @FT_BitmapGlyph */ + /* and is thus created and destroyed with it. */ + /* */ typedef struct FT_BitmapGlyphRec_ { FT_GlyphRec root; @@ -174,46 +167,44 @@ FT_BEGIN_HEADER } FT_BitmapGlyphRec; - /************************************************************************** - * - * @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. - */ + /*************************************************************************/ + /* */ + /* <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: - * FT_OutlineGlyphRec - * - * @description: - * A structure used for outline (vectorial) glyph images. This really is - * a 'sub-class' of @FT_GlyphRec. - * - * @fields: - * root :: - * The root @FT_Glyph fields. - * - * outline :: - * A descriptor for the outline. - * - * @note: - * You can typecast an @FT_Glyph to @FT_OutlineGlyph if you have - * `glyph->format == FT_GLYPH_FORMAT_OUTLINE`. This lets you access the - * outline's content easily. - * - * As the outline is extracted from a glyph slot, its coordinates are - * expressed normally in 26.6 pixels, unless the flag @FT_LOAD_NO_SCALE - * was used in @FT_Load_Glyph or @FT_Load_Char. - * - * The outline's tables are always owned by the object and are destroyed - * with it. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_OutlineGlyphRec */ + /* */ + /* <Description> */ + /* A structure used for outline (vectorial) glyph images. This */ + /* really is a `sub-class' of @FT_GlyphRec. */ + /* */ + /* <Fields> */ + /* root :: The root @FT_Glyph fields. */ + /* */ + /* outline :: A descriptor for the outline. */ + /* */ + /* <Note> */ + /* You can typecast an @FT_Glyph to @FT_OutlineGlyph if you have */ + /* `glyph->format == FT_GLYPH_FORMAT_OUTLINE'. This lets you access */ + /* the outline's content easily. */ + /* */ + /* As the outline is extracted from a glyph slot, its coordinates are */ + /* expressed normally in 26.6 pixels, unless the flag */ + /* @FT_LOAD_NO_SCALE was used in @FT_Load_Glyph() or @FT_Load_Char(). */ + /* */ + /* The outline's tables are always owned by the object and are */ + /* destroyed with it. */ + /* */ typedef struct FT_OutlineGlyphRec_ { FT_GlyphRec root; @@ -222,150 +213,107 @@ FT_BEGIN_HEADER } FT_OutlineGlyphRec; - /************************************************************************** - * - * @function: - * FT_New_Glyph - * - * @description: - * A function used to create a new empty glyph image. Note that the - * created @FT_Glyph object must be released with @FT_Done_Glyph. - * - * @input: - * library :: - * A handle to the FreeType library object. - * - * format :: - * The format of the glyph's image. - * - * @output: - * aglyph :: - * A handle to the glyph object. - * - * @return: - * FreeType error code. 0~means success. - * - * @since: - * 2.10 - */ - FT_EXPORT( FT_Error ) - FT_New_Glyph( FT_Library library, - FT_Glyph_Format format, - FT_Glyph *aglyph ); - - - /************************************************************************** - * - * @function: - * FT_Get_Glyph - * - * @description: - * A function used to extract a glyph image from a slot. Note that the - * created @FT_Glyph object must be released with @FT_Done_Glyph. - * - * @input: - * slot :: - * A handle to the source glyph slot. - * - * @output: - * aglyph :: - * A handle to the glyph object. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * Because `*aglyph->advance.x` and `*aglyph->advance.y` are 16.16 - * fixed-point numbers, `slot->advance.x` and `slot->advance.y` (which - * are in 26.6 fixed-point format) must be in the range ]-32768;32768[. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Glyph */ + /* */ + /* <Description> */ + /* A function used to extract a glyph image from a slot. Note that */ + /* the created @FT_Glyph object must be released with @FT_Done_Glyph. */ + /* */ + /* <Input> */ + /* slot :: A handle to the source glyph slot. */ + /* */ + /* <Output> */ + /* aglyph :: A handle to the glyph object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_Get_Glyph( FT_GlyphSlot slot, FT_Glyph *aglyph ); - /************************************************************************** - * - * @function: - * FT_Glyph_Copy - * - * @description: - * A function used to copy a glyph image. Note that the created - * @FT_Glyph object must be released with @FT_Done_Glyph. - * - * @input: - * source :: - * A handle to the source glyph object. - * - * @output: - * target :: - * A handle to the target glyph object. 0~in case of error. - * - * @return: - * FreeType error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Glyph_Copy */ + /* */ + /* <Description> */ + /* A function used to copy a glyph image. Note that the created */ + /* @FT_Glyph object must be released with @FT_Done_Glyph. */ + /* */ + /* <Input> */ + /* source :: A handle to the source glyph object. */ + /* */ + /* <Output> */ + /* target :: A handle to the target glyph object. 0~in case of */ + /* error. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_Glyph_Copy( FT_Glyph source, FT_Glyph *target ); - /************************************************************************** - * - * @function: - * FT_Glyph_Transform - * - * @description: - * Transform a glyph image if its format is scalable. - * - * @inout: - * glyph :: - * A handle to the target glyph object. - * - * @input: - * matrix :: - * A pointer to a 2x2 matrix to apply. - * - * delta :: - * A pointer to a 2d vector to apply. Coordinates are expressed in - * 1/64th of a pixel. - * - * @return: - * FreeType error code (if not 0, the glyph format is not scalable). - * - * @note: - * The 2x2 transformation matrix is also applied to the glyph's advance - * vector. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Glyph_Transform */ + /* */ + /* <Description> */ + /* Transform a glyph image if its format is scalable. */ + /* */ + /* <InOut> */ + /* glyph :: A handle to the target glyph object. */ + /* */ + /* <Input> */ + /* matrix :: A pointer to a 2x2 matrix to apply. */ + /* */ + /* delta :: A pointer to a 2d vector to apply. Coordinates are */ + /* expressed in 1/64th of a pixel. */ + /* */ + /* <Return> */ + /* FreeType error code (if not 0, the glyph format is not scalable). */ + /* */ + /* <Note> */ + /* The 2x2 transformation matrix is also applied to the glyph's */ + /* advance vector. */ + /* */ FT_EXPORT( FT_Error ) FT_Glyph_Transform( FT_Glyph glyph, FT_Matrix* matrix, FT_Vector* delta ); - /************************************************************************** - * - * @enum: - * FT_Glyph_BBox_Mode - * - * @description: - * The mode how the values of @FT_Glyph_Get_CBox are returned. - * - * @values: - * FT_GLYPH_BBOX_UNSCALED :: - * Return unscaled font units. - * - * FT_GLYPH_BBOX_SUBPIXELS :: - * Return unfitted 26.6 coordinates. - * - * FT_GLYPH_BBOX_GRIDFIT :: - * Return grid-fitted 26.6 coordinates. - * - * FT_GLYPH_BBOX_TRUNCATE :: - * Return coordinates in integer pixels. - * - * FT_GLYPH_BBOX_PIXELS :: - * Return grid-fitted pixel coordinates. - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* FT_Glyph_BBox_Mode */ + /* */ + /* <Description> */ + /* The mode how the values of @FT_Glyph_Get_CBox are returned. */ + /* */ + /* <Values> */ + /* FT_GLYPH_BBOX_UNSCALED :: */ + /* Return unscaled font units. */ + /* */ + /* FT_GLYPH_BBOX_SUBPIXELS :: */ + /* Return unfitted 26.6 coordinates. */ + /* */ + /* FT_GLYPH_BBOX_GRIDFIT :: */ + /* Return grid-fitted 26.6 coordinates. */ + /* */ + /* FT_GLYPH_BBOX_TRUNCATE :: */ + /* Return coordinates in integer pixels. */ + /* */ + /* FT_GLYPH_BBOX_PIXELS :: */ + /* Return grid-fitted pixel coordinates. */ + /* */ typedef enum FT_Glyph_BBox_Mode_ { FT_GLYPH_BBOX_UNSCALED = 0, @@ -378,7 +326,7 @@ FT_BEGIN_HEADER /* these constants are deprecated; use the corresponding */ - /* `FT_Glyph_BBox_Mode` values instead */ + /* `FT_Glyph_BBox_Mode' values instead */ #define ft_glyph_bbox_unscaled FT_GLYPH_BBOX_UNSCALED #define ft_glyph_bbox_subpixels FT_GLYPH_BBOX_SUBPIXELS #define ft_glyph_bbox_gridfit FT_GLYPH_BBOX_GRIDFIT @@ -386,188 +334,187 @@ FT_BEGIN_HEADER #define ft_glyph_bbox_pixels FT_GLYPH_BBOX_PIXELS - /************************************************************************** - * - * @function: - * FT_Glyph_Get_CBox - * - * @description: - * Return a glyph's 'control box'. The control box encloses all the - * outline's points, including Bezier control points. Though it - * coincides with the exact bounding box for most glyphs, it can be - * slightly larger in some situations (like when rotating an outline that - * contains Bezier outside arcs). - * - * Computing the control box is very fast, while getting the bounding box - * can take much more time as it needs to walk over all segments and arcs - * in the outline. To get the latter, you can use the 'ftbbox' - * component, which is dedicated to this single task. - * - * @input: - * glyph :: - * A handle to the source glyph object. - * - * mode :: - * The mode that indicates how to interpret the returned bounding box - * values. - * - * @output: - * acbox :: - * The glyph coordinate bounding box. Coordinates are expressed in - * 1/64th of pixels if it is grid-fitted. - * - * @note: - * Coordinates are relative to the glyph origin, using the y~upwards - * convention. - * - * If the glyph has been loaded with @FT_LOAD_NO_SCALE, `bbox_mode` must - * be set to @FT_GLYPH_BBOX_UNSCALED to get unscaled font units in 26.6 - * pixel format. The value @FT_GLYPH_BBOX_SUBPIXELS is another name for - * this constant. - * - * If the font is tricky and the glyph has been loaded with - * @FT_LOAD_NO_SCALE, the resulting CBox is meaningless. To get - * reasonable values for the CBox it is necessary to load the glyph at a - * large ppem value (so that the hinting instructions can properly shift - * and scale the subglyphs), then extracting the CBox, which can be - * eventually converted back to font units. - * - * Note that the maximum coordinates are exclusive, which means that one - * can compute the width and height of the glyph image (be it in integer - * or 26.6 pixels) as: - * - * ``` - * width = bbox.xMax - bbox.xMin; - * height = bbox.yMax - bbox.yMin; - * ``` - * - * Note also that for 26.6 coordinates, if `bbox_mode` is set to - * @FT_GLYPH_BBOX_GRIDFIT, the coordinates will also be grid-fitted, - * which corresponds to: - * - * ``` - * bbox.xMin = FLOOR(bbox.xMin); - * bbox.yMin = FLOOR(bbox.yMin); - * bbox.xMax = CEILING(bbox.xMax); - * bbox.yMax = CEILING(bbox.yMax); - * ``` - * - * To get the bbox in pixel coordinates, set `bbox_mode` to - * @FT_GLYPH_BBOX_TRUNCATE. - * - * To get the bbox in grid-fitted pixel coordinates, set `bbox_mode` to - * @FT_GLYPH_BBOX_PIXELS. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Glyph_Get_CBox */ + /* */ + /* <Description> */ + /* Return a glyph's `control box'. The control box encloses all the */ + /* outline's points, including Bézier control points. Though it */ + /* coincides with the exact bounding box for most glyphs, it can be */ + /* slightly larger in some situations (like when rotating an outline */ + /* that contains Bézier outside arcs). */ + /* */ + /* Computing the control box is very fast, while getting the bounding */ + /* box can take much more time as it needs to walk over all segments */ + /* and arcs in the outline. To get the latter, you can use the */ + /* `ftbbox' component, which is dedicated to this single task. */ + /* */ + /* <Input> */ + /* glyph :: A handle to the source glyph object. */ + /* */ + /* mode :: The mode that indicates how to interpret the returned */ + /* bounding box values. */ + /* */ + /* <Output> */ + /* acbox :: The glyph coordinate bounding box. Coordinates are */ + /* expressed in 1/64th of pixels if it is grid-fitted. */ + /* */ + /* <Note> */ + /* Coordinates are relative to the glyph origin, using the y~upwards */ + /* convention. */ + /* */ + /* If the glyph has been loaded with @FT_LOAD_NO_SCALE, `bbox_mode' */ + /* must be set to @FT_GLYPH_BBOX_UNSCALED to get unscaled font */ + /* units in 26.6 pixel format. The value @FT_GLYPH_BBOX_SUBPIXELS */ + /* is another name for this constant. */ + /* */ + /* If the font is tricky and the glyph has been loaded with */ + /* @FT_LOAD_NO_SCALE, the resulting CBox is meaningless. To get */ + /* reasonable values for the CBox it is necessary to load the glyph */ + /* at a large ppem value (so that the hinting instructions can */ + /* properly shift and scale the subglyphs), then extracting the CBox, */ + /* which can be eventually converted back to font units. */ + /* */ + /* Note that the maximum coordinates are exclusive, which means that */ + /* one can compute the width and height of the glyph image (be it in */ + /* integer or 26.6 pixels) as: */ + /* */ + /* { */ + /* width = bbox.xMax - bbox.xMin; */ + /* height = bbox.yMax - bbox.yMin; */ + /* } */ + /* */ + /* Note also that for 26.6 coordinates, if `bbox_mode' is set to */ + /* @FT_GLYPH_BBOX_GRIDFIT, the coordinates will also be grid-fitted, */ + /* which corresponds to: */ + /* */ + /* { */ + /* bbox.xMin = FLOOR(bbox.xMin); */ + /* bbox.yMin = FLOOR(bbox.yMin); */ + /* bbox.xMax = CEILING(bbox.xMax); */ + /* bbox.yMax = CEILING(bbox.yMax); */ + /* } */ + /* */ + /* To get the bbox in pixel coordinates, set `bbox_mode' to */ + /* @FT_GLYPH_BBOX_TRUNCATE. */ + /* */ + /* To get the bbox in grid-fitted pixel coordinates, set `bbox_mode' */ + /* to @FT_GLYPH_BBOX_PIXELS. */ + /* */ FT_EXPORT( void ) FT_Glyph_Get_CBox( FT_Glyph glyph, FT_UInt bbox_mode, FT_BBox *acbox ); - /************************************************************************** - * - * @function: - * FT_Glyph_To_Bitmap - * - * @description: - * Convert a given glyph object to a bitmap glyph object. - * - * @inout: - * the_glyph :: - * A pointer to a handle to the target glyph. - * - * @input: - * render_mode :: - * An enumeration that describes how the data is rendered. - * - * origin :: - * A pointer to a vector used to translate the glyph image before - * rendering. Can be~0 (if no translation). The origin is expressed - * in 26.6 pixels. - * - * destroy :: - * A boolean that indicates that the original glyph image should be - * destroyed by this function. It is never destroyed in case of error. - * - * @return: - * FreeType error code. 0~means success. - * - * @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 use (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] - * - * - * ... - * - * for ( idx = 0; i < MAX_GLYPHS; i++ ) - * error = FT_Load_Glyph( face, idx, FT_LOAD_DEFAULT ) || - * FT_Get_Glyph ( face->glyph, &glyphs[idx] ); - * - * ... - * - * for ( idx = 0; i < MAX_GLYPHS; i++ ) - * { - * FT_Glyph bitmap = glyphs[idx]; - * - * - * ... - * - * // after this call, `bitmap' no longer points into - * // the `glyphs' array (and the old value isn't destroyed) - * FT_Glyph_To_Bitmap( &bitmap, FT_RENDER_MODE_MONO, 0, 0 ); - * - * ... - * - * FT_Done_Glyph( bitmap ); - * } - * - * ... - * - * for ( idx = 0; i < MAX_GLYPHS; i++ ) - * FT_Done_Glyph( glyphs[idx] ); - * ``` - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Glyph_To_Bitmap */ + /* */ + /* <Description> */ + /* Convert a given glyph object to a bitmap glyph object. */ + /* */ + /* <InOut> */ + /* the_glyph :: A pointer to a handle to the target glyph. */ + /* */ + /* <Input> */ + /* render_mode :: An enumeration that describes how the data is */ + /* rendered. */ + /* */ + /* origin :: A pointer to a vector used to translate the glyph */ + /* image before rendering. Can be~0 (if no */ + /* translation). The origin is expressed in */ + /* 26.6 pixels. */ + /* */ + /* destroy :: A boolean that indicates that the original glyph */ + /* image should be destroyed by this function. It is */ + /* never destroyed in case of error. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <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 use (omitting error handling): */ + /* */ + /* */ + /* { */ + /* FT_Glyph glyph; */ + /* FT_BitmapGlyph glyph_bitmap; */ + /* */ + /* */ + /* // load glyph */ + /* error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAUT ); */ + /* */ + /* // 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 another example, again without error handling: */ + /* */ + /* */ + /* { */ + /* FT_Glyph glyphs[MAX_GLYPHS] */ + /* */ + /* */ + /* ... */ + /* */ + /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */ + /* error = FT_Load_Glyph( face, idx, FT_LOAD_DEFAULT ) || */ + /* FT_Get_Glyph ( face->glyph, &glyph[idx] ); */ + /* */ + /* ... */ + /* */ + /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */ + /* { */ + /* FT_Glyph bitmap = glyphs[idx]; */ + /* */ + /* */ + /* ... */ + /* */ + /* // after this call, `bitmap' no longer points into */ + /* // the `glyphs' array (and the old value isn't destroyed) */ + /* FT_Glyph_To_Bitmap( &bitmap, FT_RENDER_MODE_MONO, 0, 0 ); */ + /* */ + /* ... */ + /* */ + /* FT_Done_Glyph( bitmap ); */ + /* } */ + /* */ + /* ... */ + /* */ + /* for ( idx = 0; i < MAX_GLYPHS; i++ ) */ + /* FT_Done_Glyph( glyphs[idx] ); */ + /* } */ + /* */ FT_EXPORT( FT_Error ) FT_Glyph_To_Bitmap( FT_Glyph* the_glyph, FT_Render_Mode render_mode, @@ -575,18 +522,17 @@ FT_BEGIN_HEADER FT_Bool destroy ); - /************************************************************************** - * - * @function: - * FT_Done_Glyph - * - * @description: - * Destroy a given glyph. - * - * @input: - * glyph :: - * A handle to the target glyph object. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Done_Glyph */ + /* */ + /* <Description> */ + /* Destroy a given glyph. */ + /* */ + /* <Input> */ + /* glyph :: A handle to the target glyph object. */ + /* */ FT_EXPORT( void ) FT_Done_Glyph( FT_Glyph glyph ); @@ -595,56 +541,51 @@ FT_BEGIN_HEADER /* other helpful functions */ - /************************************************************************** - * - * @section: - * computations - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* computations */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @function: - * FT_Matrix_Multiply - * - * @description: - * Perform the matrix operation `b = a*b`. - * - * @input: - * a :: - * A pointer to matrix `a`. - * - * @inout: - * b :: - * A pointer to matrix `b`. - * - * @note: - * The result is undefined if either `a` or `b` is zero. - * - * Since the function uses wrap-around arithmetic, results become - * meaningless if the arguments are very large. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Matrix_Multiply */ + /* */ + /* <Description> */ + /* Perform the matrix operation `b = a*b'. */ + /* */ + /* <Input> */ + /* a :: A pointer to matrix `a'. */ + /* */ + /* <InOut> */ + /* b :: A pointer to matrix `b'. */ + /* */ + /* <Note> */ + /* The result is undefined if either `a' or `b' is zero. */ + /* */ FT_EXPORT( void ) FT_Matrix_Multiply( const FT_Matrix* a, FT_Matrix* b ); - /************************************************************************** - * - * @function: - * FT_Matrix_Invert - * - * @description: - * Invert a 2x2 matrix. Return an error if it can't be inverted. - * - * @inout: - * matrix :: - * A pointer to the target matrix. Remains untouched in case of error. - * - * @return: - * FreeType error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Matrix_Invert */ + /* */ + /* <Description> */ + /* Invert a 2x2 matrix. Return an error if it can't be inverted. */ + /* */ + /* <InOut> */ + /* matrix :: A pointer to the target matrix. Remains untouched in */ + /* case of error. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_Matrix_Invert( FT_Matrix* matrix ); @@ -653,7 +594,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTGLYPH_H_ */ +#endif /* __FTGLYPH_H__ */ /* END */ diff --git a/win64/include/freetype/ftgxval.h b/win64/include/freetype/ftgxval.h index 354460a9..88c3d937 100644 --- a/win64/include/freetype/ftgxval.h +++ b/win64/include/freetype/ftgxval.h @@ -1,34 +1,35 @@ -/**************************************************************************** - * - * ftgxval.h - * - * FreeType API for validating TrueTypeGX/AAT tables (specification). - * - * Copyright (C) 2004-2020 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 - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftgxval.h */ +/* */ +/* FreeType API for validating TrueTypeGX/AAT tables (specification). */ +/* */ +/* Copyright 2004-2006, 2013 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 */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ -/**************************************************************************** - * - * gxvalid is derived from both gxlayout module and otvalid module. - * Development of gxlayout is supported by the Information-technology - * Promotion Agency(IPA), Japan. - * - */ +/***************************************************************************/ +/* */ +/* gxvalid is derived from both gxlayout module and otvalid module. */ +/* Development of gxlayout is supported by the Information-technology */ +/* Promotion Agency(IPA), Japan. */ +/* */ +/***************************************************************************/ -#ifndef FTGXVAL_H_ -#define FTGXVAL_H_ +#ifndef __FTGXVAL_H__ +#define __FTGXVAL_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -40,43 +41,43 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * gx_validation - * - * @title: - * TrueTypeGX/AAT Validation - * - * @abstract: - * An API to validate TrueTypeGX/AAT tables. - * - * @description: - * This section contains the declaration of functions to validate some - * TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, trak, - * prop, lcar). - * - * @order: - * FT_TrueTypeGX_Validate - * FT_TrueTypeGX_Free - * - * FT_ClassicKern_Validate - * FT_ClassicKern_Free - * - * FT_VALIDATE_GX_LENGTH - * FT_VALIDATE_GXXXX - * FT_VALIDATE_CKERNXXX - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* gx_validation */ + /* */ + /* <Title> */ + /* TrueTypeGX/AAT Validation */ + /* */ + /* <Abstract> */ + /* An API to validate TrueTypeGX/AAT tables. */ + /* */ + /* <Description> */ + /* This section contains the declaration of functions to validate */ + /* some TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, */ + /* trak, prop, lcar). */ + /* */ + /* <Order> */ + /* FT_TrueTypeGX_Validate */ + /* FT_TrueTypeGX_Free */ + /* */ + /* FT_ClassicKern_Validate */ + /* FT_ClassicKern_Free */ + /* */ + /* FT_VALIDATE_GX_LENGTH */ + /* FT_VALIDATE_GXXXX */ + /* FT_VALIDATE_CKERNXXX */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * - * Warning: Use `FT_VALIDATE_XXX` to validate a table. - * Following definitions are for gxvalid developers. - * - * - */ + /*************************************************************************/ + /* */ + /* */ + /* Warning: Use FT_VALIDATE_XXX to validate a table. */ + /* Following definitions are for gxvalid developers. */ + /* */ + /* */ + /*************************************************************************/ #define FT_VALIDATE_feat_INDEX 0 #define FT_VALIDATE_mort_INDEX 1 @@ -91,71 +92,71 @@ FT_BEGIN_HEADER #define FT_VALIDATE_GX_LAST_INDEX FT_VALIDATE_lcar_INDEX - /************************************************************************** + /************************************************************************* * * @macro: * FT_VALIDATE_GX_LENGTH * * @description: * The number of tables checked in this module. Use it as a parameter - * for the `table-length` argument of function @FT_TrueTypeGX_Validate. + * for the `table-length' argument of function @FT_TrueTypeGX_Validate. */ -#define FT_VALIDATE_GX_LENGTH ( FT_VALIDATE_GX_LAST_INDEX + 1 ) +#define FT_VALIDATE_GX_LENGTH (FT_VALIDATE_GX_LAST_INDEX + 1) /* */ /* Up to 0x1000 is used by otvalid. Ox2xxx is reserved for feature OT extension. */ -#define FT_VALIDATE_GX_START 0x4000 -#define FT_VALIDATE_GX_BITFIELD( tag ) \ - ( FT_VALIDATE_GX_START << FT_VALIDATE_##tag##_INDEX ) +#define FT_VALIDATE_GX_START 0x4000 +#define FT_VALIDATE_GX_BITFIELD( tag ) \ + ( FT_VALIDATE_GX_START << FT_VALIDATE_##tag##_INDEX ) - /************************************************************************** - * - * @enum: - * FT_VALIDATE_GXXXX - * - * @description: - * A list of bit-field constants used with @FT_TrueTypeGX_Validate to - * indicate which TrueTypeGX/AAT Type tables should be validated. - * - * @values: - * FT_VALIDATE_feat :: - * Validate 'feat' table. - * - * FT_VALIDATE_mort :: - * Validate 'mort' table. - * - * FT_VALIDATE_morx :: - * Validate 'morx' table. - * - * FT_VALIDATE_bsln :: - * Validate 'bsln' table. - * - * FT_VALIDATE_just :: - * Validate 'just' table. - * - * FT_VALIDATE_kern :: - * Validate 'kern' table. - * - * FT_VALIDATE_opbd :: - * Validate 'opbd' table. - * - * FT_VALIDATE_trak :: - * Validate 'trak' table. - * - * FT_VALIDATE_prop :: - * Validate 'prop' table. - * - * FT_VALIDATE_lcar :: - * Validate 'lcar' table. - * - * FT_VALIDATE_GX :: - * Validate all TrueTypeGX tables (feat, mort, morx, bsln, just, kern, - * opbd, trak, prop and lcar). - * - */ + /********************************************************************** + * + * @enum: + * FT_VALIDATE_GXXXX + * + * @description: + * A list of bit-field constants used with @FT_TrueTypeGX_Validate to + * indicate which TrueTypeGX/AAT Type tables should be validated. + * + * @values: + * FT_VALIDATE_feat :: + * Validate `feat' table. + * + * FT_VALIDATE_mort :: + * Validate `mort' table. + * + * FT_VALIDATE_morx :: + * Validate `morx' table. + * + * FT_VALIDATE_bsln :: + * Validate `bsln' table. + * + * FT_VALIDATE_just :: + * Validate `just' table. + * + * FT_VALIDATE_kern :: + * Validate `kern' table. + * + * FT_VALIDATE_opbd :: + * Validate `opbd' table. + * + * FT_VALIDATE_trak :: + * Validate `trak' table. + * + * FT_VALIDATE_prop :: + * Validate `prop' table. + * + * FT_VALIDATE_lcar :: + * Validate `lcar' table. + * + * FT_VALIDATE_GX :: + * Validate all TrueTypeGX tables (feat, mort, morx, bsln, just, kern, + * opbd, trak, prop and lcar). + * + */ #define FT_VALIDATE_feat FT_VALIDATE_GX_BITFIELD( feat ) #define FT_VALIDATE_mort FT_VALIDATE_GX_BITFIELD( mort ) @@ -180,47 +181,47 @@ FT_BEGIN_HEADER FT_VALIDATE_lcar ) - /************************************************************************** - * - * @function: - * FT_TrueTypeGX_Validate - * - * @description: - * Validate various TrueTypeGX tables to assure that all offsets and - * indices are valid. The idea is that a higher-level library that - * actually does the text layout can access those tables without error - * checking (which can be quite time consuming). - * - * @input: - * face :: - * A handle to the input face. - * - * validation_flags :: - * A bit field that specifies the tables to be validated. See - * @FT_VALIDATE_GXXXX for possible values. - * - * table_length :: - * The size of the `tables` array. Normally, @FT_VALIDATE_GX_LENGTH - * should be passed. - * - * @output: - * tables :: - * The array where all validated sfnt tables are stored. The array - * itself must be allocated by a client. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with TrueTypeGX fonts, returning an error - * otherwise. - * - * After use, the application should deallocate the buffers pointed to by - * each `tables` element, by calling @FT_TrueTypeGX_Free. A `NULL` value - * indicates that the table either doesn't exist in the font, the - * application hasn't asked for validation, or the validator doesn't have - * the ability to validate the sfnt table. - */ + /********************************************************************** + * + * @function: + * FT_TrueTypeGX_Validate + * + * @description: + * Validate various TrueTypeGX tables to assure that all offsets and + * indices are valid. The idea is that a higher-level library that + * actually does the text layout can access those tables without + * error checking (which can be quite time consuming). + * + * @input: + * face :: + * A handle to the input face. + * + * validation_flags :: + * A bit field that specifies the tables to be validated. See + * @FT_VALIDATE_GXXXX for possible values. + * + * table_length :: + * The size of the `tables' array. Normally, @FT_VALIDATE_GX_LENGTH + * should be passed. + * + * @output: + * tables :: + * The array where all validated sfnt tables are stored. + * The array itself must be allocated by a client. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function only works with TrueTypeGX fonts, returning an error + * otherwise. + * + * After use, the application should deallocate the buffers pointed to by + * each `tables' element, by calling @FT_TrueTypeGX_Free. A NULL value + * indicates that the table either doesn't exist in the font, the + * application hasn't asked for validation, or the validator doesn't have + * the ability to validate the sfnt table. + */ FT_EXPORT( FT_Error ) FT_TrueTypeGX_Validate( FT_Face face, FT_UInt validation_flags, @@ -228,117 +229,119 @@ FT_BEGIN_HEADER FT_UInt table_length ); - /************************************************************************** - * - * @function: - * FT_TrueTypeGX_Free - * - * @description: - * Free the buffer allocated by TrueTypeGX validator. - * - * @input: - * face :: - * A handle to the input face. - * - * table :: - * The pointer to the buffer allocated by @FT_TrueTypeGX_Validate. - * - * @note: - * This function must be used to free the buffer allocated by - * @FT_TrueTypeGX_Validate only. - */ + /********************************************************************** + * + * @function: + * FT_TrueTypeGX_Free + * + * @description: + * Free the buffer allocated by TrueTypeGX validator. + * + * @input: + * face :: + * A handle to the input face. + * + * table :: + * The pointer to the buffer allocated by + * @FT_TrueTypeGX_Validate. + * + * @note: + * This function must be used to free the buffer allocated by + * @FT_TrueTypeGX_Validate only. + */ FT_EXPORT( void ) FT_TrueTypeGX_Free( FT_Face face, FT_Bytes table ); - /************************************************************************** - * - * @enum: - * FT_VALIDATE_CKERNXXX - * - * @description: - * A list of bit-field constants used with @FT_ClassicKern_Validate to - * indicate the classic kern dialect or dialects. If the selected type - * doesn't fit, @FT_ClassicKern_Validate regards the table as invalid. - * - * @values: - * FT_VALIDATE_MS :: - * Handle the 'kern' table as a classic Microsoft kern table. - * - * FT_VALIDATE_APPLE :: - * Handle the 'kern' table as a classic Apple kern table. - * - * FT_VALIDATE_CKERN :: - * Handle the 'kern' as either classic Apple or Microsoft kern table. - */ + /********************************************************************** + * + * @enum: + * FT_VALIDATE_CKERNXXX + * + * @description: + * A list of bit-field constants used with @FT_ClassicKern_Validate + * to indicate the classic kern dialect or dialects. If the selected + * type doesn't fit, @FT_ClassicKern_Validate regards the table as + * invalid. + * + * @values: + * FT_VALIDATE_MS :: + * Handle the `kern' table as a classic Microsoft kern table. + * + * FT_VALIDATE_APPLE :: + * Handle the `kern' table as a classic Apple kern table. + * + * FT_VALIDATE_CKERN :: + * Handle the `kern' as either classic Apple or Microsoft kern table. + */ #define FT_VALIDATE_MS ( FT_VALIDATE_GX_START << 0 ) #define FT_VALIDATE_APPLE ( FT_VALIDATE_GX_START << 1 ) #define FT_VALIDATE_CKERN ( FT_VALIDATE_MS | FT_VALIDATE_APPLE ) - /************************************************************************** - * - * @function: - * FT_ClassicKern_Validate - * - * @description: - * Validate classic (16-bit format) kern table to assure that the - * offsets and indices are valid. The idea is that a higher-level - * library that actually does the text layout can access those tables - * without error checking (which can be quite time consuming). - * - * The 'kern' table validator in @FT_TrueTypeGX_Validate deals with both - * the new 32-bit format and the classic 16-bit format, while - * FT_ClassicKern_Validate only supports the classic 16-bit format. - * - * @input: - * face :: - * A handle to the input face. - * - * validation_flags :: - * A bit field that specifies the dialect to be validated. See - * @FT_VALIDATE_CKERNXXX for possible values. - * - * @output: - * ckern_table :: - * A pointer to the kern table. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * After use, the application should deallocate the buffers pointed to by - * `ckern_table`, by calling @FT_ClassicKern_Free. A `NULL` value - * indicates that the table doesn't exist in the font. - */ + /********************************************************************** + * + * @function: + * FT_ClassicKern_Validate + * + * @description: + * Validate classic (16-bit format) kern table to assure that the offsets + * and indices are valid. The idea is that a higher-level library that + * actually does the text layout can access those tables without error + * checking (which can be quite time consuming). + * + * The `kern' table validator in @FT_TrueTypeGX_Validate deals with both + * the new 32-bit format and the classic 16-bit format, while + * FT_ClassicKern_Validate only supports the classic 16-bit format. + * + * @input: + * face :: + * A handle to the input face. + * + * validation_flags :: + * A bit field that specifies the dialect to be validated. See + * @FT_VALIDATE_CKERNXXX for possible values. + * + * @output: + * ckern_table :: + * A pointer to the kern table. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * After use, the application should deallocate the buffers pointed to by + * `ckern_table', by calling @FT_ClassicKern_Free. A NULL value + * indicates that the table doesn't exist in the font. + */ FT_EXPORT( FT_Error ) FT_ClassicKern_Validate( FT_Face face, FT_UInt validation_flags, FT_Bytes *ckern_table ); - /************************************************************************** - * - * @function: - * FT_ClassicKern_Free - * - * @description: - * Free the buffer allocated by classic Kern validator. - * - * @input: - * face :: - * A handle to the input face. - * - * table :: - * The pointer to the buffer that is allocated by - * @FT_ClassicKern_Validate. - * - * @note: - * This function must be used to free the buffer allocated by - * @FT_ClassicKern_Validate only. - */ + /********************************************************************** + * + * @function: + * FT_ClassicKern_Free + * + * @description: + * Free the buffer allocated by classic Kern validator. + * + * @input: + * face :: + * A handle to the input face. + * + * table :: + * The pointer to the buffer that is allocated by + * @FT_ClassicKern_Validate. + * + * @note: + * This function must be used to free the buffer allocated by + * @FT_ClassicKern_Validate only. + */ FT_EXPORT( void ) FT_ClassicKern_Free( FT_Face face, FT_Bytes table ); @@ -348,7 +351,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTGXVAL_H_ */ +#endif /* __FTGXVAL_H__ */ /* END */ diff --git a/win64/include/freetype/ftgzip.h b/win64/include/freetype/ftgzip.h index ec5939a1..eb346c6d 100644 --- a/win64/include/freetype/ftgzip.h +++ b/win64/include/freetype/ftgzip.h @@ -1,25 +1,26 @@ -/**************************************************************************** - * - * ftgzip.h - * - * Gzip-compressed stream support. - * - * Copyright (C) 2002-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftgzip.h */ +/* */ +/* Gzip-compressed stream support. */ +/* */ +/* Copyright 2002-2004, 2006, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTGZIP_H_ -#define FTGZIP_H_ +#ifndef __FTGZIP_H__ +#define __FTGZIP_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -30,109 +31,105 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * gzip - * - * @title: - * GZIP Streams - * - * @abstract: - * Using gzip-compressed font files. - * - * @description: - * In certain builds of the library, gzip compression recognition is - * automatically handled when calling @FT_New_Face or @FT_Open_Face. - * This means that if no font driver is capable of handling the raw - * compressed file, the library will try to open a gzipped stream from it - * and re-open the face with it. - * - * The stream implementation is very basic and resets the decompression - * process each time seeking backwards is needed within the stream, - * which significantly undermines the performance. - * - * This section contains the declaration of Gzip-specific functions. - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* gzip */ + /* */ + /* <Title> */ + /* GZIP Streams */ + /* */ + /* <Abstract> */ + /* Using gzip-compressed font files. */ + /* */ + /* <Description> */ + /* This section contains the declaration of Gzip-specific functions. */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @function: - * FT_Stream_OpenGzip - * - * @description: - * Open a new stream to parse gzip-compressed font files. This is mainly - * used to support the compressed `*.pcf.gz` fonts that come with - * XFree86. - * - * @input: - * stream :: - * The target embedding stream. - * - * source :: - * The source stream. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source stream must be opened _before_ calling this function. - * - * Calling the internal function `FT_Stream_Close` on the new stream will - * **not** call `FT_Stream_Close` on the source stream. None of the - * stream objects will be released to the heap. - * - * This function may return `FT_Err_Unimplemented_Feature` if your build - * of FreeType was not compiled with zlib support. - */ + /************************************************************************ + * + * @function: + * FT_Stream_OpenGzip + * + * @description: + * Open a new stream to parse gzip-compressed font files. This is + * mainly used to support the compressed `*.pcf.gz' fonts that come + * with XFree86. + * + * @input: + * stream :: + * The target embedding stream. + * + * source :: + * The source stream. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The source stream must be opened _before_ calling this function. + * + * Calling the internal function `FT_Stream_Close' on the new stream will + * *not* call `FT_Stream_Close' on the source stream. None of the stream + * objects will be released to the heap. + * + * The stream implementation is very basic and resets the decompression + * process each time seeking backwards is needed within the stream. + * + * In certain builds of the library, gzip compression recognition is + * automatically handled when calling @FT_New_Face or @FT_Open_Face. + * This means that if no font driver is capable of handling the raw + * compressed file, the library will try to open a gzipped stream from + * it and re-open the face with it. + * + * This function may return `FT_Err_Unimplemented_Feature' if your build + * of FreeType was not compiled with zlib support. + */ FT_EXPORT( FT_Error ) FT_Stream_OpenGzip( FT_Stream stream, FT_Stream source ); - /************************************************************************** - * - * @function: - * FT_Gzip_Uncompress - * - * @description: - * Decompress a zipped input buffer into an output buffer. This function - * is modeled after zlib's `uncompress` function. - * - * @input: - * memory :: - * A FreeType memory handle. - * - * input :: - * The input buffer. - * - * input_len :: - * The length of the input buffer. - * - * @output: - * output :: - * The output buffer. - * - * @inout: - * output_len :: - * Before calling the function, this is the total size of the output - * buffer, which must be large enough to hold the entire uncompressed - * data (so the size of the uncompressed data must be known in - * advance). After calling the function, `output_len` is the size of - * the used data in `output`. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function may return `FT_Err_Unimplemented_Feature` if your build - * of FreeType was not compiled with zlib support. - * - * @since: - * 2.5.1 - */ + /************************************************************************ + * + * @function: + * FT_Gzip_Uncompress + * + * @description: + * Decompress a zipped input buffer into an output buffer. This function + * is modeled after zlib's `uncompress' function. + * + * @input: + * memory :: + * A FreeType memory handle. + * + * input :: + * The input buffer. + * + * input_len :: + * The length of the input buffer. + * + * @output: + * output:: + * The output buffer. + * + * @inout: + * output_len :: + * Before calling the function, this is the the total size of the + * output buffer, which must be large enough to hold the entire + * uncompressed data (so the size of the uncompressed data must be + * known in advance). After calling the function, `output_len' is the + * size of the used data in `output'. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function may return `FT_Err_Unimplemented_Feature' if your build + * of FreeType was not compiled with zlib support. + */ FT_EXPORT( FT_Error ) FT_Gzip_Uncompress( FT_Memory memory, FT_Byte* output, @@ -145,7 +142,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTGZIP_H_ */ +#endif /* __FTGZIP_H__ */ /* END */ diff --git a/win64/include/freetype/ftimage.h b/win64/include/freetype/ftimage.h index 74911620..2f7ca2aa 100644 --- a/win64/include/freetype/ftimage.h +++ b/win64/include/freetype/ftimage.h @@ -1,77 +1,76 @@ -/**************************************************************************** - * - * ftimage.h - * - * FreeType glyph image formats and default raster interface - * (specification). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftimage.h */ +/* */ +/* FreeType glyph image formats and default raster interface */ +/* (specification). */ +/* */ +/* Copyright 1996-2010, 2013, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * Note: A 'raster' is simply a scan-line converter, used to render - * FT_Outlines into FT_Bitmaps. - * - */ + /*************************************************************************/ + /* */ + /* Note: A `raster' is simply a scan-line converter, used to render */ + /* FT_Outlines into FT_Bitmaps. */ + /* */ + /*************************************************************************/ -#ifndef FTIMAGE_H_ -#define FTIMAGE_H_ +#ifndef __FTIMAGE_H__ +#define __FTIMAGE_H__ - /* STANDALONE_ is from ftgrays.c */ -#ifndef STANDALONE_ + /* _STANDALONE_ is from ftgrays.c */ +#ifndef _STANDALONE_ +#include <ft2build.h> #endif FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * basic_types - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* basic_types */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @type: - * FT_Pos - * - * @description: - * The type FT_Pos is used to store vectorial coordinates. Depending on - * the context, these can represent distances in integer font units, or - * 16.16, or 26.6 fixed-point pixel coordinates. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Pos */ + /* */ + /* <Description> */ + /* The type FT_Pos is used to store vectorial coordinates. Depending */ + /* on the context, these can represent distances in integer font */ + /* units, or 16.16, or 26.6 fixed-point pixel coordinates. */ + /* */ typedef signed long FT_Pos; - /************************************************************************** - * - * @struct: - * FT_Vector - * - * @description: - * A simple structure used to store a 2D vector; coordinates are of the - * FT_Pos type. - * - * @fields: - * x :: - * The horizontal coordinate. - * y :: - * The vertical coordinate. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Vector */ + /* */ + /* <Description> */ + /* A simple structure used to store a 2D vector; coordinates are of */ + /* the FT_Pos type. */ + /* */ + /* <Fields> */ + /* x :: The horizontal coordinate. */ + /* y :: The vertical coordinate. */ + /* */ typedef struct FT_Vector_ { FT_Pos x; @@ -80,41 +79,39 @@ FT_BEGIN_HEADER } FT_Vector; - /************************************************************************** - * - * @struct: - * FT_BBox - * - * @description: - * A structure used to hold an outline's bounding box, i.e., the - * coordinates of its extrema in the horizontal and vertical directions. - * - * @fields: - * xMin :: - * The horizontal minimum (left-most). - * - * yMin :: - * The vertical minimum (bottom-most). - * - * xMax :: - * The horizontal maximum (right-most). - * - * yMax :: - * The vertical maximum (top-most). - * - * @note: - * The bounding box is specified with the coordinates of the lower left - * and the upper right corner. In PostScript, those values are often - * called (llx,lly) and (urx,ury), respectively. - * - * If `yMin` is negative, this value gives the glyph's descender. - * Otherwise, the glyph doesn't descend below the baseline. Similarly, - * if `ymax` is positive, this value gives the glyph's ascender. - * - * `xMin` gives the horizontal distance from the glyph's origin to the - * left edge of the glyph's bounding box. If `xMin` is negative, the - * glyph extends to the left of the origin. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_BBox */ + /* */ + /* <Description> */ + /* A structure used to hold an outline's bounding box, i.e., the */ + /* coordinates of its extrema in the horizontal and vertical */ + /* directions. */ + /* */ + /* <Fields> */ + /* xMin :: The horizontal minimum (left-most). */ + /* */ + /* yMin :: The vertical minimum (bottom-most). */ + /* */ + /* xMax :: The horizontal maximum (right-most). */ + /* */ + /* yMax :: The vertical maximum (top-most). */ + /* */ + /* <Note> */ + /* The bounding box is specified with the coordinates of the lower */ + /* left and the upper right corner. In PostScript, those values are */ + /* often called (llx,lly) and (urx,ury), respectively. */ + /* */ + /* If `yMin' is negative, this value gives the glyph's descender. */ + /* Otherwise, the glyph doesn't descend below the baseline. */ + /* Similarly, if `ymax' is positive, this value gives the glyph's */ + /* ascender. */ + /* */ + /* `xMin' gives the horizontal distance from the glyph's origin to */ + /* the left edge of the glyph's bounding box. If `xMin' is negative, */ + /* the glyph extends to the left of the origin. */ + /* */ typedef struct FT_BBox_ { FT_Pos xMin, yMin; @@ -123,60 +120,63 @@ FT_BEGIN_HEADER } FT_BBox; - /************************************************************************** - * - * @enum: - * FT_Pixel_Mode - * - * @description: - * An enumeration type used to describe the format of pixels in a given - * bitmap. Note that additional formats may be added in the future. - * - * @values: - * FT_PIXEL_MODE_NONE :: - * Value~0 is reserved. - * - * FT_PIXEL_MODE_MONO :: - * A monochrome bitmap, using 1~bit per pixel. Note that pixels are - * stored in most-significant order (MSB), which means that the - * left-most pixel in a byte has value 128. - * - * FT_PIXEL_MODE_GRAY :: - * An 8-bit bitmap, generally used to represent anti-aliased glyph - * images. Each pixel is stored in one byte. Note that the number of - * 'gray' levels is stored in the `num_grays` field of the @FT_Bitmap - * structure (it generally is 256). - * - * FT_PIXEL_MODE_GRAY2 :: - * A 2-bit per pixel bitmap, used to represent embedded anti-aliased - * bitmaps in font files according to the OpenType specification. We - * haven't found a single font using this format, however. - * - * FT_PIXEL_MODE_GRAY4 :: - * A 4-bit per pixel bitmap, representing embedded anti-aliased bitmaps - * in font files according to the OpenType specification. We haven't - * found a single font using this format, however. - * - * FT_PIXEL_MODE_LCD :: - * An 8-bit bitmap, representing RGB or BGR decimated glyph images used - * for display on LCD displays; the bitmap is three times wider than - * the original glyph image. See also @FT_RENDER_MODE_LCD. - * - * FT_PIXEL_MODE_LCD_V :: - * An 8-bit bitmap, representing RGB or BGR decimated glyph images used - * for display on rotated LCD displays; the bitmap is three times - * taller than the original glyph image. See also - * @FT_RENDER_MODE_LCD_V. - * - * FT_PIXEL_MODE_BGRA :: - * [Since 2.5] An image with four 8-bit channels per pixel, - * representing a color image (such as emoticons) with alpha channel. - * For each pixel, the format is BGRA, which means, the blue channel - * comes first in memory. The color channels are pre-multiplied and in - * the sRGB colorspace. For example, full red at half-translucent - * opacity will be represented as '00,00,80,80', not '00,00,FF,80'. - * See also @FT_LOAD_COLOR. - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* FT_Pixel_Mode */ + /* */ + /* <Description> */ + /* An enumeration type used to describe the format of pixels in a */ + /* given bitmap. Note that additional formats may be added in the */ + /* future. */ + /* */ + /* <Values> */ + /* FT_PIXEL_MODE_NONE :: */ + /* Value~0 is reserved. */ + /* */ + /* FT_PIXEL_MODE_MONO :: */ + /* A monochrome bitmap, using 1~bit per pixel. Note that pixels */ + /* are stored in most-significant order (MSB), which means that */ + /* the left-most pixel in a byte has value 128. */ + /* */ + /* FT_PIXEL_MODE_GRAY :: */ + /* An 8-bit bitmap, generally used to represent anti-aliased glyph */ + /* images. Each pixel is stored in one byte. Note that the number */ + /* of `gray' levels is stored in the `num_grays' field of the */ + /* @FT_Bitmap structure (it generally is 256). */ + /* */ + /* FT_PIXEL_MODE_GRAY2 :: */ + /* A 2-bit per pixel bitmap, used to represent embedded */ + /* anti-aliased bitmaps in font files according to the OpenType */ + /* specification. We haven't found a single font using this */ + /* format, however. */ + /* */ + /* FT_PIXEL_MODE_GRAY4 :: */ + /* A 4-bit per pixel bitmap, representing embedded anti-aliased */ + /* bitmaps in font files according to the OpenType specification. */ + /* We haven't found a single font using this format, however. */ + /* */ + /* FT_PIXEL_MODE_LCD :: */ + /* An 8-bit bitmap, representing RGB or BGR decimated glyph images */ + /* used for display on LCD displays; the bitmap is three times */ + /* wider than the original glyph image. See also */ + /* @FT_RENDER_MODE_LCD. */ + /* */ + /* FT_PIXEL_MODE_LCD_V :: */ + /* An 8-bit bitmap, representing RGB or BGR decimated glyph images */ + /* used for display on rotated LCD displays; the bitmap is three */ + /* times taller than the original glyph image. See also */ + /* @FT_RENDER_MODE_LCD_V. */ + /* */ + /* FT_PIXEL_MODE_BGRA :: */ + /* An image with four 8-bit channels per pixel, representing a */ + /* color image (such as emoticons) with alpha channel. For each */ + /* pixel, the format is BGRA, which means, the blue channel comes */ + /* first in memory. The color channels are pre-multiplied and in */ + /* the sRGB colorspace. For example, full red at half-translucent */ + /* opacity will be represented as `00,00,80,80', not `00,00,FF,80'. */ + /* See also @FT_LOAD_COLOR. */ + /* */ typedef enum FT_Pixel_Mode_ { FT_PIXEL_MODE_NONE = 0, @@ -193,7 +193,7 @@ FT_BEGIN_HEADER } FT_Pixel_Mode; - /* these constants are deprecated; use the corresponding `FT_Pixel_Mode` */ + /* these constants are deprecated; use the corresponding `FT_Pixel_Mode' */ /* values instead. */ #define ft_pixel_mode_none FT_PIXEL_MODE_NONE #define ft_pixel_mode_mono FT_PIXEL_MODE_MONO @@ -202,61 +202,67 @@ FT_BEGIN_HEADER #define ft_pixel_mode_pal4 FT_PIXEL_MODE_GRAY4 - /************************************************************************** - * - * @struct: - * FT_Bitmap - * - * @description: - * A structure used to describe a bitmap or pixmap to the raster. Note - * that we now manage pixmaps of various depths through the `pixel_mode` - * field. - * - * @fields: - * rows :: - * The number of bitmap rows. - * - * width :: - * The number of pixels in bitmap row. - * - * pitch :: - * The pitch's absolute value is the number of bytes taken by one - * bitmap row, including padding. However, the pitch is positive when - * the bitmap has a 'down' flow, and negative when it has an 'up' flow. - * In all cases, the pitch is an offset to add to a bitmap pointer in - * order to go down one row. - * - * Note that 'padding' means the alignment of a bitmap to a byte - * border, and FreeType functions normally align to the smallest - * possible integer value. - * - * For the B/W rasterizer, `pitch` is always an even number. - * - * To change the pitch of a bitmap (say, to make it a multiple of 4), - * use @FT_Bitmap_Convert. Alternatively, you might use callback - * functions to directly render to the application's surface; see the - * file `example2.cpp` in the tutorial for a demonstration. - * - * buffer :: - * A typeless pointer to the bitmap buffer. This value should be - * aligned on 32-bit boundaries in most cases. - * - * num_grays :: - * This field is only used with @FT_PIXEL_MODE_GRAY; it gives the - * number of gray levels used in the bitmap. - * - * pixel_mode :: - * The pixel mode, i.e., how pixel bits are stored. See @FT_Pixel_Mode - * for possible values. - * - * palette_mode :: - * This field is intended for paletted pixel modes; it indicates how - * the palette is stored. Not used currently. - * - * palette :: - * A typeless pointer to the bitmap palette; this field is intended for - * paletted pixel modes. Not used currently. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Bitmap */ + /* */ + /* <Description> */ + /* A structure used to describe a bitmap or pixmap to the raster. */ + /* Note that we now manage pixmaps of various depths through the */ + /* `pixel_mode' field. */ + /* */ + /* <Fields> */ + /* rows :: The number of bitmap rows. */ + /* */ + /* width :: The number of pixels in bitmap row. */ + /* */ + /* pitch :: The pitch's absolute value is the number of bytes */ + /* taken by one bitmap row, including padding. */ + /* However, the pitch is positive when the bitmap has */ + /* a `down' flow, and negative when it has an `up' */ + /* flow. In all cases, the pitch is an offset to add */ + /* to a bitmap pointer in order to go down one row. */ + /* */ + /* Note that `padding' means the alignment of a */ + /* bitmap to a byte border, and FreeType functions */ + /* normally align to the smallest possible integer */ + /* value. */ + /* */ + /* For the B/W rasterizer, `pitch' is always an even */ + /* number. */ + /* */ + /* To change the pitch of a bitmap (say, to make it a */ + /* multiple of 4), use @FT_Bitmap_Convert. */ + /* Alternatively, you might use callback functions to */ + /* directly render to the application's surface; see */ + /* the file `example2.cpp' in the tutorial for a */ + /* demonstration. */ + /* */ + /* buffer :: A typeless pointer to the bitmap buffer. This */ + /* value should be aligned on 32-bit boundaries in */ + /* most cases. */ + /* */ + /* num_grays :: This field is only used with */ + /* @FT_PIXEL_MODE_GRAY; it gives the number of gray */ + /* levels used in the bitmap. */ + /* */ + /* pixel_mode :: The pixel mode, i.e., how pixel bits are stored. */ + /* See @FT_Pixel_Mode for possible values. */ + /* */ + /* palette_mode :: This field is intended for paletted pixel modes; */ + /* it indicates how the palette is stored. Not */ + /* used currently. */ + /* */ + /* palette :: A typeless pointer to the bitmap palette; this */ + /* field is intended for paletted pixel modes. Not */ + /* used currently. */ + /* */ + /* <Note> */ + /* For now, the only pixel modes supported by FreeType are mono and */ + /* grays. However, drivers might be added in the future to support */ + /* more `colorful' options. */ + /* */ typedef struct FT_Bitmap_ { unsigned int rows; @@ -271,68 +277,65 @@ FT_BEGIN_HEADER } FT_Bitmap; - /************************************************************************** - * - * @section: - * outline_processing - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* outline_processing */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @struct: - * FT_Outline - * - * @description: - * This structure is used to describe an outline to the scan-line - * converter. - * - * @fields: - * n_contours :: - * The number of contours in the outline. - * - * n_points :: - * The number of points in the outline. - * - * points :: - * A pointer to an array of `n_points` @FT_Vector elements, giving the - * outline's point coordinates. - * - * tags :: - * A pointer to an array of `n_points` chars, giving each outline - * point's type. - * - * If bit~0 is unset, the point is 'off' the curve, i.e., a Bezier - * control point, while it is 'on' if set. - * - * Bit~1 is meaningful for 'off' points only. If set, it indicates a - * third-order Bezier arc control point; and a second-order control - * point if unset. - * - * If bit~2 is set, bits 5-7 contain the drop-out mode (as defined in - * the OpenType specification; the value is the same as the argument to - * the 'SCANMODE' instruction). - * - * Bits 3 and~4 are reserved for internal purposes. - * - * contours :: - * An array of `n_contours` shorts, giving the end point of each - * contour within the outline. For example, the first contour is - * defined by the points '0' to `contours[0]`, the second one is - * defined by the points `contours[0]+1` to `contours[1]`, etc. - * - * flags :: - * A set of bit flags used to characterize the outline and give hints - * to the scan-converter and hinter on how to convert/grid-fit it. See - * @FT_OUTLINE_XXX. - * - * @note: - * The B/W rasterizer only checks bit~2 in the `tags` array for the first - * point of each contour. The drop-out mode as given with - * @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, and - * @FT_OUTLINE_INCLUDE_STUBS in `flags` is then overridden. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Outline */ + /* */ + /* <Description> */ + /* This structure is used to describe an outline to the scan-line */ + /* converter. */ + /* */ + /* <Fields> */ + /* n_contours :: The number of contours in the outline. */ + /* */ + /* n_points :: The number of points in the outline. */ + /* */ + /* points :: A pointer to an array of `n_points' @FT_Vector */ + /* elements, giving the outline's point coordinates. */ + /* */ + /* tags :: A pointer to an array of `n_points' chars, giving */ + /* each outline point's type. */ + /* */ + /* If bit~0 is unset, the point is `off' the curve, */ + /* i.e., a Bézier control point, while it is `on' if */ + /* set. */ + /* */ + /* Bit~1 is meaningful for `off' points only. If set, */ + /* it indicates a third-order Bézier arc control point; */ + /* and a second-order control point if unset. */ + /* */ + /* If bit~2 is set, bits 5-7 contain the drop-out mode */ + /* (as defined in the OpenType specification; the value */ + /* is the same as the argument to the SCANMODE */ + /* instruction). */ + /* */ + /* Bits 3 and~4 are reserved for internal purposes. */ + /* */ + /* contours :: An array of `n_contours' shorts, giving the end */ + /* point of each contour within the outline. For */ + /* example, the first contour is defined by the points */ + /* `0' to `contours[0]', the second one is defined by */ + /* the points `contours[0]+1' to `contours[1]', etc. */ + /* */ + /* flags :: A set of bit flags used to characterize the outline */ + /* and give hints to the scan-converter and hinter on */ + /* how to convert/grid-fit it. See @FT_OUTLINE_XXX. */ + /* */ + /* <Note> */ + /* The B/W rasterizer only checks bit~2 in the `tags' array for the */ + /* first point of each contour. The drop-out mode as given with */ + /* @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, and */ + /* @FT_OUTLINE_INCLUDE_STUBS in `flags' is then overridden. */ + /* */ typedef struct FT_Outline_ { short n_contours; /* number of contours in glyph */ @@ -354,83 +357,78 @@ FT_BEGIN_HEADER #define FT_OUTLINE_POINTS_MAX SHRT_MAX - /************************************************************************** - * - * @enum: - * FT_OUTLINE_XXX - * - * @description: - * A list of bit-field constants used for the flags in an outline's - * `flags` field. - * - * @values: - * FT_OUTLINE_NONE :: - * Value~0 is reserved. - * - * FT_OUTLINE_OWNER :: - * If set, this flag indicates that the outline's field arrays (i.e., - * `points`, `flags`, and `contours`) are 'owned' by the outline - * object, and should thus be freed when it is destroyed. - * - * FT_OUTLINE_EVEN_ODD_FILL :: - * By default, outlines are filled using the non-zero winding rule. If - * set to 1, the outline will be filled using the even-odd fill rule - * (only works with the smooth rasterizer). - * - * FT_OUTLINE_REVERSE_FILL :: - * By default, outside contours of an outline are oriented in - * clock-wise direction, as defined in the TrueType specification. - * This flag is set if the outline uses the opposite direction - * (typically for Type~1 fonts). This flag is ignored by the scan - * converter. - * - * FT_OUTLINE_IGNORE_DROPOUTS :: - * By default, the scan converter will try to detect drop-outs in an - * outline and correct the glyph bitmap to ensure consistent shape - * continuity. If set, this flag hints the scan-line converter to - * ignore such cases. See below for more information. - * - * FT_OUTLINE_SMART_DROPOUTS :: - * Select smart dropout control. If unset, use simple dropout control. - * Ignored if @FT_OUTLINE_IGNORE_DROPOUTS is set. See below for more - * information. - * - * 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 :: - * This flag indicates that this outline contains overlapping contrours - * 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. - * - * FT_OUTLINE_SINGLE_PASS :: - * 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. - * - * @note: - * The flags @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, and - * @FT_OUTLINE_INCLUDE_STUBS are ignored by the smooth rasterizer. - * - * There exists a second mechanism to pass the drop-out mode to the B/W - * rasterizer; see the `tags` field in @FT_Outline. - * - * Please refer to the description of the 'SCANTYPE' instruction in the - * OpenType specification (in file `ttinst1.doc`) how simple drop-outs, - * smart drop-outs, and stubs are defined. - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* FT_OUTLINE_XXX */ + /* */ + /* <Description> */ + /* A list of bit-field constants use for the flags in an outline's */ + /* `flags' field. */ + /* */ + /* <Values> */ + /* FT_OUTLINE_NONE :: */ + /* Value~0 is reserved. */ + /* */ + /* FT_OUTLINE_OWNER :: */ + /* If set, this flag indicates that the outline's field arrays */ + /* (i.e., `points', `flags', and `contours') are `owned' by the */ + /* outline object, and should thus be freed when it is destroyed. */ + /* */ + /* FT_OUTLINE_EVEN_ODD_FILL :: */ + /* By default, outlines are filled using the non-zero winding rule. */ + /* If set to 1, the outline will be filled using the even-odd fill */ + /* rule (only works with the smooth rasterizer). */ + /* */ + /* FT_OUTLINE_REVERSE_FILL :: */ + /* By default, outside contours of an outline are oriented in */ + /* clock-wise direction, as defined in the TrueType specification. */ + /* This flag is set if the outline uses the opposite direction */ + /* (typically for Type~1 fonts). This flag is ignored by the scan */ + /* converter. */ + /* */ + /* FT_OUTLINE_IGNORE_DROPOUTS :: */ + /* By default, the scan converter will try to detect drop-outs in */ + /* an outline and correct the glyph bitmap to ensure consistent */ + /* shape continuity. If set, this flag hints the scan-line */ + /* converter to ignore such cases. See below for more information. */ + /* */ + /* FT_OUTLINE_SMART_DROPOUTS :: */ + /* Select smart dropout control. If unset, use simple dropout */ + /* control. Ignored if @FT_OUTLINE_IGNORE_DROPOUTS is set. See */ + /* below for more information. */ + /* */ + /* 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_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. */ + /* */ + /* FT_OUTLINE_SINGLE_PASS :: */ + /* 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. */ + /* */ + /* <Note> */ + /* The flags @FT_OUTLINE_IGNORE_DROPOUTS, @FT_OUTLINE_SMART_DROPOUTS, */ + /* and @FT_OUTLINE_INCLUDE_STUBS are ignored by the smooth */ + /* rasterizer. */ + /* */ + /* There exists a second mechanism to pass the drop-out mode to the */ + /* B/W rasterizer; see the `tags' field in @FT_Outline. */ + /* */ + /* Please refer to the description of the `SCANTYPE' instruction in */ + /* the OpenType specification (in file `ttinst1.doc') how simple */ + /* drop-outs, smart drop-outs, and stubs are defined. */ + /* */ #define FT_OUTLINE_NONE 0x0 #define FT_OUTLINE_OWNER 0x1 #define FT_OUTLINE_EVEN_ODD_FILL 0x2 @@ -438,14 +436,13 @@ FT_BEGIN_HEADER #define FT_OUTLINE_IGNORE_DROPOUTS 0x8 #define FT_OUTLINE_SMART_DROPOUTS 0x10 #define FT_OUTLINE_INCLUDE_STUBS 0x20 -#define FT_OUTLINE_OVERLAP 0x40 #define FT_OUTLINE_HIGH_PRECISION 0x100 #define FT_OUTLINE_SINGLE_PASS 0x200 /* these constants are deprecated; use the corresponding */ - /* `FT_OUTLINE_XXX` values instead */ + /* `FT_OUTLINE_XXX' values instead */ #define ft_outline_none FT_OUTLINE_NONE #define ft_outline_owner FT_OUTLINE_OWNER #define ft_outline_even_odd_fill FT_OUTLINE_EVEN_ODD_FILL @@ -456,25 +453,20 @@ FT_BEGIN_HEADER /* */ -#define FT_CURVE_TAG( flag ) ( flag & 0x03 ) +#define FT_CURVE_TAG( flag ) ( flag & 3 ) - /* see the `tags` field in `FT_Outline` for a description of the values */ -#define FT_CURVE_TAG_ON 0x01 -#define FT_CURVE_TAG_CONIC 0x00 -#define FT_CURVE_TAG_CUBIC 0x02 +#define FT_CURVE_TAG_ON 1 +#define FT_CURVE_TAG_CONIC 0 +#define FT_CURVE_TAG_CUBIC 2 -#define FT_CURVE_TAG_HAS_SCANMODE 0x04 +#define FT_CURVE_TAG_HAS_SCANMODE 4 -#define FT_CURVE_TAG_TOUCH_X 0x08 /* reserved for TrueType hinter */ -#define FT_CURVE_TAG_TOUCH_Y 0x10 /* reserved for TrueType hinter */ +#define FT_CURVE_TAG_TOUCH_X 8 /* reserved for the TrueType hinter */ +#define FT_CURVE_TAG_TOUCH_Y 16 /* reserved for the TrueType hinter */ #define FT_CURVE_TAG_TOUCH_BOTH ( FT_CURVE_TAG_TOUCH_X | \ FT_CURVE_TAG_TOUCH_Y ) - /* values 0x20, 0x40, and 0x80 are reserved */ - - /* these constants are deprecated; use the corresponding */ - /* `FT_CURVE_TAG_XXX` values instead */ #define FT_Curve_Tag_On FT_CURVE_TAG_ON #define FT_Curve_Tag_Conic FT_CURVE_TAG_CONIC #define FT_Curve_Tag_Cubic FT_CURVE_TAG_CUBIC @@ -482,28 +474,26 @@ FT_BEGIN_HEADER #define FT_Curve_Tag_Touch_Y FT_CURVE_TAG_TOUCH_Y - /************************************************************************** - * - * @functype: - * FT_Outline_MoveToFunc - * - * @description: - * A function pointer type used to describe the signature of a 'move to' - * function during outline walking/decomposition. - * - * A 'move to' is emitted to start a new contour in an outline. - * - * @input: - * to :: - * A pointer to the target point of the 'move to'. - * - * user :: - * A typeless pointer, which is passed from the caller of the - * decomposition function. - * - * @return: - * Error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Outline_MoveToFunc */ + /* */ + /* <Description> */ + /* A function pointer type used to describe the signature of a `move */ + /* to' function during outline walking/decomposition. */ + /* */ + /* A `move to' is emitted to start a new contour in an outline. */ + /* */ + /* <Input> */ + /* to :: A pointer to the target point of the `move to'. */ + /* */ + /* user :: A typeless pointer, which is passed from the caller of the */ + /* decomposition function. */ + /* */ + /* <Return> */ + /* Error code. 0~means success. */ + /* */ typedef int (*FT_Outline_MoveToFunc)( const FT_Vector* to, void* user ); @@ -511,28 +501,26 @@ FT_BEGIN_HEADER #define FT_Outline_MoveTo_Func FT_Outline_MoveToFunc - /************************************************************************** - * - * @functype: - * FT_Outline_LineToFunc - * - * @description: - * A function pointer type used to describe the signature of a 'line to' - * function during outline walking/decomposition. - * - * A 'line to' is emitted to indicate a segment in the outline. - * - * @input: - * to :: - * A pointer to the target point of the 'line to'. - * - * user :: - * A typeless pointer, which is passed from the caller of the - * decomposition function. - * - * @return: - * Error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Outline_LineToFunc */ + /* */ + /* <Description> */ + /* A function pointer type used to describe the signature of a `line */ + /* to' function during outline walking/decomposition. */ + /* */ + /* A `line to' is emitted to indicate a segment in the outline. */ + /* */ + /* <Input> */ + /* to :: A pointer to the target point of the `line to'. */ + /* */ + /* user :: A typeless pointer, which is passed from the caller of the */ + /* decomposition function. */ + /* */ + /* <Return> */ + /* Error code. 0~means success. */ + /* */ typedef int (*FT_Outline_LineToFunc)( const FT_Vector* to, void* user ); @@ -540,33 +528,30 @@ FT_BEGIN_HEADER #define FT_Outline_LineTo_Func FT_Outline_LineToFunc - /************************************************************************** - * - * @functype: - * FT_Outline_ConicToFunc - * - * @description: - * A function pointer type used to describe the signature of a 'conic to' - * function during outline walking or decomposition. - * - * A 'conic to' is emitted to indicate a second-order Bezier arc in the - * outline. - * - * @input: - * control :: - * An intermediate control point between the last position and the new - * target in `to`. - * - * to :: - * A pointer to the target end point of the conic arc. - * - * user :: - * A typeless pointer, which is passed from the caller of the - * decomposition function. - * - * @return: - * Error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Outline_ConicToFunc */ + /* */ + /* <Description> */ + /* A function pointer type used to describe the signature of a `conic */ + /* to' function during outline walking or decomposition. */ + /* */ + /* A `conic to' is emitted to indicate a second-order Bézier arc in */ + /* the outline. */ + /* */ + /* <Input> */ + /* control :: An intermediate control point between the last position */ + /* and the new target in `to'. */ + /* */ + /* to :: A pointer to the target end point of the conic arc. */ + /* */ + /* user :: A typeless pointer, which is passed from the caller of */ + /* the decomposition function. */ + /* */ + /* <Return> */ + /* Error code. 0~means success. */ + /* */ typedef int (*FT_Outline_ConicToFunc)( const FT_Vector* control, const FT_Vector* to, @@ -575,34 +560,30 @@ FT_BEGIN_HEADER #define FT_Outline_ConicTo_Func FT_Outline_ConicToFunc - /************************************************************************** - * - * @functype: - * FT_Outline_CubicToFunc - * - * @description: - * A function pointer type used to describe the signature of a 'cubic to' - * function during outline walking or decomposition. - * - * A 'cubic to' is emitted to indicate a third-order Bezier arc. - * - * @input: - * control1 :: - * A pointer to the first Bezier control point. - * - * control2 :: - * A pointer to the second Bezier control point. - * - * to :: - * A pointer to the target end point. - * - * user :: - * A typeless pointer, which is passed from the caller of the - * decomposition function. - * - * @return: - * Error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Outline_CubicToFunc */ + /* */ + /* <Description> */ + /* A function pointer type used to describe the signature of a `cubic */ + /* to' function during outline walking or decomposition. */ + /* */ + /* A `cubic to' is emitted to indicate a third-order Bézier arc. */ + /* */ + /* <Input> */ + /* control1 :: A pointer to the first Bézier control point. */ + /* */ + /* control2 :: A pointer to the second Bézier control point. */ + /* */ + /* to :: A pointer to the target end point. */ + /* */ + /* user :: A typeless pointer, which is passed from the caller of */ + /* the decomposition function. */ + /* */ + /* <Return> */ + /* Error code. 0~means success. */ + /* */ typedef int (*FT_Outline_CubicToFunc)( const FT_Vector* control1, const FT_Vector* control2, @@ -612,49 +593,43 @@ FT_BEGIN_HEADER #define FT_Outline_CubicTo_Func FT_Outline_CubicToFunc - /************************************************************************** - * - * @struct: - * FT_Outline_Funcs - * - * @description: - * A structure to hold various function pointers used during outline - * decomposition in order to emit segments, conic, and cubic Beziers. - * - * @fields: - * move_to :: - * The 'move to' emitter. - * - * line_to :: - * The segment emitter. - * - * conic_to :: - * The second-order Bezier arc emitter. - * - * cubic_to :: - * The third-order Bezier arc emitter. - * - * shift :: - * The shift that is applied to coordinates before they are sent to the - * emitter. - * - * delta :: - * The delta that is applied to coordinates before they are sent to the - * emitter, but after the shift. - * - * @note: - * The point coordinates sent to the emitters are the transformed version - * of the original coordinates (this is important for high accuracy - * during scan-conversion). The transformation is simple: - * - * ``` - * x' = (x << shift) - delta - * y' = (y << shift) - delta - * ``` - * - * Set the values of `shift` and `delta` to~0 to get the original point - * coordinates. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Outline_Funcs */ + /* */ + /* <Description> */ + /* A structure to hold various function pointers used during outline */ + /* decomposition in order to emit segments, conic, and cubic Béziers. */ + /* */ + /* <Fields> */ + /* move_to :: The `move to' emitter. */ + /* */ + /* line_to :: The segment emitter. */ + /* */ + /* conic_to :: The second-order Bézier arc emitter. */ + /* */ + /* cubic_to :: The third-order Bézier arc emitter. */ + /* */ + /* shift :: The shift that is applied to coordinates before they */ + /* are sent to the emitter. */ + /* */ + /* delta :: The delta that is applied to coordinates before they */ + /* are sent to the emitter, but after the shift. */ + /* */ + /* <Note> */ + /* The point coordinates sent to the emitters are the transformed */ + /* version of the original coordinates (this is important for high */ + /* accuracy during scan-conversion). The transformation is simple: */ + /* */ + /* { */ + /* x' = (x << shift) - delta */ + /* y' = (x << shift) - delta */ + /* } */ + /* */ + /* Set the values of `shift' and `delta' to~0 to get the original */ + /* point coordinates. */ + /* */ typedef struct FT_Outline_Funcs_ { FT_Outline_MoveToFunc move_to; @@ -668,32 +643,33 @@ FT_BEGIN_HEADER } FT_Outline_Funcs; - /************************************************************************** - * - * @section: - * basic_types - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* basic_types */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @macro: - * FT_IMAGE_TAG - * - * @description: - * This macro converts four-letter tags to an unsigned long type. - * - * @note: - * Since many 16-bit compilers don't like 32-bit enumerations, you should - * redefine this macro in case of problems to something like this: - * - * ``` - * #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) value - * ``` - * - * to get a simple enumeration without assigning special numbers. - */ + /*************************************************************************/ + /* */ + /* <Macro> */ + /* FT_IMAGE_TAG */ + /* */ + /* <Description> */ + /* This macro converts four-letter tags to an unsigned long type. */ + /* */ + /* <Note> */ + /* Since many 16-bit compilers don't like 32-bit enumerations, you */ + /* should redefine this macro in case of problems to something like */ + /* this: */ + /* */ + /* { */ + /* #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) value */ + /* } */ + /* */ + /* to get a simple enumeration without assigning special numbers. */ + /* */ #ifndef FT_IMAGE_TAG #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) \ value = ( ( (unsigned long)_x1 << 24 ) | \ @@ -703,43 +679,44 @@ FT_BEGIN_HEADER #endif /* FT_IMAGE_TAG */ - /************************************************************************** - * - * @enum: - * FT_Glyph_Format - * - * @description: - * An enumeration type used to describe the format of a given glyph - * image. Note that this version of FreeType only supports two image - * formats, even though future font drivers will be able to register - * their own format. - * - * @values: - * FT_GLYPH_FORMAT_NONE :: - * The value~0 is reserved. - * - * FT_GLYPH_FORMAT_COMPOSITE :: - * The glyph image is a composite of several other images. This format - * is _only_ used with @FT_LOAD_NO_RECURSE, and is used to report - * compound glyphs (like accented characters). - * - * FT_GLYPH_FORMAT_BITMAP :: - * The glyph image is a bitmap, and can be described as an @FT_Bitmap. - * You generally need to access the `bitmap` field of the - * @FT_GlyphSlotRec structure to read it. - * - * FT_GLYPH_FORMAT_OUTLINE :: - * The glyph image is a vectorial outline made of line segments and - * Bezier arcs; it can be described as an @FT_Outline; you generally - * want to access the `outline` field of the @FT_GlyphSlotRec structure - * 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. - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* FT_Glyph_Format */ + /* */ + /* <Description> */ + /* An enumeration type used to describe the format of a given glyph */ + /* image. Note that this version of FreeType only supports two image */ + /* formats, even though future font drivers will be able to register */ + /* their own format. */ + /* */ + /* <Values> */ + /* FT_GLYPH_FORMAT_NONE :: */ + /* The value~0 is reserved. */ + /* */ + /* FT_GLYPH_FORMAT_COMPOSITE :: */ + /* The glyph image is a composite of several other images. This */ + /* format is _only_ used with @FT_LOAD_NO_RECURSE, and is used to */ + /* report compound glyphs (like accented characters). */ + /* */ + /* FT_GLYPH_FORMAT_BITMAP :: */ + /* The glyph image is a bitmap, and can be described as an */ + /* @FT_Bitmap. You generally need to access the `bitmap' field of */ + /* the @FT_GlyphSlotRec structure to read it. */ + /* */ + /* FT_GLYPH_FORMAT_OUTLINE :: */ + /* The glyph image is a vectorial outline made of line segments */ + /* and Bézier arcs; it can be described as an @FT_Outline; you */ + /* generally want to access the `outline' field of the */ + /* @FT_GlyphSlotRec structure 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 ), @@ -753,7 +730,7 @@ FT_BEGIN_HEADER /* these constants are deprecated; use the corresponding */ - /* `FT_Glyph_Format` values instead. */ + /* `FT_Glyph_Format' values instead. */ #define ft_glyph_format_none FT_GLYPH_FORMAT_NONE #define ft_glyph_format_composite FT_GLYPH_FORMAT_COMPOSITE #define ft_glyph_format_bitmap FT_GLYPH_FORMAT_BITMAP @@ -772,89 +749,87 @@ FT_BEGIN_HEADER /*************************************************************************/ - /************************************************************************** - * - * A raster is a scan converter, in charge of rendering an outline into a - * bitmap. This section contains the public API for rasters. - * - * Note that in FreeType 2, all rasters are now encapsulated within - * specific modules called 'renderers'. See `ftrender.h` for more details - * on renderers. - * - */ + /*************************************************************************/ + /* */ + /* A raster is a scan converter, in charge of rendering an outline into */ + /* a a bitmap. This section contains the public API for rasters. */ + /* */ + /* Note that in FreeType 2, all rasters are now encapsulated within */ + /* specific modules called `renderers'. See `ftrender.h' for more */ + /* details on renderers. */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @section: - * raster - * - * @title: - * Scanline Converter - * - * @abstract: - * How vectorial outlines are converted into bitmaps and pixmaps. - * - * @description: - * This section contains technical definitions. - * - * @order: - * FT_Raster - * FT_Span - * FT_SpanFunc - * - * FT_Raster_Params - * FT_RASTER_FLAG_XXX - * - * FT_Raster_NewFunc - * FT_Raster_DoneFunc - * FT_Raster_ResetFunc - * FT_Raster_SetModeFunc - * FT_Raster_RenderFunc - * FT_Raster_Funcs - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* raster */ + /* */ + /* <Title> */ + /* Scanline Converter */ + /* */ + /* <Abstract> */ + /* How vectorial outlines are converted into bitmaps and pixmaps. */ + /* */ + /* <Description> */ + /* This section contains technical definitions. */ + /* */ + /* <Order> */ + /* FT_Raster */ + /* FT_Span */ + /* FT_SpanFunc */ + /* */ + /* FT_Raster_Params */ + /* FT_RASTER_FLAG_XXX */ + /* */ + /* FT_Raster_NewFunc */ + /* FT_Raster_DoneFunc */ + /* FT_Raster_ResetFunc */ + /* FT_Raster_SetModeFunc */ + /* FT_Raster_RenderFunc */ + /* FT_Raster_Funcs */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @type: - * FT_Raster - * - * @description: - * An opaque handle (pointer) to a raster object. Each object can be - * used independently to convert an outline into a bitmap or pixmap. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Raster */ + /* */ + /* <Description> */ + /* An opaque handle (pointer) to a raster object. Each object can be */ + /* used independently to convert an outline into a bitmap or pixmap. */ + /* */ typedef struct FT_RasterRec_* FT_Raster; - /************************************************************************** - * - * @struct: - * FT_Span - * - * @description: - * A structure used to model a single span of gray pixels when rendering - * an anti-aliased bitmap. - * - * @fields: - * x :: - * The span's horizontal start position. - * - * len :: - * The span's length in pixels. - * - * coverage :: - * The span color/coverage, ranging from 0 (background) to 255 - * (foreground). - * - * @note: - * This structure is used by the span drawing callback type named - * @FT_SpanFunc that takes the y~coordinate of the span as a parameter. - * - * The coverage value is always between 0 and 255. If you want less gray - * values, the callback function has to reduce them. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Span */ + /* */ + /* <Description> */ + /* A structure used to model a single span of gray pixels when */ + /* rendering an anti-aliased bitmap. */ + /* */ + /* <Fields> */ + /* x :: The span's horizontal start position. */ + /* */ + /* len :: The span's length in pixels. */ + /* */ + /* coverage :: The span color/coverage, ranging from 0 (background) */ + /* to 255 (foreground). */ + /* */ + /* <Note> */ + /* This structure is used by the span drawing callback type named */ + /* @FT_SpanFunc that takes the y~coordinate of the span as a */ + /* parameter. */ + /* */ + /* The coverage value is always between 0 and 255. If you want less */ + /* gray values, the callback function has to reduce them. */ + /* */ typedef struct FT_Span_ { short x; @@ -864,36 +839,42 @@ FT_BEGIN_HEADER } FT_Span; - /************************************************************************** - * - * @functype: - * FT_SpanFunc - * - * @description: - * A function used as a call-back by the anti-aliased renderer in order - * to let client applications draw themselves the gray pixel spans on - * each scan line. - * - * @input: - * y :: - * The scanline's upward y~coordinate. - * - * count :: - * The number of spans to draw on this scanline. - * - * spans :: - * A table of `count` spans to draw on the scanline. - * - * user :: - * User-supplied data that is passed to the callback. - * - * @note: - * This callback allows client applications to directly render the gray - * spans of the anti-aliased bitmap to any kind of surfaces. - * - * This can be used to write anti-aliased outlines directly to a given - * background bitmap, and even perform translucency. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_SpanFunc */ + /* */ + /* <Description> */ + /* A function used as a call-back by the anti-aliased renderer in */ + /* order to let client applications draw themselves the gray pixel */ + /* spans on each scan line. */ + /* */ + /* <Input> */ + /* y :: The scanline's y~coordinate. */ + /* */ + /* count :: The number of spans to draw on this scanline. */ + /* */ + /* spans :: A table of `count' spans to draw on the scanline. */ + /* */ + /* user :: User-supplied data that is passed to the callback. */ + /* */ + /* <Note> */ + /* This callback allows client applications to directly render the */ + /* gray spans of the anti-aliased bitmap to any kind of surfaces. */ + /* */ + /* This can be used to write anti-aliased outlines directly to a */ + /* given background bitmap, and even perform translucency. */ + /* */ + /* Note that the `count' field cannot be greater than a fixed value */ + /* defined by the `FT_MAX_GRAY_SPANS' configuration macro in */ + /* `ftoption.h'. By default, this value is set to~32, which means */ + /* that if there are more than 32~spans on a given scanline, the */ + /* callback is called several times with the same `y' parameter in */ + /* order to draw all callbacks. */ + /* */ + /* Otherwise, the callback is only called once per scan-line, and */ + /* only for those scanlines that do have `gray' pixels on them. */ + /* */ typedef void (*FT_SpanFunc)( int y, int count, @@ -903,135 +884,131 @@ FT_BEGIN_HEADER #define FT_Raster_Span_Func FT_SpanFunc - /************************************************************************** - * - * @functype: - * FT_Raster_BitTest_Func - * - * @description: - * Deprecated, unimplemented. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Raster_BitTest_Func */ + /* */ + /* <Description> */ + /* Deprecated, unimplemented. */ + /* */ typedef int (*FT_Raster_BitTest_Func)( int y, int x, void* user ); - /************************************************************************** - * - * @functype: - * FT_Raster_BitSet_Func - * - * @description: - * Deprecated, unimplemented. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Raster_BitSet_Func */ + /* */ + /* <Description> */ + /* Deprecated, unimplemented. */ + /* */ typedef void (*FT_Raster_BitSet_Func)( int y, int x, void* user ); - /************************************************************************** - * - * @enum: - * FT_RASTER_FLAG_XXX - * - * @description: - * A list of bit flag constants as used in the `flags` field of a - * @FT_Raster_Params structure. - * - * @values: - * FT_RASTER_FLAG_DEFAULT :: - * This value is 0. - * - * FT_RASTER_FLAG_AA :: - * This flag is set to indicate that an anti-aliased glyph image should - * be generated. Otherwise, it will be monochrome (1-bit). - * - * FT_RASTER_FLAG_DIRECT :: - * This flag is set to indicate direct rendering. In this mode, client - * applications must provide their own span callback. This lets them - * directly draw or compose over an existing bitmap. If this bit is - * _not_ set, the target pixmap's buffer _must_ be zeroed before - * rendering and the output will be clipped to its size. - * - * Direct rendering is only possible with anti-aliased glyphs. - * - * FT_RASTER_FLAG_CLIP :: - * This flag is only used in direct rendering mode. If set, the output - * will be clipped to a box specified in the `clip_box` field of the - * @FT_Raster_Params structure. Otherwise, the `clip_box` is - * effectively set to the bounding box and all spans are generated. - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* FT_RASTER_FLAG_XXX */ + /* */ + /* <Description> */ + /* A list of bit flag constants as used in the `flags' field of a */ + /* @FT_Raster_Params structure. */ + /* */ + /* <Values> */ + /* FT_RASTER_FLAG_DEFAULT :: This value is 0. */ + /* */ + /* FT_RASTER_FLAG_AA :: This flag is set to indicate that an */ + /* anti-aliased glyph image should be */ + /* generated. Otherwise, it will be */ + /* monochrome (1-bit). */ + /* */ + /* FT_RASTER_FLAG_DIRECT :: This flag is set to indicate direct */ + /* rendering. In this mode, client */ + /* applications must provide their own span */ + /* callback. This lets them directly */ + /* draw or compose over an existing bitmap. */ + /* If this bit is not set, the target */ + /* pixmap's buffer _must_ be zeroed before */ + /* rendering. */ + /* */ + /* Direct rendering is only possible with */ + /* anti-aliased glyphs. */ + /* */ + /* FT_RASTER_FLAG_CLIP :: This flag is only used in direct */ + /* rendering mode. If set, the output will */ + /* be clipped to a box specified in the */ + /* `clip_box' field of the */ + /* @FT_Raster_Params structure. */ + /* */ + /* Note that by default, the glyph bitmap */ + /* is clipped to the target pixmap, except */ + /* in direct rendering mode where all spans */ + /* are generated if no clipping box is set. */ + /* */ #define FT_RASTER_FLAG_DEFAULT 0x0 #define FT_RASTER_FLAG_AA 0x1 #define FT_RASTER_FLAG_DIRECT 0x2 #define FT_RASTER_FLAG_CLIP 0x4 /* these constants are deprecated; use the corresponding */ - /* `FT_RASTER_FLAG_XXX` values instead */ + /* `FT_RASTER_FLAG_XXX' values instead */ #define ft_raster_flag_default FT_RASTER_FLAG_DEFAULT #define ft_raster_flag_aa FT_RASTER_FLAG_AA #define ft_raster_flag_direct FT_RASTER_FLAG_DIRECT #define ft_raster_flag_clip FT_RASTER_FLAG_CLIP - /************************************************************************** - * - * @struct: - * FT_Raster_Params - * - * @description: - * A structure to hold the parameters used by a raster's render function, - * passed as an argument to @FT_Outline_Render. - * - * @fields: - * target :: - * The target bitmap. - * - * source :: - * A pointer to the source glyph image (e.g., an @FT_Outline). - * - * flags :: - * The rendering flags. - * - * gray_spans :: - * The gray span drawing callback. - * - * black_spans :: - * Unused. - * - * bit_test :: - * Unused. - * - * bit_set :: - * Unused. - * - * user :: - * User-supplied data that is passed to each drawing callback. - * - * clip_box :: - * An optional span clipping box expressed in _integer_ pixels - * (not in 26.6 fixed-point units). - * - * @note: - * The @FT_RASTER_FLAG_AA bit flag must be set in the `flags` to - * generate an anti-aliased glyph bitmap, otherwise a monochrome bitmap - * is generated. The `target` should have appropriate pixel mode and its - * dimensions define the clipping region. - * - * If both @FT_RASTER_FLAG_AA and @FT_RASTER_FLAG_DIRECT bit flags - * are set in `flags`, the raster calls an @FT_SpanFunc callback - * `gray_spans` with `user` data as an argument ignoring `target`. This - * allows direct composition over a pre-existing user surface to perform - * the span drawing and composition. To optionally clip the spans, set - * the @FT_RASTER_FLAG_CLIP flag and `clip_box`. The monochrome raster - * does not support the direct mode. - * - * The gray-level rasterizer always uses 256 gray levels. If you want - * fewer gray levels, you have to use @FT_RASTER_FLAG_DIRECT and reduce - * the levels in the callback function. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Raster_Params */ + /* */ + /* <Description> */ + /* A structure to hold the arguments used by a raster's render */ + /* function. */ + /* */ + /* <Fields> */ + /* target :: The target bitmap. */ + /* */ + /* source :: A pointer to the source glyph image (e.g., an */ + /* @FT_Outline). */ + /* */ + /* flags :: The rendering flags. */ + /* */ + /* gray_spans :: The gray span drawing callback. */ + /* */ + /* black_spans :: Unused. */ + /* */ + /* bit_test :: Unused. */ + /* */ + /* bit_set :: Unused. */ + /* */ + /* user :: User-supplied data that is passed to each drawing */ + /* callback. */ + /* */ + /* clip_box :: An optional clipping box. It is only used in */ + /* direct rendering mode. Note that coordinates here */ + /* should be expressed in _integer_ pixels (and not in */ + /* 26.6 fixed-point units). */ + /* */ + /* <Note> */ + /* An anti-aliased glyph bitmap is drawn if the @FT_RASTER_FLAG_AA */ + /* bit flag is set in the `flags' field, otherwise a monochrome */ + /* bitmap is generated. */ + /* */ + /* If the @FT_RASTER_FLAG_DIRECT bit flag is set in `flags', the */ + /* raster will call the `gray_spans' callback to draw gray pixel */ + /* spans. This allows direct composition over a pre-existing bitmap */ + /* through user-provided callbacks to perform the span drawing and */ + /* composition. Not supported by the monochrome rasterizer. */ + /* */ typedef struct FT_Raster_Params_ { const FT_Bitmap* target; @@ -1047,32 +1024,30 @@ FT_BEGIN_HEADER } FT_Raster_Params; - /************************************************************************** - * - * @functype: - * FT_Raster_NewFunc - * - * @description: - * A function used to create a new raster object. - * - * @input: - * memory :: - * A handle to the memory allocator. - * - * @output: - * raster :: - * A handle to the new raster object. - * - * @return: - * Error code. 0~means success. - * - * @note: - * The `memory` parameter is a typeless pointer in order to avoid - * un-wanted dependencies on the rest of the FreeType code. In practice, - * it is an @FT_Memory object, i.e., a handle to the standard FreeType - * memory allocator. However, this field can be completely ignored by a - * given raster implementation. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Raster_NewFunc */ + /* */ + /* <Description> */ + /* A function used to create a new raster object. */ + /* */ + /* <Input> */ + /* memory :: A handle to the memory allocator. */ + /* */ + /* <Output> */ + /* raster :: A handle to the new raster object. */ + /* */ + /* <Return> */ + /* Error code. 0~means success. */ + /* */ + /* <Note> */ + /* The `memory' parameter is a typeless pointer in order to avoid */ + /* un-wanted dependencies on the rest of the FreeType code. In */ + /* practice, it is an @FT_Memory object, i.e., a handle to the */ + /* standard FreeType memory allocator. However, this field can be */ + /* completely ignored by a given raster implementation. */ + /* */ typedef int (*FT_Raster_NewFunc)( void* memory, FT_Raster* raster ); @@ -1080,52 +1055,50 @@ FT_BEGIN_HEADER #define FT_Raster_New_Func FT_Raster_NewFunc - /************************************************************************** - * - * @functype: - * FT_Raster_DoneFunc - * - * @description: - * A function used to destroy a given raster object. - * - * @input: - * raster :: - * A handle to the raster object. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Raster_DoneFunc */ + /* */ + /* <Description> */ + /* A function used to destroy a given raster object. */ + /* */ + /* <Input> */ + /* raster :: A handle to the raster object. */ + /* */ typedef void (*FT_Raster_DoneFunc)( FT_Raster raster ); #define FT_Raster_Done_Func FT_Raster_DoneFunc - /************************************************************************** - * - * @functype: - * FT_Raster_ResetFunc - * - * @description: - * FreeType used to provide an area of memory called the 'render pool' - * available to all registered rasterizers. This was not thread safe, - * however, and now FreeType never allocates this pool. - * - * This function is called after a new raster object is created. - * - * @input: - * raster :: - * A handle to the new raster object. - * - * pool_base :: - * Previously, the address in memory of the render pool. Set this to - * `NULL`. - * - * pool_size :: - * Previously, the size in bytes of the render pool. Set this to 0. - * - * @note: - * Rasterizers should rely on dynamic or stack allocation if they want to - * (a handle to the memory allocator is passed to the rasterizer - * constructor). - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Raster_ResetFunc */ + /* */ + /* <Description> */ + /* FreeType provides an area of memory called the `render pool', */ + /* available to all registered rasters. This pool can be freely used */ + /* during a given scan-conversion but is shared by all rasters. Its */ + /* content is thus transient. */ + /* */ + /* This function is called each time the render pool changes, or just */ + /* after a new raster object is created. */ + /* */ + /* <Input> */ + /* raster :: A handle to the new raster object. */ + /* */ + /* pool_base :: The address in memory of the render pool. */ + /* */ + /* pool_size :: The size in bytes of the render pool. */ + /* */ + /* <Note> */ + /* Rasters can ignore the render pool and rely on dynamic memory */ + /* allocation if they want to (a handle to the memory allocator is */ + /* passed to the raster constructor). However, this is not */ + /* recommended for efficiency purposes. */ + /* */ typedef void (*FT_Raster_ResetFunc)( FT_Raster raster, unsigned char* pool_base, @@ -1134,26 +1107,24 @@ FT_BEGIN_HEADER #define FT_Raster_Reset_Func FT_Raster_ResetFunc - /************************************************************************** - * - * @functype: - * FT_Raster_SetModeFunc - * - * @description: - * This function is a generic facility to change modes or attributes in a - * given raster. This can be used for debugging purposes, or simply to - * allow implementation-specific 'features' in a given raster module. - * - * @input: - * raster :: - * A handle to the new raster object. - * - * mode :: - * A 4-byte tag used to name the mode or property. - * - * args :: - * A pointer to the new mode/property to use. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Raster_SetModeFunc */ + /* */ + /* <Description> */ + /* This function is a generic facility to change modes or attributes */ + /* in a given raster. This can be used for debugging purposes, or */ + /* simply to allow implementation-specific `features' in a given */ + /* raster module. */ + /* */ + /* <Input> */ + /* raster :: A handle to the new raster object. */ + /* */ + /* mode :: A 4-byte tag used to name the mode or property. */ + /* */ + /* args :: A pointer to the new mode/property to use. */ + /* */ typedef int (*FT_Raster_SetModeFunc)( FT_Raster raster, unsigned long mode, @@ -1162,36 +1133,40 @@ FT_BEGIN_HEADER #define FT_Raster_Set_Mode_Func FT_Raster_SetModeFunc - /************************************************************************** - * - * @functype: - * FT_Raster_RenderFunc - * - * @description: - * Invoke a given raster to scan-convert a given glyph image into a - * target bitmap. - * - * @input: - * raster :: - * A handle to the raster object. - * - * params :: - * A pointer to an @FT_Raster_Params structure used to store the - * rendering parameters. - * - * @return: - * Error code. 0~means success. - * - * @note: - * The exact format of the source image depends on the raster's glyph - * format defined in its @FT_Raster_Funcs structure. It can be an - * @FT_Outline or anything else in order to support a large array of - * glyph formats. - * - * Note also that the render function can fail and return a - * `FT_Err_Unimplemented_Feature` error code if the raster used does not - * support direct composition. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Raster_RenderFunc */ + /* */ + /* <Description> */ + /* Invoke a given raster to scan-convert a given glyph image into a */ + /* target bitmap. */ + /* */ + /* <Input> */ + /* raster :: A handle to the raster object. */ + /* */ + /* params :: A pointer to an @FT_Raster_Params structure used to */ + /* store the rendering parameters. */ + /* */ + /* <Return> */ + /* Error code. 0~means success. */ + /* */ + /* <Note> */ + /* The exact format of the source image depends on the raster's glyph */ + /* format defined in its @FT_Raster_Funcs structure. It can be an */ + /* @FT_Outline or anything else in order to support a large array of */ + /* glyph formats. */ + /* */ + /* Note also that the render function can fail and return a */ + /* `FT_Err_Unimplemented_Feature' error code if the raster used does */ + /* not support direct composition. */ + /* */ + /* XXX: For now, the standard raster doesn't support direct */ + /* composition but this should change for the final release (see */ + /* the files `demos/src/ftgrays.c' and `demos/src/ftgrays2.c' */ + /* for examples of distinct implementations that support direct */ + /* composition). */ + /* */ typedef int (*FT_Raster_RenderFunc)( FT_Raster raster, const FT_Raster_Params* params ); @@ -1199,34 +1174,28 @@ FT_BEGIN_HEADER #define FT_Raster_Render_Func FT_Raster_RenderFunc - /************************************************************************** - * - * @struct: - * FT_Raster_Funcs - * - * @description: - * A structure used to describe a given raster class to the library. - * - * @fields: - * glyph_format :: - * The supported glyph format for this raster. - * - * raster_new :: - * The raster constructor. - * - * raster_reset :: - * Used to reset the render pool within the raster. - * - * raster_render :: - * A function to render a glyph into a given bitmap. - * - * raster_done :: - * The raster destructor. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Raster_Funcs */ + /* */ + /* <Description> */ + /* A structure used to describe a given raster class to the library. */ + /* */ + /* <Fields> */ + /* glyph_format :: The supported glyph format for this raster. */ + /* */ + /* raster_new :: The raster constructor. */ + /* */ + /* raster_reset :: Used to reset the render pool within the raster. */ + /* */ + /* raster_render :: A function to render a glyph into a given bitmap. */ + /* */ + /* raster_done :: The raster destructor. */ + /* */ typedef struct FT_Raster_Funcs_ { FT_Glyph_Format glyph_format; - FT_Raster_NewFunc raster_new; FT_Raster_ResetFunc raster_reset; FT_Raster_SetModeFunc raster_set_mode; @@ -1240,7 +1209,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTIMAGE_H_ */ +#endif /* __FTIMAGE_H__ */ /* END */ diff --git a/win64/include/freetype/ftincrem.h b/win64/include/freetype/ftincrem.h index f67655ed..4c0246c5 100644 --- a/win64/include/freetype/ftincrem.h +++ b/win64/include/freetype/ftincrem.h @@ -1,26 +1,26 @@ -/**************************************************************************** - * - * ftincrem.h - * - * FreeType incremental loading (specification). - * - * Copyright (C) 2002-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftincrem.h */ +/* */ +/* FreeType incremental loading (specification). */ +/* */ +/* Copyright 2002, 2003, 2006-2008, 2010, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTINCREM_H_ -#define FTINCREM_H_ +#ifndef __FTINCREM_H__ +#define __FTINCREM_H__ -#include <freetype/freetype.h> -#include <freetype/ftparams.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -31,7 +31,7 @@ FT_BEGIN_HEADER - /************************************************************************** + /*************************************************************************** * * @section: * incremental @@ -44,7 +44,7 @@ FT_BEGIN_HEADER * * @description: * This section contains various functions used to perform so-called - * 'incremental' glyph loading. This is a mode where all glyphs loaded + * `incremental' glyph loading. This is a mode where all glyphs loaded * from a given @FT_Face are provided by the client application. * * Apart from that, all other tables are loaded normally from the font @@ -59,24 +59,23 @@ FT_BEGIN_HEADER */ - /************************************************************************** + /*************************************************************************** * * @type: * FT_Incremental * * @description: * An opaque type describing a user-provided object used to implement - * 'incremental' glyph loading within FreeType. This is used to support - * embedded fonts in certain environments (e.g., PostScript - * interpreters), where the glyph data isn't in the font file, or must be - * overridden by different values. + * `incremental' glyph loading within FreeType. This is used to support + * embedded fonts in certain environments (e.g., PostScript interpreters), + * where the glyph data isn't in the font file, or must be overridden by + * different values. * * @note: - * It is up to client applications to create and implement - * @FT_Incremental objects, as long as they provide implementations for - * the methods @FT_Incremental_GetGlyphDataFunc, - * @FT_Incremental_FreeGlyphDataFunc and - * @FT_Incremental_GetGlyphMetricsFunc. + * It is up to client applications to create and implement @FT_Incremental + * objects, as long as they provide implementations for the methods + * @FT_Incremental_GetGlyphDataFunc, @FT_Incremental_FreeGlyphDataFunc + * and @FT_Incremental_GetGlyphMetricsFunc. * * See the description of @FT_Incremental_InterfaceRec to understand how * to use incremental objects with FreeType. @@ -85,14 +84,14 @@ FT_BEGIN_HEADER typedef struct FT_IncrementalRec_* FT_Incremental; - /************************************************************************** + /*************************************************************************** * * @struct: * FT_Incremental_MetricsRec * * @description: - * A small structure used to contain the basic glyph metrics returned by - * the @FT_Incremental_GetGlyphMetricsFunc method. + * A small structure used to contain the basic glyph metrics returned + * by the @FT_Incremental_GetGlyphMetricsFunc method. * * @fields: * bearing_x :: @@ -109,7 +108,7 @@ FT_BEGIN_HEADER * * @note: * These correspond to horizontal or vertical metrics depending on the - * value of the `vertical` argument to the function + * value of the `vertical' argument to the function * @FT_Incremental_GetGlyphMetricsFunc. * */ @@ -123,7 +122,7 @@ FT_BEGIN_HEADER } FT_Incremental_MetricsRec; - /************************************************************************** + /*************************************************************************** * * @struct: * FT_Incremental_Metrics @@ -135,7 +134,7 @@ FT_BEGIN_HEADER typedef struct FT_Incremental_MetricsRec_* FT_Incremental_Metrics; - /************************************************************************** + /*************************************************************************** * * @type: * FT_Incremental_GetGlyphDataFunc @@ -147,8 +146,8 @@ FT_BEGIN_HEADER * * Note that the format of the glyph's data bytes depends on the font * file format. For TrueType, it must correspond to the raw bytes within - * the 'glyf' table. For PostScript formats, it must correspond to the - * **unencrypted** charstring bytes, without any `lenIV` header. It is + * the `glyf' table. For PostScript formats, it must correspond to the + * *unencrypted* charstring bytes, without any `lenIV' header. It is * undefined for any other format. * * @input: @@ -169,8 +168,8 @@ FT_BEGIN_HEADER * * @note: * If this function returns successfully the method - * @FT_Incremental_FreeGlyphDataFunc will be called later to release the - * data bytes. + * @FT_Incremental_FreeGlyphDataFunc will be called later to release + * the data bytes. * * Nested calls to @FT_Incremental_GetGlyphDataFunc can happen for * compound glyphs. @@ -182,7 +181,7 @@ FT_BEGIN_HEADER FT_Data* adata ); - /************************************************************************** + /*************************************************************************** * * @type: * FT_Incremental_FreeGlyphDataFunc @@ -206,7 +205,7 @@ FT_BEGIN_HEADER FT_Data* data ); - /************************************************************************** + /*************************************************************************** * * @type: * FT_Incremental_GetGlyphMetricsFunc @@ -214,8 +213,8 @@ FT_BEGIN_HEADER * @description: * A function used to retrieve the basic metrics of a given glyph index * before accessing its data. This is necessary because, in certain - * formats like TrueType, the metrics are stored in a different place - * from the glyph images proper. + * formats like TrueType, the metrics are stored in a different place from + * the glyph images proper. * * @input: * incremental :: @@ -229,9 +228,9 @@ FT_BEGIN_HEADER * If true, return vertical metrics. * * ametrics :: - * This parameter is used for both input and output. The original - * glyph metrics, if any, in font units. If metrics are not available - * all the values must be set to zero. + * This parameter is used for both input and output. + * The original glyph metrics, if any, in font units. If metrics are + * not available all the values must be set to zero. * * @output: * ametrics :: @@ -252,8 +251,8 @@ FT_BEGIN_HEADER * FT_Incremental_FuncsRec * * @description: - * A table of functions for accessing fonts that load data incrementally. - * Used in @FT_Incremental_InterfaceRec. + * A table of functions for accessing fonts that load data + * incrementally. Used in @FT_Incremental_InterfaceRec. * * @fields: * get_glyph_data :: @@ -263,8 +262,8 @@ FT_BEGIN_HEADER * The function to release glyph data. Must not be null. * * get_glyph_metrics :: - * The function to get glyph metrics. May be null if the font does not - * provide overriding glyph metrics. + * The function to get glyph metrics. May be null if the font does + * not provide overriding glyph metrics. * */ typedef struct FT_Incremental_FuncsRec_ @@ -276,7 +275,7 @@ FT_BEGIN_HEADER } FT_Incremental_FuncsRec; - /************************************************************************** + /*************************************************************************** * * @struct: * FT_Incremental_InterfaceRec @@ -286,30 +285,30 @@ FT_BEGIN_HEADER * wants to support incremental glyph loading. You should use it with * @FT_PARAM_TAG_INCREMENTAL as in the following example: * - * ``` - * FT_Incremental_InterfaceRec inc_int; - * FT_Parameter parameter; - * FT_Open_Args open_args; + * { + * FT_Incremental_InterfaceRec inc_int; + * FT_Parameter parameter; + * FT_Open_Args open_args; * * - * // set up incremental descriptor - * inc_int.funcs = my_funcs; - * inc_int.object = my_object; + * // set up incremental descriptor + * inc_int.funcs = my_funcs; + * inc_int.object = my_object; * - * // set up optional parameter - * parameter.tag = FT_PARAM_TAG_INCREMENTAL; - * parameter.data = &inc_int; + * // set up optional parameter + * parameter.tag = FT_PARAM_TAG_INCREMENTAL; + * parameter.data = &inc_int; * - * // set up FT_Open_Args structure - * open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; - * open_args.pathname = my_font_pathname; - * open_args.num_params = 1; - * open_args.params = ¶meter; // we use one optional argument + * // set up FT_Open_Args structure + * open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; + * open_args.pathname = my_font_pathname; + * open_args.num_params = 1; + * open_args.params = ¶meter; // we use one optional argument * - * // open the font - * error = FT_Open_Face( library, &open_args, index, &face ); - * ... - * ``` + * // open the font + * error = FT_Open_Face( library, &open_args, index, &face ); + * ... + * } * */ typedef struct FT_Incremental_InterfaceRec_ @@ -320,7 +319,7 @@ FT_BEGIN_HEADER } FT_Incremental_InterfaceRec; - /************************************************************************** + /*************************************************************************** * * @type: * FT_Incremental_Interface @@ -332,12 +331,24 @@ FT_BEGIN_HEADER typedef FT_Incremental_InterfaceRec* FT_Incremental_Interface; + /*************************************************************************** + * + * @constant: + * FT_PARAM_TAG_INCREMENTAL + * + * @description: + * A constant used as the tag of @FT_Parameter structures to indicate + * an incremental loading object to be used by FreeType. + * + */ +#define FT_PARAM_TAG_INCREMENTAL FT_MAKE_TAG( 'i', 'n', 'c', 'r' ) + /* */ FT_END_HEADER -#endif /* FTINCREM_H_ */ +#endif /* __FTINCREM_H__ */ /* END */ diff --git a/win64/include/freetype/ftlcdfil.h b/win64/include/freetype/ftlcdfil.h index c6995f2f..e8679c1a 100644 --- a/win64/include/freetype/ftlcdfil.h +++ b/win64/include/freetype/ftlcdfil.h @@ -1,27 +1,27 @@ -/**************************************************************************** - * - * ftlcdfil.h - * - * FreeType API for color filtering of subpixel bitmap glyphs - * (specification). - * - * Copyright (C) 2006-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftlcdfil.h */ +/* */ +/* FreeType API for color filtering of subpixel bitmap glyphs */ +/* (specification). */ +/* */ +/* Copyright 2006-2008, 2010, 2013, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTLCDFIL_H_ -#define FTLCDFIL_H_ +#ifndef __FT_LCD_FILTER_H__ +#define __FT_LCD_FILTER_H__ -#include <freetype/freetype.h> -#include <freetype/ftparams.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -32,98 +32,69 @@ FT_BEGIN_HEADER - /************************************************************************** + /*************************************************************************** * * @section: - * lcd_rendering + * lcd_filtering * * @title: - * Subpixel Rendering + * LCD Filtering * * @abstract: - * API to control subpixel rendering. + * Reduce color fringes of LCD-optimized bitmaps. * * @description: - * FreeType provides two alternative subpixel rendering technologies. - * Should you define `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` in your - * `ftoption.h` file, this enables ClearType-style rendering. - * Otherwise, Harmony LCD rendering is enabled. These technologies are - * controlled differently and API described below, although always - * available, performs its function when appropriate method is enabled - * and does nothing otherwise. + * The @FT_Library_SetLcdFilter API can be used to specify a low-pass + * filter, which is then applied to LCD-optimized bitmaps generated + * through @FT_Render_Glyph. This is useful to reduce color fringes + * that would occur with unfiltered rendering. * - * ClearType-style LCD rendering exploits the color-striped structure of - * LCD pixels, increasing the available resolution in the direction of - * the stripe (usually horizontal RGB) by a factor of~3. Using the - * subpixels coverages unfiltered can create severe color fringes - * especially when rendering thin features. Indeed, to produce - * black-on-white text, the nearby color subpixels must be dimmed - * equally. + * Note that no filter is active by default, and that this function is + * *not* implemented in default builds of the library. You need to + * #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING in your `ftoption.h' file + * in order to activate it. * - * A good 5-tap FIR filter should be applied to subpixel coverages - * regardless of pixel boundaries and should have these properties: + * FreeType generates alpha coverage maps, which are linear by nature. + * For instance, the value 0x80 in bitmap representation means that + * (within numerical precision) 0x80/0xFF fraction of that pixel is + * covered by the glyph's outline. The blending function for placing + * text over a background is * - * 1. It should be symmetrical, like {~a, b, c, b, a~}, to avoid - * any shifts in appearance. + * { + * dst = alpha * src + (1 - alpha) * dst , + * } * - * 2. It should be color-balanced, meaning a~+ b~=~c, to reduce color - * fringes by distributing the computed coverage for one subpixel to - * all subpixels equally. + * which is known as OVER. However, when calculating the output of the + * OVER operator, the source colors should first be transformed to a + * linear color space, then alpha blended in that space, and transformed + * back to the output color space. * - * 3. It should be normalized, meaning 2a~+ 2b~+ c~=~1.0 to maintain - * overall brightness. + * When linear light blending is used, the default FIR5 filtering + * weights (as given by FT_LCD_FILTER_DEFAULT) are no longer optimal, as + * they have been designed for black on white rendering while lacking + * gamma correction. To preserve color neutrality, weights for a FIR5 + * filter should be chosen according to two free parameters `a' and `c', + * and the FIR weights should be * - * Boxy 3-tap filter {0, 1/3, 1/3, 1/3, 0} is sharper but is less - * forgiving of non-ideal gamma curves of a screen (and viewing angles), - * beveled filters are fuzzier but more tolerant. + * { + * [a - c, a + c, 2 * a, a + c, a - c] . + * } * - * Use the @FT_Library_SetLcdFilter or @FT_Library_SetLcdFilterWeights - * API to specify a low-pass filter, which is then applied to - * subpixel-rendered bitmaps generated through @FT_Render_Glyph. + * This formula generates equal weights for all the color primaries + * across the filter kernel, which makes it colorless. One suggested + * set of weights is * - * Harmony LCD rendering is suitable to panels with any regular subpixel - * structure, not just monitors with 3 color striped subpixels, as long - * as the color subpixels have fixed positions relative to the pixel - * center. In this case, each color channel is then rendered separately - * after shifting the outline opposite to the subpixel shift so that the - * coverage maps are aligned. This method is immune to color fringes - * because the shifts do not change integral coverage. + * { + * [0x10, 0x50, 0x60, 0x50, 0x10] , + * } * - * The subpixel geometry must be specified by xy-coordinates for each - * subpixel. By convention they may come in the RGB order: {{-1/3, 0}, - * {0, 0}, {1/3, 0}} for standard RGB striped panel or {{-1/6, 1/4}, - * {-1/6, -1/4}, {1/3, 0}} for a certain PenTile panel. - * - * Use the @FT_Library_SetLcdGeometry API to specify subpixel positions. - * If one follows the RGB order convention, the same order applies to the - * resulting @FT_PIXEL_MODE_LCD and @FT_PIXEL_MODE_LCD_V bitmaps. Note, - * however, that the coordinate frame for the latter must be rotated - * clockwise. Harmony with default LCD geometry is equivalent to - * ClearType with light filter. - * - * As a result of ClearType filtering or Harmony rendering, the - * dimensions of LCD bitmaps can be either wider or taller than the - * dimensions of the corresponding outline with regard to the pixel grid. - * For example, for @FT_RENDER_MODE_LCD, the filter adds 2~subpixels to - * the left, and 2~subpixels to the right. The bitmap offset values are - * adjusted accordingly, so clients shouldn't need to modify their layout - * and glyph positioning code when enabling the filter. - * - * The ClearType and Harmony rendering is applicable to glyph bitmaps - * rendered through @FT_Render_Glyph, @FT_Load_Glyph, @FT_Load_Char, and - * @FT_Glyph_To_Bitmap, when @FT_RENDER_MODE_LCD or @FT_RENDER_MODE_LCD_V - * is specified. This API does not control @FT_Outline_Render and - * @FT_Outline_Get_Bitmap. - * - * The described algorithms can completely remove color artefacts when - * combined with gamma-corrected alpha blending in linear space. Each of - * the 3~alpha values (subpixels) must by independently used to blend one - * color channel. That is, red alpha blends the red channel of the text - * color with the red channel of the background pixel. + * where `a' has value 0x30 and `b' value 0x20. The weights in filter + * may have a sum larger than 0x100, which increases coloration slightly + * but also improves contrast. */ - /************************************************************************** + /**************************************************************************** * * @enum: * FT_LcdFilter @@ -137,32 +108,32 @@ FT_BEGIN_HEADER * results in sometimes severe color fringes. * * FT_LCD_FILTER_DEFAULT :: - * This is a beveled, normalized, and color-balanced five-tap filter - * with weights of [0x08 0x4D 0x56 0x4D 0x08] in 1/256th units. + * The default filter reduces color fringes considerably, at the cost + * of a slight blurriness in the output. * * FT_LCD_FILTER_LIGHT :: - * this is a boxy, normalized, and color-balanced three-tap filter with - * weights of [0x00 0x55 0x56 0x55 0x00] in 1/256th units. + * The light filter is a variant that produces less blurriness at the + * cost of slightly more color fringes than the default one. It might + * be better, depending on taste, your monitor, or your personal vision. * * FT_LCD_FILTER_LEGACY :: - * FT_LCD_FILTER_LEGACY1 :: * This filter corresponds to the original libXft color filter. It * provides high contrast output but can exhibit really bad color * fringes if glyphs are not extremely well hinted to the pixel grid. + * In other words, it only works well if the TrueType bytecode + * interpreter is enabled *and* high-quality hinted fonts are used. + * * This filter is only provided for comparison purposes, and might be - * disabled or stay unsupported in the future. The second value is - * provided for compatibility with FontConfig, which historically used - * different enumeration, sometimes incorrectly forwarded to FreeType. + * disabled or stay unsupported in the future. * * @since: - * 2.3.0 (`FT_LCD_FILTER_LEGACY1` since 2.6.2) + * 2.3.0 */ typedef enum FT_LcdFilter_ { FT_LCD_FILTER_NONE = 0, FT_LCD_FILTER_DEFAULT = 1, FT_LCD_FILTER_LIGHT = 2, - FT_LCD_FILTER_LEGACY1 = 3, FT_LCD_FILTER_LEGACY = 16, FT_LCD_FILTER_MAX /* do not remove */ @@ -172,11 +143,11 @@ FT_BEGIN_HEADER /************************************************************************** * - * @function: + * @func: * FT_Library_SetLcdFilter * * @description: - * This function is used to change filter applied to LCD decimated + * This function is used to apply color filtering to LCD decimated * bitmaps, like the ones used when calling @FT_Render_Glyph with * @FT_RENDER_MODE_LCD or @FT_RENDER_MODE_LCD_V. * @@ -188,21 +159,38 @@ FT_BEGIN_HEADER * The filter type. * * You can use @FT_LCD_FILTER_NONE here to disable this feature, or - * @FT_LCD_FILTER_DEFAULT to use a default filter that should work well - * on most LCD screens. + * @FT_LCD_FILTER_DEFAULT to use a default filter that should work + * well on most LCD screens. * * @return: * FreeType error code. 0~means success. * * @note: - * Since 2.10.3 the LCD filtering is enabled with @FT_LCD_FILTER_DEFAULT. - * It is no longer necessary to call this function explicitly except - * to choose a different filter or disable filtering altogether with - * @FT_LCD_FILTER_NONE. + * This feature is always disabled by default. Clients must make an + * explicit call to this function with a `filter' value other than + * @FT_LCD_FILTER_NONE in order to enable it. * - * This function does nothing but returns `FT_Err_Unimplemented_Feature` - * if the configuration macro `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` is - * not defined in your build of the library. + * Due to *PATENTS* covering subpixel rendering, this function doesn't + * do anything except returning `FT_Err_Unimplemented_Feature' if the + * configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not + * defined in your build of the library, which should correspond to all + * default builds of FreeType. + * + * The filter affects glyph bitmaps rendered through @FT_Render_Glyph, + * @FT_Outline_Get_Bitmap, @FT_Load_Glyph, and @FT_Load_Char. + * + * It does _not_ affect the output of @FT_Outline_Render and + * @FT_Outline_Get_Bitmap. + * + * If this feature is activated, the dimensions of LCD glyph bitmaps are + * either larger or taller than the dimensions of the corresponding + * outline with regards to the pixel grid. For example, for + * @FT_RENDER_MODE_LCD, the filter adds up to 3~pixels to the left, and + * up to 3~pixels to the right. + * + * The bitmap offset values are adjusted correctly, so clients shouldn't + * need to modify their layout and glyph positioning code when enabling + * the filter. * * @since: * 2.3.0 @@ -214,12 +202,15 @@ FT_BEGIN_HEADER /************************************************************************** * - * @function: + * @func: * FT_Library_SetLcdFilterWeights * * @description: - * This function can be used to enable LCD filter with custom weights, - * instead of using presets in @FT_Library_SetLcdFilter. + * Use this function to override the filter weights selected by + * @FT_Library_SetLcdFilter. By default, FreeType uses the quintuple + * (0x00, 0x55, 0x56, 0x55, 0x00) for FT_LCD_FILTER_LIGHT, and (0x10, + * 0x40, 0x70, 0x40, 0x10) for FT_LCD_FILTER_DEFAULT and + * FT_LCD_FILTER_LEGACY. * * @input: * library :: @@ -227,18 +218,20 @@ FT_BEGIN_HEADER * * weights :: * A pointer to an array; the function copies the first five bytes and - * uses them to specify the filter weights in 1/256th units. + * uses them to specify the filter weights. * * @return: * FreeType error code. 0~means success. * * @note: - * This function does nothing but returns `FT_Err_Unimplemented_Feature` - * if the configuration macro `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` is - * not defined in your build of the library. + * Due to *PATENTS* covering subpixel rendering, this function doesn't + * do anything except returning `FT_Err_Unimplemented_Feature' if the + * configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not + * defined in your build of the library, which should correspond to all + * default builds of FreeType. * - * LCD filter weights can also be set per face using @FT_Face_Properties - * with @FT_PARAM_TAG_LCD_FILTER_WEIGHTS. + * This function must be called after @FT_Library_SetLcdFilter to have + * any effect. * * @since: * 2.4.0 @@ -247,78 +240,12 @@ FT_BEGIN_HEADER FT_Library_SetLcdFilterWeights( FT_Library library, unsigned char *weights ); - - /************************************************************************** - * - * @type: - * FT_LcdFiveTapFilter - * - * @description: - * A typedef for passing the five LCD filter weights to - * @FT_Face_Properties within an @FT_Parameter structure. - * - * @since: - * 2.8 - * - */ -#define FT_LCD_FILTER_FIVE_TAPS 5 - - typedef FT_Byte FT_LcdFiveTapFilter[FT_LCD_FILTER_FIVE_TAPS]; - - - /************************************************************************** - * - * @function: - * FT_Library_SetLcdGeometry - * - * @description: - * This function can be used to modify default positions of color - * subpixels, which controls Harmony LCD rendering. - * - * @input: - * library :: - * A handle to the target library instance. - * - * sub :: - * A pointer to an array of 3 vectors in 26.6 fractional pixel format; - * the function modifies the default values, see the note below. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * Subpixel geometry examples: - * - * - {{-21, 0}, {0, 0}, {21, 0}} is the default, corresponding to 3 color - * stripes shifted by a third of a pixel. This could be an RGB panel. - * - * - {{21, 0}, {0, 0}, {-21, 0}} looks the same as the default but can - * specify a BGR panel instead, while keeping the bitmap in the same - * RGB888 format. - * - * - {{0, 21}, {0, 0}, {0, -21}} is the vertical RGB, but the bitmap - * stays RGB888 as a result. - * - * - {{-11, 16}, {-11, -16}, {22, 0}} is a certain PenTile arrangement. - * - * This function does nothing and returns `FT_Err_Unimplemented_Feature` - * in the context of ClearType-style subpixel rendering when - * `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` is defined in your build of the - * library. - * - * @since: - * 2.10.0 - */ - FT_EXPORT( FT_Error ) - FT_Library_SetLcdGeometry( FT_Library library, - FT_Vector sub[3] ); - /* */ FT_END_HEADER -#endif /* FTLCDFIL_H_ */ +#endif /* __FT_LCD_FILTER_H__ */ /* END */ diff --git a/win64/include/freetype/ftlist.h b/win64/include/freetype/ftlist.h index 45889227..9950a279 100644 --- a/win64/include/freetype/ftlist.h +++ b/win64/include/freetype/ftlist.h @@ -1,34 +1,35 @@ -/**************************************************************************** - * - * ftlist.h - * - * Generic list support for FreeType (specification). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftlist.h */ +/* */ +/* Generic list support for FreeType (specification). */ +/* */ +/* Copyright 1996-2001, 2003, 2007, 2010, 2013, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * This file implements functions relative to list processing. Its data - * structures are defined in `freetype.h`. - * - */ + /*************************************************************************/ + /* */ + /* This file implements functions relative to list processing. Its */ + /* data structures are defined in `freetype.h'. */ + /* */ + /*************************************************************************/ -#ifndef FTLIST_H_ -#define FTLIST_H_ +#ifndef __FTLIST_H__ +#define __FTLIST_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -40,245 +41,224 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * list_processing - * - * @title: - * List Processing - * - * @abstract: - * Simple management of lists. - * - * @description: - * This section contains various definitions related to list processing - * using doubly-linked nodes. - * - * @order: - * FT_List - * FT_ListNode - * FT_ListRec - * FT_ListNodeRec - * - * FT_List_Add - * FT_List_Insert - * FT_List_Find - * FT_List_Remove - * FT_List_Up - * FT_List_Iterate - * FT_List_Iterator - * FT_List_Finalize - * FT_List_Destructor - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* list_processing */ + /* */ + /* <Title> */ + /* List Processing */ + /* */ + /* <Abstract> */ + /* Simple management of lists. */ + /* */ + /* <Description> */ + /* This section contains various definitions related to list */ + /* processing using doubly-linked nodes. */ + /* */ + /* <Order> */ + /* FT_List */ + /* FT_ListNode */ + /* FT_ListRec */ + /* FT_ListNodeRec */ + /* */ + /* FT_List_Add */ + /* FT_List_Insert */ + /* FT_List_Find */ + /* FT_List_Remove */ + /* FT_List_Up */ + /* FT_List_Iterate */ + /* FT_List_Iterator */ + /* FT_List_Finalize */ + /* FT_List_Destructor */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @function: - * FT_List_Find - * - * @description: - * Find the list node for a given listed object. - * - * @input: - * list :: - * A pointer to the parent list. - * data :: - * The address of the listed object. - * - * @return: - * List node. `NULL` if it wasn't found. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_List_Find */ + /* */ + /* <Description> */ + /* Find the list node for a given listed object. */ + /* */ + /* <Input> */ + /* list :: A pointer to the parent list. */ + /* data :: The address of the listed object. */ + /* */ + /* <Return> */ + /* List node. NULL if it wasn't found. */ + /* */ FT_EXPORT( FT_ListNode ) FT_List_Find( FT_List list, void* data ); - /************************************************************************** - * - * @function: - * FT_List_Add - * - * @description: - * Append an element to the end of a list. - * - * @inout: - * list :: - * A pointer to the parent list. - * node :: - * The node to append. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_List_Add */ + /* */ + /* <Description> */ + /* Append an element to the end of a list. */ + /* */ + /* <InOut> */ + /* list :: A pointer to the parent list. */ + /* node :: The node to append. */ + /* */ FT_EXPORT( void ) FT_List_Add( FT_List list, FT_ListNode node ); - /************************************************************************** - * - * @function: - * FT_List_Insert - * - * @description: - * Insert an element at the head of a list. - * - * @inout: - * list :: - * A pointer to parent list. - * node :: - * The node to insert. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_List_Insert */ + /* */ + /* <Description> */ + /* Insert an element at the head of a list. */ + /* */ + /* <InOut> */ + /* list :: A pointer to parent list. */ + /* node :: The node to insert. */ + /* */ FT_EXPORT( void ) FT_List_Insert( FT_List list, FT_ListNode node ); - /************************************************************************** - * - * @function: - * FT_List_Remove - * - * @description: - * Remove a node from a list. This function doesn't check whether the - * node is in the list! - * - * @input: - * node :: - * The node to remove. - * - * @inout: - * list :: - * A pointer to the parent list. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_List_Remove */ + /* */ + /* <Description> */ + /* Remove a node from a list. This function doesn't check whether */ + /* the node is in the list! */ + /* */ + /* <Input> */ + /* node :: The node to remove. */ + /* */ + /* <InOut> */ + /* list :: A pointer to the parent list. */ + /* */ FT_EXPORT( void ) FT_List_Remove( FT_List list, FT_ListNode node ); - /************************************************************************** - * - * @function: - * FT_List_Up - * - * @description: - * Move a node to the head/top of a list. Used to maintain LRU lists. - * - * @inout: - * list :: - * A pointer to the parent list. - * node :: - * The node to move. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_List_Up */ + /* */ + /* <Description> */ + /* Move a node to the head/top of a list. Used to maintain LRU */ + /* lists. */ + /* */ + /* <InOut> */ + /* list :: A pointer to the parent list. */ + /* node :: The node to move. */ + /* */ FT_EXPORT( void ) FT_List_Up( FT_List list, FT_ListNode node ); - /************************************************************************** - * - * @functype: - * FT_List_Iterator - * - * @description: - * An FT_List iterator function that is called during a list parse by - * @FT_List_Iterate. - * - * @input: - * node :: - * The current iteration list node. - * - * user :: - * A typeless pointer passed to @FT_List_Iterate. Can be used to point - * to the iteration's state. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_List_Iterator */ + /* */ + /* <Description> */ + /* An FT_List iterator function that is called during a list parse */ + /* by @FT_List_Iterate. */ + /* */ + /* <Input> */ + /* node :: The current iteration list node. */ + /* */ + /* user :: A typeless pointer passed to @FT_List_Iterate. */ + /* Can be used to point to the iteration's state. */ + /* */ typedef FT_Error (*FT_List_Iterator)( FT_ListNode node, void* user ); - /************************************************************************** - * - * @function: - * FT_List_Iterate - * - * @description: - * Parse a list and calls a given iterator function on each element. - * Note that parsing is stopped as soon as one of the iterator calls - * returns a non-zero value. - * - * @input: - * list :: - * A handle to the list. - * iterator :: - * An iterator function, called on each node of the list. - * user :: - * A user-supplied field that is passed as the second argument to the - * iterator. - * - * @return: - * The result (a FreeType error code) of the last iterator call. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_List_Iterate */ + /* */ + /* <Description> */ + /* Parse a list and calls a given iterator function on each element. */ + /* Note that parsing is stopped as soon as one of the iterator calls */ + /* returns a non-zero value. */ + /* */ + /* <Input> */ + /* list :: A handle to the list. */ + /* iterator :: An iterator function, called on each node of the list. */ + /* user :: A user-supplied field that is passed as the second */ + /* argument to the iterator. */ + /* */ + /* <Return> */ + /* The result (a FreeType error code) of the last iterator call. */ + /* */ FT_EXPORT( FT_Error ) FT_List_Iterate( FT_List list, FT_List_Iterator iterator, void* user ); - /************************************************************************** - * - * @functype: - * FT_List_Destructor - * - * @description: - * An @FT_List iterator function that is called during a list - * finalization by @FT_List_Finalize to destroy all elements in a given - * list. - * - * @input: - * system :: - * The current system object. - * - * data :: - * The current object to destroy. - * - * user :: - * A typeless pointer passed to @FT_List_Iterate. It can be used to - * point to the iteration's state. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_List_Destructor */ + /* */ + /* <Description> */ + /* An @FT_List iterator function that is called during a list */ + /* finalization by @FT_List_Finalize to destroy all elements in a */ + /* given list. */ + /* */ + /* <Input> */ + /* system :: The current system object. */ + /* */ + /* data :: The current object to destroy. */ + /* */ + /* user :: A typeless pointer passed to @FT_List_Iterate. It can */ + /* be used to point to the iteration's state. */ + /* */ typedef void (*FT_List_Destructor)( FT_Memory memory, void* data, void* user ); - /************************************************************************** - * - * @function: - * FT_List_Finalize - * - * @description: - * Destroy all elements in the list as well as the list itself. - * - * @input: - * list :: - * A handle to the list. - * - * destroy :: - * A list destructor that will be applied to each element of the list. - * Set this to `NULL` if not needed. - * - * memory :: - * The current memory object that handles deallocation. - * - * user :: - * A user-supplied field that is passed as the last argument to the - * destructor. - * - * @note: - * This function expects that all nodes added by @FT_List_Add or - * @FT_List_Insert have been dynamically allocated. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_List_Finalize */ + /* */ + /* <Description> */ + /* Destroy all elements in the list as well as the list itself. */ + /* */ + /* <Input> */ + /* list :: A handle to the list. */ + /* */ + /* destroy :: A list destructor that will be applied to each element */ + /* of the list. Set this to NULL if not needed. */ + /* */ + /* memory :: The current memory object that handles deallocation. */ + /* */ + /* user :: A user-supplied field that is passed as the last */ + /* argument to the destructor. */ + /* */ + /* <Note> */ + /* This function expects that all nodes added by @FT_List_Add or */ + /* @FT_List_Insert have been dynamically allocated. */ + /* */ FT_EXPORT( void ) FT_List_Finalize( FT_List list, FT_List_Destructor destroy, @@ -290,7 +270,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTLIST_H_ */ +#endif /* __FTLIST_H__ */ /* END */ diff --git a/win64/include/freetype/ftlzw.h b/win64/include/freetype/ftlzw.h index ae46ad60..857c0c52 100644 --- a/win64/include/freetype/ftlzw.h +++ b/win64/include/freetype/ftlzw.h @@ -1,25 +1,26 @@ -/**************************************************************************** - * - * ftlzw.h - * - * LZW-compressed stream support. - * - * Copyright (C) 2004-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftlzw.h */ +/* */ +/* LZW-compressed stream support. */ +/* */ +/* Copyright 2004, 2006 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTLZW_H_ -#define FTLZW_H_ +#ifndef __FTLZW_H__ +#define __FTLZW_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -30,61 +31,59 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * lzw - * - * @title: - * LZW Streams - * - * @abstract: - * Using LZW-compressed font files. - * - * @description: - * In certain builds of the library, LZW compression recognition is - * automatically handled when calling @FT_New_Face or @FT_Open_Face. - * This means that if no font driver is capable of handling the raw - * compressed file, the library will try to open a LZW stream from it and - * re-open the face with it. - * - * The stream implementation is very basic and resets the decompression - * process each time seeking backwards is needed within the stream, - * which significantly undermines the performance. - * - * This section contains the declaration of LZW-specific functions. - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* lzw */ + /* */ + /* <Title> */ + /* LZW Streams */ + /* */ + /* <Abstract> */ + /* Using LZW-compressed font files. */ + /* */ + /* <Description> */ + /* This section contains the declaration of LZW-specific functions. */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @function: - * FT_Stream_OpenLZW - * - * @description: - * Open a new stream to parse LZW-compressed font files. This is mainly - * used to support the compressed `*.pcf.Z` fonts that come with XFree86. - * - * @input: - * stream :: - * The target embedding stream. - * - * source :: - * The source stream. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The source stream must be opened _before_ calling this function. - * - * Calling the internal function `FT_Stream_Close` on the new stream will - * **not** call `FT_Stream_Close` on the source stream. None of the - * stream objects will be released to the heap. - * - * This function may return `FT_Err_Unimplemented_Feature` if your build - * of FreeType was not compiled with LZW support. - */ + /************************************************************************ + * + * @function: + * FT_Stream_OpenLZW + * + * @description: + * Open a new stream to parse LZW-compressed font files. This is + * mainly used to support the compressed `*.pcf.Z' fonts that come + * with XFree86. + * + * @input: + * stream :: The target embedding stream. + * + * source :: The source stream. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The source stream must be opened _before_ calling this function. + * + * Calling the internal function `FT_Stream_Close' on the new stream will + * *not* call `FT_Stream_Close' on the source stream. None of the stream + * objects will be released to the heap. + * + * The stream implementation is very basic and resets the decompression + * process each time seeking backwards is needed within the stream + * + * In certain builds of the library, LZW compression recognition is + * automatically handled when calling @FT_New_Face or @FT_Open_Face. + * This means that if no font driver is capable of handling the raw + * compressed file, the library will try to open a LZW stream from it + * and re-open the face with it. + * + * This function may return `FT_Err_Unimplemented_Feature' if your build + * of FreeType was not compiled with LZW support. + */ FT_EXPORT( FT_Error ) FT_Stream_OpenLZW( FT_Stream stream, FT_Stream source ); @@ -94,7 +93,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTLZW_H_ */ +#endif /* __FTLZW_H__ */ /* END */ diff --git a/win64/include/freetype/ftmac.h b/win64/include/freetype/ftmac.h index c9de9818..42874fe6 100644 --- a/win64/include/freetype/ftmac.h +++ b/win64/include/freetype/ftmac.h @@ -1,104 +1,101 @@ -/**************************************************************************** - * - * ftmac.h - * - * Additional Mac-specific API. - * - * Copyright (C) 1996-2020 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. - * - */ +/***************************************************************************/ +/* */ +/* ftmac.h */ +/* */ +/* Additional Mac-specific API. */ +/* */ +/* Copyright 1996-2001, 2004, 2006, 2007, 2013 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. */ +/* */ +/***************************************************************************/ -/**************************************************************************** - * - * NOTE: Include this file after `FT_FREETYPE_H` and after any - * Mac-specific headers (because this header uses Mac types such as - * 'Handle', 'FSSpec', 'FSRef', etc.) - * - */ +/***************************************************************************/ +/* */ +/* NOTE: Include this file after FT_FREETYPE_H and after any */ +/* Mac-specific headers (because this header uses Mac types such as */ +/* Handle, FSSpec, FSRef, etc.) */ +/* */ +/***************************************************************************/ -#ifndef FTMAC_H_ -#define FTMAC_H_ +#ifndef __FTMAC_H__ +#define __FTMAC_H__ +#include <ft2build.h> FT_BEGIN_HEADER - /* gcc-3.1 and later can warn about functions tagged as deprecated */ +/* gcc-3.4.1 and later can warn about functions tagged as deprecated */ #ifndef FT_DEPRECATED_ATTRIBUTE -#if defined( __GNUC__ ) && \ - ( ( __GNUC__ >= 4 ) || \ - ( ( __GNUC__ == 3 ) && ( __GNUC_MINOR__ >= 1 ) ) ) -#define FT_DEPRECATED_ATTRIBUTE __attribute__(( deprecated )) +#if defined(__GNUC__) && \ + ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1))) +#define FT_DEPRECATED_ATTRIBUTE __attribute__((deprecated)) #else #define FT_DEPRECATED_ATTRIBUTE #endif #endif - /************************************************************************** - * - * @section: - * mac_specific - * - * @title: - * Mac Specific Interface - * - * @abstract: - * Only available on the Macintosh. - * - * @description: - * The following definitions are only available if FreeType is compiled - * on a Macintosh. - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* mac_specific */ + /* */ + /* <Title> */ + /* Mac Specific Interface */ + /* */ + /* <Abstract> */ + /* Only available on the Macintosh. */ + /* */ + /* <Description> */ + /* The following definitions are only available if FreeType is */ + /* compiled on a Macintosh. */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @function: - * FT_New_Face_From_FOND - * - * @description: - * Create a new face object from a FOND resource. - * - * @inout: - * library :: - * A handle to the library resource. - * - * @input: - * fond :: - * A FOND resource. - * - * face_index :: - * Only supported for the -1 'sanity check' special case. - * - * @output: - * aface :: - * A handle to a new face object. - * - * @return: - * FreeType error code. 0~means success. - * - * @example: - * This function can be used to create @FT_Face objects from fonts that - * are installed in the system as follows. - * - * ``` - * fond = GetResource( 'FOND', fontName ); - * error = FT_New_Face_From_FOND( library, fond, 0, &face ); - * ``` - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_New_Face_From_FOND */ + /* */ + /* <Description> */ + /* Create a new face object from a FOND resource. */ + /* */ + /* <InOut> */ + /* library :: A handle to the library resource. */ + /* */ + /* <Input> */ + /* fond :: A FOND resource. */ + /* */ + /* face_index :: Only supported for the -1 `sanity check' special */ + /* case. */ + /* */ + /* <Output> */ + /* aface :: A handle to a new face object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Notes> */ + /* This function can be used to create @FT_Face objects from fonts */ + /* that are installed in the system as follows. */ + /* */ + /* { */ + /* fond = GetResource( 'FOND', fontName ); */ + /* error = FT_New_Face_From_FOND( library, fond, 0, &face ); */ + /* } */ + /* */ FT_EXPORT( FT_Error ) FT_New_Face_From_FOND( FT_Library library, Handle fond, @@ -107,28 +104,28 @@ FT_BEGIN_HEADER FT_DEPRECATED_ATTRIBUTE; - /************************************************************************** - * - * @function: - * FT_GetFile_From_Mac_Name - * - * @description: - * Return an FSSpec for the disk file containing the named font. - * - * @input: - * fontName :: - * Mac OS name of the font (e.g., Times New Roman Bold). - * - * @output: - * pathSpec :: - * FSSpec to the file. For passing to @FT_New_Face_From_FSSpec. - * - * face_index :: - * Index of the face. For passing to @FT_New_Face_From_FSSpec. - * - * @return: - * FreeType error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_GetFile_From_Mac_Name */ + /* */ + /* <Description> */ + /* Return an FSSpec for the disk file containing the named font. */ + /* */ + /* <Input> */ + /* fontName :: Mac OS name of the font (e.g., Times New Roman */ + /* Bold). */ + /* */ + /* <Output> */ + /* pathSpec :: FSSpec to the file. For passing to */ + /* @FT_New_Face_From_FSSpec. */ + /* */ + /* face_index :: Index of the face. For passing to */ + /* @FT_New_Face_From_FSSpec. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_GetFile_From_Mac_Name( const char* fontName, FSSpec* pathSpec, @@ -136,28 +133,27 @@ FT_BEGIN_HEADER FT_DEPRECATED_ATTRIBUTE; - /************************************************************************** - * - * @function: - * FT_GetFile_From_Mac_ATS_Name - * - * @description: - * Return an FSSpec for the disk file containing the named font. - * - * @input: - * fontName :: - * Mac OS name of the font in ATS framework. - * - * @output: - * pathSpec :: - * FSSpec to the file. For passing to @FT_New_Face_From_FSSpec. - * - * face_index :: - * Index of the face. For passing to @FT_New_Face_From_FSSpec. - * - * @return: - * FreeType error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_GetFile_From_Mac_ATS_Name */ + /* */ + /* <Description> */ + /* Return an FSSpec for the disk file containing the named font. */ + /* */ + /* <Input> */ + /* fontName :: Mac OS name of the font in ATS framework. */ + /* */ + /* <Output> */ + /* pathSpec :: FSSpec to the file. For passing to */ + /* @FT_New_Face_From_FSSpec. */ + /* */ + /* face_index :: Index of the face. For passing to */ + /* @FT_New_Face_From_FSSpec. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_GetFile_From_Mac_ATS_Name( const char* fontName, FSSpec* pathSpec, @@ -165,33 +161,30 @@ FT_BEGIN_HEADER FT_DEPRECATED_ATTRIBUTE; - /************************************************************************** - * - * @function: - * FT_GetFilePath_From_Mac_ATS_Name - * - * @description: - * Return a pathname of the disk file and face index for given font name - * that is handled by ATS framework. - * - * @input: - * fontName :: - * Mac OS name of the font in ATS framework. - * - * @output: - * path :: - * Buffer to store pathname of the file. For passing to @FT_New_Face. - * The client must allocate this buffer before calling this function. - * - * maxPathSize :: - * Lengths of the buffer `path` that client allocated. - * - * face_index :: - * Index of the face. For passing to @FT_New_Face. - * - * @return: - * FreeType error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_GetFilePath_From_Mac_ATS_Name */ + /* */ + /* <Description> */ + /* Return a pathname of the disk file and face index for given font */ + /* name that is handled by ATS framework. */ + /* */ + /* <Input> */ + /* fontName :: Mac OS name of the font in ATS framework. */ + /* */ + /* <Output> */ + /* path :: Buffer to store pathname of the file. For passing */ + /* to @FT_New_Face. The client must allocate this */ + /* buffer before calling this function. */ + /* */ + /* maxPathSize :: Lengths of the buffer `path' that client allocated. */ + /* */ + /* face_index :: Index of the face. For passing to @FT_New_Face. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_GetFilePath_From_Mac_ATS_Name( const char* fontName, UInt8* path, @@ -200,37 +193,33 @@ FT_BEGIN_HEADER FT_DEPRECATED_ATTRIBUTE; - /************************************************************************** - * - * @function: - * FT_New_Face_From_FSSpec - * - * @description: - * Create a new face object from a given resource and typeface index - * using an FSSpec to the font file. - * - * @inout: - * library :: - * A handle to the library resource. - * - * @input: - * spec :: - * FSSpec to the font file. - * - * face_index :: - * The index of the face within the resource. The first face has - * index~0. - * @output: - * aface :: - * A handle to a new face object. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * @FT_New_Face_From_FSSpec is identical to @FT_New_Face except it - * accepts an FSSpec instead of a path. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_New_Face_From_FSSpec */ + /* */ + /* <Description> */ + /* Create a new face object from a given resource and typeface index */ + /* using an FSSpec to the font file. */ + /* */ + /* <InOut> */ + /* library :: A handle to the library resource. */ + /* */ + /* <Input> */ + /* spec :: FSSpec to the font file. */ + /* */ + /* face_index :: The index of the face within the resource. The */ + /* first face has index~0. */ + /* <Output> */ + /* aface :: A handle to a new face object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* @FT_New_Face_From_FSSpec is identical to @FT_New_Face except */ + /* it accepts an FSSpec instead of a path. */ + /* */ FT_EXPORT( FT_Error ) FT_New_Face_From_FSSpec( FT_Library library, const FSSpec *spec, @@ -239,37 +228,33 @@ FT_BEGIN_HEADER FT_DEPRECATED_ATTRIBUTE; - /************************************************************************** - * - * @function: - * FT_New_Face_From_FSRef - * - * @description: - * Create a new face object from a given resource and typeface index - * using an FSRef to the font file. - * - * @inout: - * library :: - * A handle to the library resource. - * - * @input: - * spec :: - * FSRef to the font file. - * - * face_index :: - * The index of the face within the resource. The first face has - * index~0. - * @output: - * aface :: - * A handle to a new face object. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * @FT_New_Face_From_FSRef is identical to @FT_New_Face except it accepts - * an FSRef instead of a path. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_New_Face_From_FSRef */ + /* */ + /* <Description> */ + /* Create a new face object from a given resource and typeface index */ + /* using an FSRef to the font file. */ + /* */ + /* <InOut> */ + /* library :: A handle to the library resource. */ + /* */ + /* <Input> */ + /* spec :: FSRef to the font file. */ + /* */ + /* face_index :: The index of the face within the resource. The */ + /* first face has index~0. */ + /* <Output> */ + /* aface :: A handle to a new face object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* @FT_New_Face_From_FSRef is identical to @FT_New_Face except */ + /* it accepts an FSRef instead of a path. */ + /* */ FT_EXPORT( FT_Error ) FT_New_Face_From_FSRef( FT_Library library, const FSRef *ref, @@ -283,7 +268,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTMAC_H_ */ +#endif /* __FTMAC_H__ */ /* END */ diff --git a/win64/include/freetype/ftmm.h b/win64/include/freetype/ftmm.h index d8781a82..2dcfd678 100644 --- a/win64/include/freetype/ftmm.h +++ b/win64/include/freetype/ftmm.h @@ -1,77 +1,75 @@ -/**************************************************************************** - * - * ftmm.h - * - * FreeType Multiple Master font interface (specification). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftmm.h */ +/* */ +/* FreeType Multiple Master font interface (specification). */ +/* */ +/* Copyright 1996-2001, 2003, 2004, 2006, 2009, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTMM_H_ -#define FTMM_H_ +#ifndef __FTMM_H__ +#define __FTMM_H__ -#include <freetype/t1tables.h> +#include <ft2build.h> +#include FT_TYPE1_TABLES_H FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * multiple_masters - * - * @title: - * Multiple Masters - * - * @abstract: - * How to manage Multiple Masters fonts. - * - * @description: - * 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. - * - * 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. - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* multiple_masters */ + /* */ + /* <Title> */ + /* Multiple Masters */ + /* */ + /* <Abstract> */ + /* How to manage Multiple Masters fonts. */ + /* */ + /* <Description> */ + /* 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. */ + /* */ + /* George Williams has extended this interface to make it work with */ + /* both Type~1 Multiple Masters fonts and GX distortable (var) */ + /* fonts. Some of these routines only work with MM fonts, others */ + /* will work with both types. They are similar enough that a */ + /* consistent interface makes sense. */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @struct: - * FT_MM_Axis - * - * @description: - * A structure to model a given axis in design space for Multiple Masters - * fonts. - * - * This structure can't be used for TrueType GX or OpenType variation - * fonts. - * - * @fields: - * name :: - * The axis's name. - * - * minimum :: - * The axis's minimum design coordinate. - * - * maximum :: - * The axis's maximum design coordinate. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_MM_Axis */ + /* */ + /* <Description> */ + /* A simple structure used to model a given axis in design space for */ + /* Multiple Masters fonts. */ + /* */ + /* This structure can't be used for GX var fonts. */ + /* */ + /* <Fields> */ + /* name :: The axis's name. */ + /* */ + /* minimum :: The axis's minimum design coordinate. */ + /* */ + /* maximum :: The axis's maximum design coordinate. */ + /* */ typedef struct FT_MM_Axis_ { FT_String* name; @@ -81,29 +79,27 @@ FT_BEGIN_HEADER } FT_MM_Axis; - /************************************************************************** - * - * @struct: - * FT_Multi_Master - * - * @description: - * A structure to model the axes and space of a Multiple Masters font. - * - * This structure can't be used for TrueType GX or OpenType variation - * fonts. - * - * @fields: - * num_axis :: - * Number of axes. Cannot exceed~4. - * - * num_designs :: - * Number of designs; should be normally 2^num_axis even though the - * Type~1 specification strangely allows for intermediate designs to be - * present. This number cannot exceed~16. - * - * axis :: - * A table of axis descriptors. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Multi_Master */ + /* */ + /* <Description> */ + /* A structure used to model the axes and space of a Multiple Masters */ + /* font. */ + /* */ + /* This structure can't be used for GX var fonts. */ + /* */ + /* <Fields> */ + /* num_axis :: Number of axes. Cannot exceed~4. */ + /* */ + /* num_designs :: Number of designs; should be normally 2^num_axis */ + /* even though the Type~1 specification strangely */ + /* allows for intermediate designs to be present. This */ + /* number cannot exceed~16. */ + /* */ + /* axis :: A table of axis descriptors. */ + /* */ typedef struct FT_Multi_Master_ { FT_UInt num_axis; @@ -113,45 +109,34 @@ FT_BEGIN_HEADER } FT_Multi_Master; - /************************************************************************** - * - * @struct: - * FT_Var_Axis - * - * @description: - * A structure to model a given axis in design space for Multiple - * Masters, TrueType GX, and OpenType variation fonts. - * - * @fields: - * name :: - * The axis's name. Not always meaningful for TrueType GX or OpenType - * variation fonts. - * - * minimum :: - * The axis's minimum design coordinate. - * - * def :: - * The axis's default design coordinate. FreeType computes meaningful - * default values for Adobe MM fonts. - * - * maximum :: - * The axis's maximum design coordinate. - * - * tag :: - * The axis's tag (the equivalent to 'name' for TrueType GX and - * OpenType variation fonts). FreeType provides default values for - * Adobe MM fonts if possible. - * - * strid :: - * The axis name entry in the font's 'name' table. This is another - * (and often better) version of the 'name' field for TrueType GX or - * OpenType variation fonts. Not meaningful for Adobe MM fonts. - * - * @note: - * The fields `minimum`, `def`, and `maximum` are 16.16 fractional values - * for TrueType GX and OpenType variation fonts. For Adobe MM fonts, the - * values are integers. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Var_Axis */ + /* */ + /* <Description> */ + /* A simple structure used to model a given axis in design space for */ + /* Multiple Masters and GX var fonts. */ + /* */ + /* <Fields> */ + /* name :: The axis's name. */ + /* Not always meaningful for GX. */ + /* */ + /* minimum :: The axis's minimum design coordinate. */ + /* */ + /* def :: The axis's default design coordinate. */ + /* FreeType computes meaningful default values for MM; it */ + /* is then an integer value, not in 16.16 format. */ + /* */ + /* maximum :: The axis's maximum design coordinate. */ + /* */ + /* tag :: The axis's tag (the GX equivalent to `name'). */ + /* FreeType provides default values for MM if possible. */ + /* */ + /* strid :: The entry in `name' table (another GX version of */ + /* `name'). */ + /* Not meaningful for MM. */ + /* */ typedef struct FT_Var_Axis_ { FT_String* name; @@ -166,79 +151,62 @@ FT_BEGIN_HEADER } FT_Var_Axis; - /************************************************************************** - * - * @struct: - * FT_Var_Named_Style - * - * @description: - * A structure to model a named instance in a TrueType GX or OpenType - * variation font. - * - * This structure can't be used for Adobe MM fonts. - * - * @fields: - * coords :: - * The design coordinates for this instance. This is an array with one - * entry for each axis. - * - * strid :: - * The entry in 'name' table identifying this instance. - * - * psid :: - * The entry in 'name' table identifying a PostScript name for this - * instance. Value 0xFFFF indicates a missing entry. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Var_Named_Style */ + /* */ + /* <Description> */ + /* A simple structure used to model a named style in a GX var font. */ + /* */ + /* This structure can't be used for MM fonts. */ + /* */ + /* <Fields> */ + /* coords :: The design coordinates for this style. */ + /* This is an array with one entry for each axis. */ + /* */ + /* strid :: The entry in `name' table identifying this style. */ + /* */ typedef struct FT_Var_Named_Style_ { FT_Fixed* coords; FT_UInt strid; - FT_UInt psid; /* since 2.7.1 */ } FT_Var_Named_Style; - /************************************************************************** - * - * @struct: - * FT_MM_Var - * - * @description: - * A structure to model the axes and space of an Adobe MM, TrueType GX, - * or OpenType variation font. - * - * Some fields are specific to one format and not to the others. - * - * @fields: - * num_axis :: - * The number of axes. The maximum value is~4 for Adobe MM fonts; no - * limit in TrueType GX or OpenType variation fonts. - * - * num_designs :: - * The number of designs; should be normally 2^num_axis for Adobe MM - * fonts. Not meaningful for TrueType GX or OpenType variation fonts - * (where every glyph could have a different number of designs). - * - * num_namedstyles :: - * The number of named styles; a 'named style' is a tuple of design - * coordinates that has a string ID (in the 'name' table) associated - * with it. The font can tell the user that, for example, - * [Weight=1.5,Width=1.1] is 'Bold'. Another name for 'named style' is - * 'named instance'. - * - * For Adobe Multiple Masters fonts, this value is always zero because - * the format does not support named styles. - * - * axis :: - * An axis descriptor table. TrueType GX and OpenType variation fonts - * contain slightly more data than Adobe MM fonts. Memory management - * of this pointer is done internally by FreeType. - * - * namedstyle :: - * A named style (instance) table. Only meaningful for TrueType GX and - * OpenType variation fonts. Memory management of this pointer is done - * internally by FreeType. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_MM_Var */ + /* */ + /* <Description> */ + /* A structure used to model the axes and space of a Multiple Masters */ + /* or GX var distortable font. */ + /* */ + /* Some fields are specific to one format and not to the other. */ + /* */ + /* <Fields> */ + /* num_axis :: The number of axes. The maximum value is~4 for */ + /* MM; no limit in GX. */ + /* */ + /* num_designs :: The number of designs; should be normally */ + /* 2^num_axis for MM fonts. Not meaningful for GX */ + /* (where every glyph could have a different */ + /* number of designs). */ + /* */ + /* num_namedstyles :: The number of named styles; only meaningful for */ + /* GX that allows certain design coordinates to */ + /* have a string ID (in the `name' table) */ + /* associated with them. The font can tell the */ + /* user that, for example, Weight=1.5 is `Bold'. */ + /* */ + /* axis :: A table of axis descriptors. */ + /* GX fonts contain slightly more data than MM. */ + /* */ + /* namedstyles :: A table of named styles. */ + /* Only meaningful with GX. */ + /* */ typedef struct FT_MM_Var_ { FT_UInt num_axis; @@ -250,503 +218,156 @@ FT_BEGIN_HEADER } FT_MM_Var; - /************************************************************************** - * - * @function: - * FT_Get_Multi_Master - * - * @description: - * Retrieve a variation descriptor of a given Adobe MM font. - * - * This function can't be used with TrueType GX or OpenType variation - * fonts. - * - * @input: - * face :: - * A handle to the source face. - * - * @output: - * amaster :: - * The Multiple Masters descriptor. - * - * @return: - * FreeType error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Multi_Master */ + /* */ + /* <Description> */ + /* Retrieve the Multiple Master descriptor of a given font. */ + /* */ + /* This function can't be used with GX fonts. */ + /* */ + /* <Input> */ + /* face :: A handle to the source face. */ + /* */ + /* <Output> */ + /* amaster :: The Multiple Masters descriptor. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_Get_Multi_Master( FT_Face face, FT_Multi_Master *amaster ); - /************************************************************************** - * - * @function: - * FT_Get_MM_Var - * - * @description: - * Retrieve a variation descriptor for a given font. - * - * This function works with all supported variation formats. - * - * @input: - * face :: - * A handle to the source face. - * - * @output: - * amaster :: - * The variation descriptor. Allocates a data structure, which the - * user must deallocate with a call to @FT_Done_MM_Var after use. - * - * @return: - * FreeType error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_MM_Var */ + /* */ + /* <Description> */ + /* Retrieve the Multiple Master/GX var descriptor of a given font. */ + /* */ + /* <Input> */ + /* face :: A handle to the source face. */ + /* */ + /* <Output> */ + /* amaster :: The Multiple Masters/GX var descriptor. */ + /* Allocates a data structure, which the user must free. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_Get_MM_Var( FT_Face face, FT_MM_Var* *amaster ); - /************************************************************************** - * - * @function: - * FT_Done_MM_Var - * - * @description: - * Free the memory allocated by @FT_Get_MM_Var. - * - * @input: - * library :: - * A handle of the face's parent library object that was used in the - * call to @FT_Get_MM_Var to create `amaster`. - * - * @return: - * FreeType error code. 0~means success. - */ - FT_EXPORT( FT_Error ) - FT_Done_MM_Var( FT_Library library, - FT_MM_Var *amaster ); - - - /************************************************************************** - * - * @function: - * FT_Set_MM_Design_Coordinates - * - * @description: - * For Adobe MM fonts, choose an interpolated font design through design - * coordinates. - * - * This function can't be used with TrueType GX or OpenType variation - * fonts. - * - * @inout: - * face :: - * A handle to the source face. - * - * @input: - * num_coords :: - * The number of available design coordinates. If it is larger than - * the number of axes, ignore the excess values. If it is smaller than - * the number of axes, use default values for the remaining axes. - * - * coords :: - * An array of design coordinates. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * [Since 2.8.1] To reset all axes to the default values, call the - * function with `num_coords` set to zero and `coords` set to `NULL`. - * - * [Since 2.9] If `num_coords` is larger than zero, this function sets - * the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field - * (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero, - * this bit flag gets unset. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Set_MM_Design_Coordinates */ + /* */ + /* <Description> */ + /* For Multiple Masters fonts, choose an interpolated font design */ + /* through design coordinates. */ + /* */ + /* This function can't be used with GX fonts. */ + /* */ + /* <InOut> */ + /* face :: A handle to the source face. */ + /* */ + /* <Input> */ + /* num_coords :: The number of design coordinates (must be equal to */ + /* the number of axes in the font). */ + /* */ + /* coords :: An array of design coordinates. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_Set_MM_Design_Coordinates( FT_Face face, FT_UInt num_coords, FT_Long* coords ); - /************************************************************************** - * - * @function: - * FT_Set_Var_Design_Coordinates - * - * @description: - * Choose an interpolated font design through design coordinates. - * - * This function works with all supported variation formats. - * - * @inout: - * face :: - * A handle to the source face. - * - * @input: - * num_coords :: - * The number of available design coordinates. If it is larger than - * the number of axes, ignore the excess values. If it is smaller than - * the number of axes, use default values for the remaining axes. - * - * coords :: - * An array of design coordinates. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * [Since 2.8.1] To reset all axes to the default values, call the - * function with `num_coords` set to zero and `coords` set to `NULL`. - * [Since 2.9] 'Default values' means the currently selected named - * instance (or the base font if no named instance is selected). - * - * [Since 2.9] If `num_coords` is larger than zero, this function sets - * the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field - * (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero, - * this bit flag gets unset. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Set_Var_Design_Coordinates */ + /* */ + /* <Description> */ + /* For Multiple Master or GX Var fonts, choose an interpolated font */ + /* design through design coordinates. */ + /* */ + /* <InOut> */ + /* face :: A handle to the source face. */ + /* */ + /* <Input> */ + /* num_coords :: The number of design coordinates (must be equal to */ + /* the number of axes in the font). */ + /* */ + /* coords :: An array of design coordinates. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_Set_Var_Design_Coordinates( FT_Face face, FT_UInt num_coords, FT_Fixed* coords ); - /************************************************************************** - * - * @function: - * FT_Get_Var_Design_Coordinates - * - * @description: - * Get the design coordinates of the currently selected interpolated - * font. - * - * This function works with all supported variation formats. - * - * @input: - * face :: - * A handle to the source face. - * - * num_coords :: - * The number of design coordinates to retrieve. If it is larger than - * the number of axes, set the excess values to~0. - * - * @output: - * coords :: - * The design coordinates array. - * - * @return: - * FreeType error code. 0~means success. - * - * @since: - * 2.7.1 - */ - FT_EXPORT( FT_Error ) - FT_Get_Var_Design_Coordinates( FT_Face face, - FT_UInt num_coords, - FT_Fixed* coords ); - - - /************************************************************************** - * - * @function: - * FT_Set_MM_Blend_Coordinates - * - * @description: - * Choose an interpolated font design through normalized blend - * coordinates. - * - * This function works with all supported variation formats. - * - * @inout: - * face :: - * A handle to the source face. - * - * @input: - * num_coords :: - * The number of available design coordinates. If it is larger than - * the number of axes, ignore the excess values. If it is smaller than - * the number of axes, use default values for the remaining axes. - * - * coords :: - * The design coordinates array (each element must be between 0 and 1.0 - * for Adobe MM fonts, and between -1.0 and 1.0 for TrueType GX and - * OpenType variation fonts). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * [Since 2.8.1] To reset all axes to the default values, call the - * function with `num_coords` set to zero and `coords` set to `NULL`. - * [Since 2.9] 'Default values' means the currently selected named - * instance (or the base font if no named instance is selected). - * - * [Since 2.9] If `num_coords` is larger than zero, this function sets - * the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field - * (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero, - * this bit flag gets unset. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Set_MM_Blend_Coordinates */ + /* */ + /* <Description> */ + /* For Multiple Masters and GX var fonts, choose an interpolated font */ + /* design through normalized blend coordinates. */ + /* */ + /* <InOut> */ + /* face :: A handle to the source face. */ + /* */ + /* <Input> */ + /* num_coords :: The number of design coordinates (must be equal to */ + /* the number of axes in the font). */ + /* */ + /* coords :: The design coordinates array (each element must be */ + /* between 0 and 1.0). */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_Set_MM_Blend_Coordinates( FT_Face face, FT_UInt num_coords, FT_Fixed* coords ); - /************************************************************************** - * - * @function: - * FT_Get_MM_Blend_Coordinates - * - * @description: - * Get the normalized blend coordinates of the currently selected - * interpolated font. - * - * This function works with all supported variation formats. - * - * @input: - * face :: - * A handle to the source face. - * - * num_coords :: - * The number of normalized blend coordinates to retrieve. If it is - * larger than the number of axes, set the excess values to~0.5 for - * Adobe MM fonts, and to~0 for TrueType GX and OpenType variation - * fonts. - * - * @output: - * coords :: - * The normalized blend coordinates array. - * - * @return: - * FreeType error code. 0~means success. - * - * @since: - * 2.7.1 - */ - FT_EXPORT( FT_Error ) - FT_Get_MM_Blend_Coordinates( FT_Face face, - FT_UInt num_coords, - FT_Fixed* coords ); - - - /************************************************************************** - * - * @function: - * FT_Set_Var_Blend_Coordinates - * - * @description: - * This is another name of @FT_Set_MM_Blend_Coordinates. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Set_Var_Blend_Coordinates */ + /* */ + /* <Description> */ + /* This is another name of @FT_Set_MM_Blend_Coordinates. */ + /* */ FT_EXPORT( FT_Error ) FT_Set_Var_Blend_Coordinates( FT_Face face, FT_UInt num_coords, FT_Fixed* coords ); - - /************************************************************************** - * - * @function: - * FT_Get_Var_Blend_Coordinates - * - * @description: - * This is another name of @FT_Get_MM_Blend_Coordinates. - * - * @since: - * 2.7.1 - */ - FT_EXPORT( FT_Error ) - FT_Get_Var_Blend_Coordinates( FT_Face face, - FT_UInt num_coords, - FT_Fixed* coords ); - - - /************************************************************************** - * - * @function: - * FT_Set_MM_WeightVector - * - * @description: - * For Adobe MM fonts, choose an interpolated font design by directly - * setting the weight vector. - * - * This function can't be used with TrueType GX or OpenType variation - * fonts. - * - * @inout: - * face :: - * A handle to the source face. - * - * @input: - * len :: - * The length of the weight vector array. If it is larger than the - * number of designs, the extra values are ignored. If it is less than - * the number of designs, the remaining values are set to zero. - * - * weightvector :: - * An array representing the weight vector. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * Adobe Multiple Master fonts limit the number of designs, and thus the - * length of the weight vector to~16. - * - * If `len` is zero and `weightvector` is `NULL`, the weight vector array - * is reset to the default values. - * - * The Adobe documentation also states that the values in the - * WeightVector array must total 1.0 +/-~0.001. In practice this does - * not seem to be enforced, so is not enforced here, either. - * - * @since: - * 2.10 - */ - FT_EXPORT( FT_Error ) - FT_Set_MM_WeightVector( FT_Face face, - FT_UInt len, - FT_Fixed* weightvector ); - - - /************************************************************************** - * - * @function: - * FT_Get_MM_WeightVector - * - * @description: - * For Adobe MM fonts, retrieve the current weight vector of the font. - * - * This function can't be used with TrueType GX or OpenType variation - * fonts. - * - * @inout: - * face :: - * A handle to the source face. - * - * len :: - * A pointer to the size of the array to be filled. If the size of the - * array is less than the number of designs, `FT_Err_Invalid_Argument` - * is returned, and `len` is set to the required size (the number of - * designs). If the size of the array is greater than the number of - * designs, the remaining entries are set to~0. On successful - * completion, `len` is set to the number of designs (i.e., the number - * of values written to the array). - * - * @output: - * weightvector :: - * An array to be filled. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * Adobe Multiple Master fonts limit the number of designs, and thus the - * length of the WeightVector to~16. - * - * @since: - * 2.10 - */ - FT_EXPORT( FT_Error ) - FT_Get_MM_WeightVector( FT_Face face, - FT_UInt* len, - FT_Fixed* weightvector ); - - - /************************************************************************** - * - * @enum: - * FT_VAR_AXIS_FLAG_XXX - * - * @description: - * A list of bit flags used in the return value of - * @FT_Get_Var_Axis_Flags. - * - * @values: - * FT_VAR_AXIS_FLAG_HIDDEN :: - * The variation axis should not be exposed to user interfaces. - * - * @since: - * 2.8.1 - */ -#define FT_VAR_AXIS_FLAG_HIDDEN 1 - - - /************************************************************************** - * - * @function: - * FT_Get_Var_Axis_Flags - * - * @description: - * Get the 'flags' field of an OpenType Variation Axis Record. - * - * Not meaningful for Adobe MM fonts (`*flags` is always zero). - * - * @input: - * master :: - * The variation descriptor. - * - * axis_index :: - * The index of the requested variation axis. - * - * @output: - * flags :: - * The 'flags' field. See @FT_VAR_AXIS_FLAG_XXX for possible values. - * - * @return: - * FreeType error code. 0~means success. - * - * @since: - * 2.8.1 - */ - FT_EXPORT( FT_Error ) - FT_Get_Var_Axis_Flags( FT_MM_Var* master, - FT_UInt axis_index, - FT_UInt* flags ); - - - /************************************************************************** - * - * @function: - * FT_Set_Named_Instance - * - * @description: - * Set or change the current named instance. - * - * @input: - * face :: - * A handle to the source face. - * - * instance_index :: - * The index of the requested instance, starting with value 1. If set - * to value 0, FreeType switches to font access without a named - * instance. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The function uses the value of `instance_index` to set bits 16-30 of - * the face's `face_index` field. It also resets any variation applied - * to the font, and the @FT_FACE_FLAG_VARIATION bit of the face's - * `face_flags` field gets reset to zero (i.e., @FT_IS_VARIATION will - * return false). - * - * For Adobe MM fonts (which don't have named instances) this function - * simply resets the current face to the default instance. - * - * @since: - * 2.9 - */ - FT_EXPORT( FT_Error ) - FT_Set_Named_Instance( FT_Face face, - FT_UInt instance_index ); - /* */ FT_END_HEADER -#endif /* FTMM_H_ */ +#endif /* __FTMM_H__ */ /* END */ diff --git a/win64/include/freetype/ftmodapi.h b/win64/include/freetype/ftmodapi.h index 3f7ae82b..980f15d3 100644 --- a/win64/include/freetype/ftmodapi.h +++ b/win64/include/freetype/ftmodapi.h @@ -1,26 +1,27 @@ -/**************************************************************************** - * - * ftmodapi.h - * - * FreeType modules public interface (specification). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftmodapi.h */ +/* */ +/* FreeType modules public interface (specification). */ +/* */ +/* Copyright 1996-2003, 2006, 2008-2010, 2012, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTMODAPI_H_ -#define FTMODAPI_H_ +#ifndef __FTMODAPI_H__ +#define __FTMODAPI_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -32,77 +33,76 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * module_management - * - * @title: - * Module Management - * - * @abstract: - * How to add, upgrade, remove, and control modules from FreeType. - * - * @description: - * The definitions below are used to manage modules within FreeType. - * Modules can be added, upgraded, and removed at runtime. Additionally, - * some module properties can be controlled also. - * - * Here is a list of possible values of the `module_name` field in the - * @FT_Module_Class structure. - * - * ``` - * autofitter - * bdf - * cff - * gxvalid - * otvalid - * pcf - * pfr - * psaux - * pshinter - * psnames - * raster1 - * sfnt - * smooth - * truetype - * type1 - * type42 - * t1cid - * winfonts - * ``` - * - * Note that the FreeType Cache sub-system is not a FreeType module. - * - * @order: - * FT_Module - * FT_Module_Constructor - * FT_Module_Destructor - * FT_Module_Requester - * FT_Module_Class - * - * FT_Add_Module - * FT_Get_Module - * FT_Remove_Module - * FT_Add_Default_Modules - * - * FT_Property_Set - * FT_Property_Get - * FT_Set_Default_Properties - * - * FT_New_Library - * FT_Done_Library - * FT_Reference_Library - * - * FT_Renderer - * FT_Renderer_Class - * - * FT_Get_Renderer - * FT_Set_Renderer - * - * FT_Set_Debug_Hook - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* module_management */ + /* */ + /* <Title> */ + /* Module Management */ + /* */ + /* <Abstract> */ + /* How to add, upgrade, remove, and control modules from FreeType. */ + /* */ + /* <Description> */ + /* The definitions below are used to manage modules within FreeType. */ + /* Modules can be added, upgraded, and removed at runtime. */ + /* Additionally, some module properties can be controlled also. */ + /* */ + /* Here is a list of possible values of the `module_name' field in */ + /* the @FT_Module_Class structure. */ + /* */ + /* { */ + /* autofitter */ + /* bdf */ + /* cff */ + /* gxvalid */ + /* otvalid */ + /* pcf */ + /* pfr */ + /* psaux */ + /* pshinter */ + /* psnames */ + /* raster1, raster5 */ + /* sfnt */ + /* smooth, smooth-lcd, smooth-lcdv */ + /* truetype */ + /* type1 */ + /* type42 */ + /* t1cid */ + /* winfonts */ + /* } */ + /* */ + /* Note that the FreeType Cache sub-system is not a FreeType module. */ + /* */ + /* <Order> */ + /* FT_Module */ + /* FT_Module_Constructor */ + /* FT_Module_Destructor */ + /* FT_Module_Requester */ + /* FT_Module_Class */ + /* */ + /* FT_Add_Module */ + /* FT_Get_Module */ + /* FT_Remove_Module */ + /* FT_Add_Default_Modules */ + /* */ + /* FT_Property_Set */ + /* FT_Property_Get */ + /* */ + /* FT_New_Library */ + /* FT_Done_Library */ + /* FT_Reference_Library */ + /* */ + /* FT_Renderer */ + /* FT_Renderer_Class */ + /* */ + /* FT_Get_Renderer */ + /* FT_Set_Renderer */ + /* */ + /* FT_Set_Debug_Hook */ + /* */ + /*************************************************************************/ /* module bit flags */ @@ -111,14 +111,12 @@ FT_BEGIN_HEADER #define FT_MODULE_HINTER 4 /* this module is a glyph hinter */ #define FT_MODULE_STYLER 8 /* this module is a styler */ -#define FT_MODULE_DRIVER_SCALABLE 0x100 /* the driver supports */ +#define FT_MODULE_DRIVER_SCALABLE 0x100 /* the driver supports */ /* scalable fonts */ -#define FT_MODULE_DRIVER_NO_OUTLINES 0x200 /* the driver does not */ +#define FT_MODULE_DRIVER_NO_OUTLINES 0x200 /* the driver does not */ /* support vector outlines */ -#define FT_MODULE_DRIVER_HAS_HINTER 0x400 /* the driver provides its */ +#define FT_MODULE_DRIVER_HAS_HINTER 0x400 /* the driver provides its */ /* own hinter */ -#define FT_MODULE_DRIVER_HINTS_LIGHTLY 0x800 /* the driver's hinter */ - /* produces LIGHT hints */ /* deprecated values */ @@ -127,108 +125,91 @@ FT_BEGIN_HEADER #define ft_module_hinter FT_MODULE_HINTER #define ft_module_styler FT_MODULE_STYLER -#define ft_module_driver_scalable FT_MODULE_DRIVER_SCALABLE -#define ft_module_driver_no_outlines FT_MODULE_DRIVER_NO_OUTLINES -#define ft_module_driver_has_hinter FT_MODULE_DRIVER_HAS_HINTER -#define ft_module_driver_hints_lightly FT_MODULE_DRIVER_HINTS_LIGHTLY +#define ft_module_driver_scalable FT_MODULE_DRIVER_SCALABLE +#define ft_module_driver_no_outlines FT_MODULE_DRIVER_NO_OUTLINES +#define ft_module_driver_has_hinter FT_MODULE_DRIVER_HAS_HINTER typedef FT_Pointer FT_Module_Interface; - /************************************************************************** - * - * @functype: - * FT_Module_Constructor - * - * @description: - * A function used to initialize (not create) a new module object. - * - * @input: - * module :: - * The module to initialize. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Module_Constructor */ + /* */ + /* <Description> */ + /* A function used to initialize (not create) a new module object. */ + /* */ + /* <Input> */ + /* module :: The module to initialize. */ + /* */ typedef FT_Error (*FT_Module_Constructor)( FT_Module module ); - /************************************************************************** - * - * @functype: - * FT_Module_Destructor - * - * @description: - * A function used to finalize (not destroy) a given module object. - * - * @input: - * module :: - * The module to finalize. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Module_Destructor */ + /* */ + /* <Description> */ + /* A function used to finalize (not destroy) a given module object. */ + /* */ + /* <Input> */ + /* module :: The module to finalize. */ + /* */ typedef void (*FT_Module_Destructor)( FT_Module module ); - /************************************************************************** - * - * @functype: - * FT_Module_Requester - * - * @description: - * A function used to query a given module for a specific interface. - * - * @input: - * module :: - * The module to be searched. - * - * name :: - * The name of the interface in the module. - */ + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Module_Requester */ + /* */ + /* <Description> */ + /* A function used to query a given module for a specific interface. */ + /* */ + /* <Input> */ + /* module :: The module to be searched. */ + /* */ + /* name :: The name of the interface in the module. */ + /* */ typedef FT_Module_Interface (*FT_Module_Requester)( FT_Module module, const char* name ); - /************************************************************************** - * - * @struct: - * FT_Module_Class - * - * @description: - * The module class descriptor. While being a public structure necessary - * for FreeType's module bookkeeping, most of the fields are essentially - * internal, not to be used directly by an application. - * - * @fields: - * module_flags :: - * Bit flags describing the module. - * - * module_size :: - * The size of one module object/instance in bytes. - * - * module_name :: - * The name of the module. - * - * module_version :: - * The version, as a 16.16 fixed number (major.minor). - * - * module_requires :: - * The version of FreeType this module requires, as a 16.16 fixed - * number (major.minor). Starts at version 2.0, i.e., 0x20000. - * - * module_interface :: - * A typeless pointer to a structure (which varies between different - * modules) that holds the module's interface functions. This is - * essentially what `get_interface` returns. - * - * module_init :: - * The initializing function. - * - * module_done :: - * The finalizing function. - * - * get_interface :: - * The interface requesting function. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Module_Class */ + /* */ + /* <Description> */ + /* The module class descriptor. */ + /* */ + /* <Fields> */ + /* module_flags :: Bit flags describing the module. */ + /* */ + /* module_size :: The size of one module object/instance in */ + /* bytes. */ + /* */ + /* module_name :: The name of the module. */ + /* */ + /* module_version :: The version, as a 16.16 fixed number */ + /* (major.minor). */ + /* */ + /* module_requires :: The version of FreeType this module requires, */ + /* as a 16.16 fixed number (major.minor). Starts */ + /* at version 2.0, i.e., 0x20000. */ + /* */ + /* module_init :: The initializing function. */ + /* */ + /* module_done :: The finalizing function. */ + /* */ + /* get_interface :: The interface requesting function. */ + /* */ typedef struct FT_Module_Class_ { FT_ULong module_flags; @@ -246,89 +227,83 @@ FT_BEGIN_HEADER } FT_Module_Class; - /************************************************************************** - * - * @function: - * FT_Add_Module - * - * @description: - * Add a new module to a given library instance. - * - * @inout: - * library :: - * A handle to the library object. - * - * @input: - * clazz :: - * A pointer to class descriptor for the module. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * An error will be returned if a module already exists by that name, or - * if the module requires a version of FreeType that is too great. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Add_Module */ + /* */ + /* <Description> */ + /* Add a new module to a given library instance. */ + /* */ + /* <InOut> */ + /* library :: A handle to the library object. */ + /* */ + /* <Input> */ + /* clazz :: A pointer to class descriptor for the module. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* An error will be returned if a module already exists by that name, */ + /* or if the module requires a version of FreeType that is too great. */ + /* */ FT_EXPORT( FT_Error ) FT_Add_Module( FT_Library library, const FT_Module_Class* clazz ); - /************************************************************************** - * - * @function: - * FT_Get_Module - * - * @description: - * Find a module by its name. - * - * @input: - * library :: - * A handle to the library object. - * - * module_name :: - * The module's name (as an ASCII string). - * - * @return: - * A module handle. 0~if none was found. - * - * @note: - * FreeType's internal modules aren't documented very well, and you - * should look up the source code for details. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Module */ + /* */ + /* <Description> */ + /* Find a module by its name. */ + /* */ + /* <Input> */ + /* library :: A handle to the library object. */ + /* */ + /* module_name :: The module's name (as an ASCII string). */ + /* */ + /* <Return> */ + /* A module handle. 0~if none was found. */ + /* */ + /* <Note> */ + /* FreeType's internal modules aren't documented very well, and you */ + /* should look up the source code for details. */ + /* */ FT_EXPORT( FT_Module ) FT_Get_Module( FT_Library library, const char* module_name ); - /************************************************************************** - * - * @function: - * FT_Remove_Module - * - * @description: - * Remove a given module from a library instance. - * - * @inout: - * library :: - * A handle to a library object. - * - * @input: - * module :: - * A handle to a module object. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The module object is destroyed by the function in case of success. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Remove_Module */ + /* */ + /* <Description> */ + /* Remove a given module from a library instance. */ + /* */ + /* <InOut> */ + /* library :: A handle to a library object. */ + /* */ + /* <Input> */ + /* module :: A handle to a module object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* The module object is destroyed by the function in case of success. */ + /* */ FT_EXPORT( FT_Error ) FT_Remove_Module( FT_Library library, FT_Module module ); - /************************************************************************** + /********************************************************************** * * @function: * FT_Property_Set @@ -338,51 +313,54 @@ FT_BEGIN_HEADER * * @input: * library :: - * A handle to the library the module is part of. + * A handle to the library the module is part of. * * module_name :: - * The module name. + * The module name. * * property_name :: - * The property name. Properties are described in section - * @properties. + * The property name. Properties are described in the `Synopsis' + * subsection of the module's documentation. * - * Note that only a few modules have properties. + * Note that only a few modules have properties. * * value :: - * A generic pointer to a variable or structure that gives the new - * value of the property. The exact definition of `value` is - * dependent on the property; see section @properties. + * A generic pointer to a variable or structure that gives the new + * value of the property. The exact definition of `value' is + * dependent on the property; see the `Synopsis' subsection of the + * module's documentation. * * @return: * FreeType error code. 0~means success. * * @note: - * If `module_name` isn't a valid module name, or `property_name` - * doesn't specify a valid property, or if `value` doesn't represent a + * If `module_name' isn't a valid module name, or `property_name' + * doesn't specify a valid property, or if `value' doesn't represent a * valid value for the given property, an error is returned. * - * The following example sets property 'bar' (a simple integer) in - * module 'foo' to value~1. + * The following example sets property `bar' (a simple integer) in + * module `foo' to value~1. * - * ``` + * { * FT_UInt bar; * * * bar = 1; * FT_Property_Set( library, "foo", "bar", &bar ); - * ``` + * } * * Note that the FreeType Cache sub-system doesn't recognize module * property changes. To avoid glyph lookup confusion within the cache - * you should call @FTC_Manager_Reset to completely flush the cache if a - * module property gets changed after @FTC_Manager_New has been called. + * you should call @FTC_Manager_Reset to completely flush the cache if + * a module property gets changed after @FTC_Manager_New has been + * called. * - * It is not possible to set properties of the FreeType Cache sub-system - * itself with FT_Property_Set; use @FTC_Property_Set instead. + * It is not possible to set properties of the FreeType Cache + * sub-system itself with FT_Property_Set; use @FTC_Property_Set + * instead. * - * @since: - * 2.4.11 + * @since: + * 2.4.11 * */ FT_EXPORT( FT_Error ) @@ -392,7 +370,7 @@ FT_BEGIN_HEADER const void* value ); - /************************************************************************** + /********************************************************************** * * @function: * FT_Property_Get @@ -402,32 +380,33 @@ FT_BEGIN_HEADER * * @input: * library :: - * A handle to the library the module is part of. + * A handle to the library the module is part of. * * module_name :: - * The module name. + * The module name. * * property_name :: - * The property name. Properties are described in section - * @properties. + * The property name. Properties are described in the `Synopsis' + * subsection of the module's documentation. * * @inout: * value :: - * A generic pointer to a variable or structure that gives the value - * of the property. The exact definition of `value` is dependent on - * the property; see section @properties. + * A generic pointer to a variable or structure that gives the + * value of the property. The exact definition of `value' is + * dependent on the property; see the `Synopsis' subsection of the + * module's documentation. * * @return: * FreeType error code. 0~means success. * * @note: - * If `module_name` isn't a valid module name, or `property_name` - * doesn't specify a valid property, or if `value` doesn't represent a + * If `module_name' isn't a valid module name, or `property_name' + * doesn't specify a valid property, or if `value' doesn't represent a * valid value for the given property, an error is returned. * - * The following example gets property 'baz' (a range) in module 'foo'. + * The following example gets property `baz' (a range) in module `foo'. * - * ``` + * { * typedef range_ * { * FT_Int32 min; @@ -439,13 +418,13 @@ FT_BEGIN_HEADER * * * FT_Property_Get( library, "foo", "baz", &baz ); - * ``` + * } * * It is not possible to retrieve properties of the FreeType Cache * sub-system with FT_Property_Get; use @FTC_Property_Get instead. * - * @since: - * 2.4.11 + * @since: + * 2.4.11 * */ FT_EXPORT( FT_Error ) @@ -455,243 +434,142 @@ FT_BEGIN_HEADER void* value ); - /************************************************************************** - * - * @function: - * FT_Set_Default_Properties - * - * @description: - * If compilation option `FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES` is - * set, this function reads the `FREETYPE_PROPERTIES` environment - * variable to control driver properties. See section @properties for - * more. - * - * If the compilation option is not set, this function does nothing. - * - * `FREETYPE_PROPERTIES` has the following syntax form (broken here into - * multiple lines for better readability). - * - * ``` - * <optional whitespace> - * <module-name1> ':' - * <property-name1> '=' <property-value1> - * <whitespace> - * <module-name2> ':' - * <property-name2> '=' <property-value2> - * ... - * ``` - * - * Example: - * - * ``` - * FREETYPE_PROPERTIES=truetype:interpreter-version=35 \ - * cff:no-stem-darkening=0 \ - * autofitter:warping=1 - * ``` - * - * @inout: - * library :: - * A handle to a new library object. - * - * @since: - * 2.8 - */ - FT_EXPORT( void ) - FT_Set_Default_Properties( FT_Library library ); - - - /************************************************************************** - * - * @function: - * FT_Reference_Library - * - * @description: - * A counter gets initialized to~1 at the time an @FT_Library structure - * is created. This function increments the counter. @FT_Done_Library - * then only destroys a library if the counter is~1, otherwise it simply - * decrements the counter. - * - * This function helps in managing life-cycles of structures that - * reference @FT_Library objects. - * - * @input: - * library :: - * A handle to a target library object. - * - * @return: - * FreeType error code. 0~means success. - * - * @since: - * 2.4.2 - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Reference_Library */ + /* */ + /* <Description> */ + /* A counter gets initialized to~1 at the time an @FT_Library */ + /* structure is created. This function increments the counter. */ + /* @FT_Done_Library then only destroys a library if the counter is~1, */ + /* otherwise it simply decrements the counter. */ + /* */ + /* This function helps in managing life-cycles of structures that */ + /* reference @FT_Library objects. */ + /* */ + /* <Input> */ + /* library :: A handle to a target library object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Since> */ + /* 2.4.2 */ + /* */ FT_EXPORT( FT_Error ) FT_Reference_Library( FT_Library library ); - /************************************************************************** - * - * @function: - * FT_New_Library - * - * @description: - * This function is used to create a new FreeType library instance from a - * given memory object. It is thus possible to use libraries with - * distinct memory allocators within the same program. Note, however, - * that the used @FT_Memory structure is expected to remain valid for the - * life of the @FT_Library object. - * - * Normally, you would call this function (followed by a call to - * @FT_Add_Default_Modules or a series of calls to @FT_Add_Module, and a - * call to @FT_Set_Default_Properties) instead of @FT_Init_FreeType to - * initialize the FreeType library. - * - * Don't use @FT_Done_FreeType but @FT_Done_Library to destroy a library - * instance. - * - * @input: - * memory :: - * A handle to the original memory object. - * - * @output: - * alibrary :: - * A pointer to handle of a new library object. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * See the discussion of reference counters in the description of - * @FT_Reference_Library. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_New_Library */ + /* */ + /* <Description> */ + /* This function is used to create a new FreeType library instance */ + /* from a given memory object. It is thus possible to use libraries */ + /* with distinct memory allocators within the same program. */ + /* */ + /* Normally, you would call this function (followed by a call to */ + /* @FT_Add_Default_Modules or a series of calls to @FT_Add_Module) */ + /* instead of @FT_Init_FreeType to initialize the FreeType library. */ + /* */ + /* Don't use @FT_Done_FreeType but @FT_Done_Library to destroy a */ + /* library instance. */ + /* */ + /* <Input> */ + /* memory :: A handle to the original memory object. */ + /* */ + /* <Output> */ + /* alibrary :: A pointer to handle of a new library object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* See the discussion of reference counters in the description of */ + /* @FT_Reference_Library. */ + /* */ FT_EXPORT( FT_Error ) FT_New_Library( FT_Memory memory, FT_Library *alibrary ); - /************************************************************************** - * - * @function: - * FT_Done_Library - * - * @description: - * Discard a given library object. This closes all drivers and discards - * all resource objects. - * - * @input: - * library :: - * A handle to the target library. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * See the discussion of reference counters in the description of - * @FT_Reference_Library. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Done_Library */ + /* */ + /* <Description> */ + /* Discard a given library object. This closes all drivers and */ + /* discards all resource objects. */ + /* */ + /* <Input> */ + /* library :: A handle to the target library. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* See the discussion of reference counters in the description of */ + /* @FT_Reference_Library. */ + /* */ FT_EXPORT( FT_Error ) FT_Done_Library( FT_Library library ); + /* */ - /************************************************************************** - * - * @functype: - * FT_DebugHook_Func - * - * @description: - * A drop-in replacement (or rather a wrapper) for the bytecode or - * charstring interpreter's main loop function. - * - * Its job is essentially - * - * - to activate debug mode to enforce single-stepping, - * - * - to call the main loop function to interpret the next opcode, and - * - * - to show the changed context to the user. - * - * An example for such a main loop function is `TT_RunIns` (declared in - * FreeType's internal header file `src/truetype/ttinterp.h`). - * - * Have a look at the source code of the `ttdebug` FreeType demo program - * for an example of a drop-in replacement. - * - * @inout: - * arg :: - * A typeless pointer, to be cast to the main loop function's data - * structure (which depends on the font module). For TrueType fonts - * it is bytecode interpreter's execution context, `TT_ExecContext`, - * which is declared in FreeType's internal header file `tttypes.h`. - */ - typedef FT_Error + typedef void (*FT_DebugHook_Func)( void* arg ); - /************************************************************************** - * - * @enum: - * FT_DEBUG_HOOK_XXX - * - * @description: - * A list of named debug hook indices. - * - * @values: - * FT_DEBUG_HOOK_TRUETYPE:: - * This hook index identifies the TrueType bytecode debugger. - */ -#define FT_DEBUG_HOOK_TRUETYPE 0 - - - /************************************************************************** - * - * @function: - * FT_Set_Debug_Hook - * - * @description: - * Set a debug hook function for debugging the interpreter of a font - * format. - * - * While this is a public API function, an application needs access to - * FreeType's internal header files to do something useful. - * - * Have a look at the source code of the `ttdebug` FreeType demo program - * for an example of its usage. - * - * @inout: - * library :: - * A handle to the library object. - * - * @input: - * hook_index :: - * The index of the debug hook. You should use defined enumeration - * macros like @FT_DEBUG_HOOK_TRUETYPE. - * - * debug_hook :: - * The function used to debug the interpreter. - * - * @note: - * Currently, four debug hook slots are available, but only one (for the - * TrueType interpreter) is defined. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Set_Debug_Hook */ + /* */ + /* <Description> */ + /* Set a debug hook function for debugging the interpreter of a font */ + /* format. */ + /* */ + /* <InOut> */ + /* library :: A handle to the library object. */ + /* */ + /* <Input> */ + /* hook_index :: The index of the debug hook. You should use the */ + /* values defined in `ftobjs.h', e.g., */ + /* `FT_DEBUG_HOOK_TRUETYPE'. */ + /* */ + /* debug_hook :: The function used to debug the interpreter. */ + /* */ + /* <Note> */ + /* Currently, four debug hook slots are available, but only two (for */ + /* the TrueType and the Type~1 interpreter) are defined. */ + /* */ + /* Since the internal headers of FreeType are no longer installed, */ + /* the symbol `FT_DEBUG_HOOK_TRUETYPE' isn't available publicly. */ + /* This is a bug and will be fixed in a forthcoming release. */ + /* */ FT_EXPORT( void ) FT_Set_Debug_Hook( FT_Library library, FT_UInt hook_index, FT_DebugHook_Func debug_hook ); - /************************************************************************** - * - * @function: - * FT_Add_Default_Modules - * - * @description: - * Add the set of default drivers to a given library object. This is - * only useful when you create a library object with @FT_New_Library - * (usually to plug a custom memory manager). - * - * @inout: - * library :: - * A handle to a new library object. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Add_Default_Modules */ + /* */ + /* <Description> */ + /* Add the set of default drivers to a given library object. */ + /* This is only useful when you create a library object with */ + /* @FT_New_Library (usually to plug a custom memory manager). */ + /* */ + /* <InOut> */ + /* library :: A handle to a new library object. */ + /* */ FT_EXPORT( void ) FT_Add_Default_Modules( FT_Library library ); @@ -717,28 +595,33 @@ FT_BEGIN_HEADER /************************************************************************** * - * @enum: - * FT_TrueTypeEngineType + * @enum: + * FT_TrueTypeEngineType * - * @description: - * A list of values describing which kind of TrueType bytecode engine is - * implemented in a given FT_Library instance. It is used by the - * @FT_Get_TrueType_Engine_Type function. + * @description: + * A list of values describing which kind of TrueType bytecode + * engine is implemented in a given FT_Library instance. It is used + * by the @FT_Get_TrueType_Engine_Type function. * - * @values: - * FT_TRUETYPE_ENGINE_TYPE_NONE :: - * The library doesn't implement any kind of bytecode interpreter. + * @values: + * FT_TRUETYPE_ENGINE_TYPE_NONE :: + * The library doesn't implement any kind of bytecode interpreter. * - * FT_TRUETYPE_ENGINE_TYPE_UNPATENTED :: - * Deprecated and removed. + * FT_TRUETYPE_ENGINE_TYPE_UNPATENTED :: + * The library implements a bytecode interpreter that doesn't + * support the patented operations of the TrueType virtual machine. * - * FT_TRUETYPE_ENGINE_TYPE_PATENTED :: - * The library implements a bytecode interpreter that covers the full - * instruction set of the TrueType virtual machine (this was governed - * by patents until May 2010, hence the name). + * Its main use is to load certain Asian fonts that position and + * scale glyph components with bytecode instructions. It produces + * bad output for most other fonts. * - * @since: - * 2.2 + * FT_TRUETYPE_ENGINE_TYPE_PATENTED :: + * The library implements a bytecode interpreter that covers + * the full instruction set of the TrueType virtual machine (this + * was governed by patents until May 2010, hence the name). + * + * @since: + * 2.2 * */ typedef enum FT_TrueTypeEngineType_ @@ -752,22 +635,22 @@ FT_BEGIN_HEADER /************************************************************************** * - * @function: - * FT_Get_TrueType_Engine_Type + * @func: + * FT_Get_TrueType_Engine_Type * - * @description: - * Return an @FT_TrueTypeEngineType value to indicate which level of the - * TrueType virtual machine a given library instance supports. + * @description: + * Return an @FT_TrueTypeEngineType value to indicate which level of + * the TrueType virtual machine a given library instance supports. * - * @input: - * library :: - * A library instance. + * @input: + * library :: + * A library instance. * - * @return: - * A value indicating which level is supported. + * @return: + * A value indicating which level is supported. * - * @since: - * 2.2 + * @since: + * 2.2 * */ FT_EXPORT( FT_TrueTypeEngineType ) @@ -778,7 +661,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTMODAPI_H_ */ +#endif /* __FTMODAPI_H__ */ /* END */ diff --git a/win64/include/freetype/ftmoderr.h b/win64/include/freetype/ftmoderr.h index f05fc53a..5a27db15 100644 --- a/win64/include/freetype/ftmoderr.h +++ b/win64/include/freetype/ftmoderr.h @@ -1,107 +1,98 @@ -/**************************************************************************** - * - * ftmoderr.h - * - * FreeType module error offsets (specification). - * - * Copyright (C) 2001-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftmoderr.h */ +/* */ +/* FreeType module error offsets (specification). */ +/* */ +/* Copyright 2001-2005, 2010, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * This file is used to define the FreeType module error codes. - * - * If the macro `FT_CONFIG_OPTION_USE_MODULE_ERRORS` in `ftoption.h` is - * set, the lower byte of an error value identifies the error code as - * usual. In addition, the higher byte identifies the module. For - * example, the error `FT_Err_Invalid_File_Format` has value 0x0003, the - * error `TT_Err_Invalid_File_Format` has value 0x1303, the error - * `T1_Err_Invalid_File_Format` has value 0x1403, etc. - * - * Note that `FT_Err_Ok`, `TT_Err_Ok`, etc. are always equal to zero, - * including the high byte. - * - * If `FT_CONFIG_OPTION_USE_MODULE_ERRORS` isn't set, the higher byte of an - * error value is set to zero. - * - * To hide the various `XXX_Err_` prefixes in the source code, FreeType - * provides some macros in `fttypes.h`. - * - * FT_ERR( err ) - * - * Add current error module prefix (as defined with the `FT_ERR_PREFIX` - * macro) to `err`. For example, in the BDF module the line - * - * ``` - * error = FT_ERR( Invalid_Outline ); - * ``` - * - * expands to - * - * ``` - * error = BDF_Err_Invalid_Outline; - * ``` - * - * For simplicity, you can always use `FT_Err_Ok` directly instead of - * `FT_ERR( Ok )`. - * - * FT_ERR_EQ( errcode, err ) - * FT_ERR_NEQ( errcode, err ) - * - * Compare error code `errcode` with the error `err` for equality and - * inequality, respectively. Example: - * - * ``` - * if ( FT_ERR_EQ( error, Invalid_Outline ) ) - * ... - * ``` - * - * Using this macro you don't have to think about error prefixes. Of - * course, if module errors are not active, the above example is the - * same as - * - * ``` - * if ( error == FT_Err_Invalid_Outline ) - * ... - * ``` - * - * FT_ERROR_BASE( errcode ) - * FT_ERROR_MODULE( errcode ) - * - * Get base error and module error code, respectively. - * - * It can also be used to create a module error message table easily with - * something like - * - * ``` - * #undef FTMODERR_H_ - * #define FT_MODERRDEF( e, v, s ) { FT_Mod_Err_ ## e, s }, - * #define FT_MODERR_START_LIST { - * #define FT_MODERR_END_LIST { 0, 0 } }; - * - * const struct - * { - * int mod_err_offset; - * const char* mod_err_msg - * } ft_mod_errors[] = - * - * #include <freetype/ftmoderr.h> - * ``` - * - */ + /*************************************************************************/ + /* */ + /* This file is used to define the FreeType module error codes. */ + /* */ + /* If the macro FT_CONFIG_OPTION_USE_MODULE_ERRORS in `ftoption.h' is */ + /* set, the lower byte of an error value identifies the error code as */ + /* usual. In addition, the higher byte identifies the module. For */ + /* example, the error `FT_Err_Invalid_File_Format' has value 0x0003, the */ + /* error `TT_Err_Invalid_File_Format' has value 0x1303, the error */ + /* `T1_Err_Invalid_File_Format' has value 0x1403, etc. */ + /* */ + /* Note that `FT_Err_Ok', `TT_Err_Ok', etc. are always equal to zero, */ + /* including the high byte. */ + /* */ + /* If FT_CONFIG_OPTION_USE_MODULE_ERRORS isn't set, the higher byte of */ + /* an error value is set to zero. */ + /* */ + /* To hide the various `XXX_Err_' prefixes in the source code, FreeType */ + /* provides some macros in `fttypes.h'. */ + /* */ + /* FT_ERR( err ) */ + /* Add current error module prefix (as defined with the */ + /* `FT_ERR_PREFIX' macro) to `err'. For example, in the BDF module */ + /* the line */ + /* */ + /* error = FT_ERR( Invalid_Outline ); */ + /* */ + /* expands to */ + /* */ + /* error = BDF_Err_Invalid_Outline; */ + /* */ + /* For simplicity, you can always use `FT_Err_Ok' directly instead */ + /* of `FT_ERR( Ok )'. */ + /* */ + /* FT_ERR_EQ( errcode, err ) */ + /* FT_ERR_NEQ( errcode, err ) */ + /* Compare error code `errcode' with the error `err' for equality */ + /* and inequality, respectively. Example: */ + /* */ + /* if ( FT_ERR_EQ( error, Invalid_Outline ) ) */ + /* ... */ + /* */ + /* Using this macro you don't have to think about error prefixes. */ + /* Of course, if module errors are not active, the above example is */ + /* the same as */ + /* */ + /* if ( error == FT_Err_Invalid_Outline ) */ + /* ... */ + /* */ + /* FT_ERROR_BASE( errcode ) */ + /* FT_ERROR_MODULE( errcode ) */ + /* Get base error and module error code, respectively. */ + /* */ + /* */ + /* It can also be used to create a module error message table easily */ + /* with something like */ + /* */ + /* { */ + /* #undef __FTMODERR_H__ */ + /* #define FT_MODERRDEF( e, v, s ) { FT_Mod_Err_ ## e, s }, */ + /* #define FT_MODERR_START_LIST { */ + /* #define FT_MODERR_END_LIST { 0, 0 } }; */ + /* */ + /* const struct */ + /* { */ + /* int mod_err_offset; */ + /* const char* mod_err_msg */ + /* } ft_mod_errors[] = */ + /* */ + /* #include FT_MODULE_ERRORS_H */ + /* } */ + /* */ + /*************************************************************************/ -#ifndef FTMODERR_H_ -#define FTMODERR_H_ +#ifndef __FTMODERR_H__ +#define __FTMODERR_H__ /*******************************************************************/ @@ -197,7 +188,7 @@ #undef FT_NEED_EXTERN_C -#endif /* FTMODERR_H_ */ +#endif /* __FTMODERR_H__ */ /* END */ diff --git a/win64/include/freetype/ftotval.h b/win64/include/freetype/ftotval.h index 9c00ad30..75ba03ee 100644 --- a/win64/include/freetype/ftotval.h +++ b/win64/include/freetype/ftotval.h @@ -1,36 +1,37 @@ -/**************************************************************************** - * - * ftotval.h - * - * FreeType API for validating OpenType tables (specification). - * - * Copyright (C) 2004-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftotval.h */ +/* */ +/* FreeType API for validating OpenType tables (specification). */ +/* */ +/* Copyright 2004-2007, 2013, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ -/**************************************************************************** - * - * - * Warning: This module might be moved to a different library in the - * future to avoid a tight dependency between FreeType and the - * OpenType specification. - * - * - */ +/***************************************************************************/ +/* */ +/* */ +/* Warning: This module might be moved to a different library in the */ +/* future to avoid a tight dependency between FreeType and the */ +/* OpenType specification. */ +/* */ +/* */ +/***************************************************************************/ -#ifndef FTOTVAL_H_ -#define FTOTVAL_H_ +#ifndef __FTOTVAL_H__ +#define __FTOTVAL_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -42,62 +43,62 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * ot_validation - * - * @title: - * OpenType Validation - * - * @abstract: - * An API to validate OpenType tables. - * - * @description: - * This section contains the declaration of functions to validate some - * OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). - * - * @order: - * FT_OpenType_Validate - * FT_OpenType_Free - * - * FT_VALIDATE_OTXXX - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* ot_validation */ + /* */ + /* <Title> */ + /* OpenType Validation */ + /* */ + /* <Abstract> */ + /* An API to validate OpenType tables. */ + /* */ + /* <Description> */ + /* This section contains the declaration of functions to validate */ + /* some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). */ + /* */ + /* <Order> */ + /* FT_OpenType_Validate */ + /* FT_OpenType_Free */ + /* */ + /* FT_VALIDATE_OTXXX */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @enum: - * FT_VALIDATE_OTXXX - * - * @description: - * A list of bit-field constants used with @FT_OpenType_Validate to - * indicate which OpenType tables should be validated. - * - * @values: - * FT_VALIDATE_BASE :: - * Validate BASE table. - * - * FT_VALIDATE_GDEF :: - * Validate GDEF table. - * - * FT_VALIDATE_GPOS :: - * Validate GPOS table. - * - * FT_VALIDATE_GSUB :: - * Validate GSUB table. - * - * FT_VALIDATE_JSTF :: - * Validate JSTF table. - * - * FT_VALIDATE_MATH :: - * Validate MATH table. - * - * FT_VALIDATE_OT :: - * Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). - * - */ + /********************************************************************** + * + * @enum: + * FT_VALIDATE_OTXXX + * + * @description: + * A list of bit-field constants used with @FT_OpenType_Validate to + * indicate which OpenType tables should be validated. + * + * @values: + * FT_VALIDATE_BASE :: + * Validate BASE table. + * + * FT_VALIDATE_GDEF :: + * Validate GDEF table. + * + * FT_VALIDATE_GPOS :: + * Validate GPOS table. + * + * FT_VALIDATE_GSUB :: + * Validate GSUB table. + * + * FT_VALIDATE_JSTF :: + * Validate JSTF table. + * + * FT_VALIDATE_MATH :: + * Validate MATH table. + * + * FT_VALIDATE_OT :: + * Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH). + * + */ #define FT_VALIDATE_BASE 0x0100 #define FT_VALIDATE_GDEF 0x0200 #define FT_VALIDATE_GPOS 0x0400 @@ -105,61 +106,60 @@ FT_BEGIN_HEADER #define FT_VALIDATE_JSTF 0x1000 #define FT_VALIDATE_MATH 0x2000 -#define FT_VALIDATE_OT ( FT_VALIDATE_BASE | \ - FT_VALIDATE_GDEF | \ - FT_VALIDATE_GPOS | \ - FT_VALIDATE_GSUB | \ - FT_VALIDATE_JSTF | \ - FT_VALIDATE_MATH ) +#define FT_VALIDATE_OT FT_VALIDATE_BASE | \ + FT_VALIDATE_GDEF | \ + FT_VALIDATE_GPOS | \ + FT_VALIDATE_GSUB | \ + FT_VALIDATE_JSTF | \ + FT_VALIDATE_MATH - - /************************************************************************** - * - * @function: - * FT_OpenType_Validate - * - * @description: - * Validate various OpenType tables to assure that all offsets and - * indices are valid. The idea is that a higher-level library that - * actually does the text layout can access those tables without error - * checking (which can be quite time consuming). - * - * @input: - * face :: - * A handle to the input face. - * - * validation_flags :: - * A bit field that specifies the tables to be validated. See - * @FT_VALIDATE_OTXXX for possible values. - * - * @output: - * BASE_table :: - * A pointer to the BASE table. - * - * GDEF_table :: - * A pointer to the GDEF table. - * - * GPOS_table :: - * A pointer to the GPOS table. - * - * GSUB_table :: - * A pointer to the GSUB table. - * - * JSTF_table :: - * A pointer to the JSTF table. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function only works with OpenType fonts, returning an error - * otherwise. - * - * After use, the application should deallocate the five tables with - * @FT_OpenType_Free. A `NULL` value indicates that the table either - * doesn't exist in the font, or the application hasn't asked for - * validation. - */ + /********************************************************************** + * + * @function: + * FT_OpenType_Validate + * + * @description: + * Validate various OpenType tables to assure that all offsets and + * indices are valid. The idea is that a higher-level library that + * actually does the text layout can access those tables without + * error checking (which can be quite time consuming). + * + * @input: + * face :: + * A handle to the input face. + * + * validation_flags :: + * A bit field that specifies the tables to be validated. See + * @FT_VALIDATE_OTXXX for possible values. + * + * @output: + * BASE_table :: + * A pointer to the BASE table. + * + * GDEF_table :: + * A pointer to the GDEF table. + * + * GPOS_table :: + * A pointer to the GPOS table. + * + * GSUB_table :: + * A pointer to the GSUB table. + * + * JSTF_table :: + * A pointer to the JSTF table. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function only works with OpenType fonts, returning an error + * otherwise. + * + * After use, the application should deallocate the five tables with + * @FT_OpenType_Free. A NULL value indicates that the table either + * doesn't exist in the font, or the application hasn't asked for + * validation. + */ FT_EXPORT( FT_Error ) FT_OpenType_Validate( FT_Face face, FT_UInt validation_flags, @@ -169,38 +169,36 @@ FT_BEGIN_HEADER FT_Bytes *GSUB_table, FT_Bytes *JSTF_table ); - - /************************************************************************** - * - * @function: - * FT_OpenType_Free - * - * @description: - * Free the buffer allocated by OpenType validator. - * - * @input: - * face :: - * A handle to the input face. - * - * table :: - * The pointer to the buffer that is allocated by - * @FT_OpenType_Validate. - * - * @note: - * This function must be used to free the buffer allocated by - * @FT_OpenType_Validate only. - */ + /********************************************************************** + * + * @function: + * FT_OpenType_Free + * + * @description: + * Free the buffer allocated by OpenType validator. + * + * @input: + * face :: + * A handle to the input face. + * + * table :: + * The pointer to the buffer that is allocated by + * @FT_OpenType_Validate. + * + * @note: + * This function must be used to free the buffer allocated by + * @FT_OpenType_Validate only. + */ FT_EXPORT( void ) FT_OpenType_Free( FT_Face face, FT_Bytes table ); - /* */ FT_END_HEADER -#endif /* FTOTVAL_H_ */ +#endif /* __FTOTVAL_H__ */ /* END */ diff --git a/win64/include/freetype/ftoutln.h b/win64/include/freetype/ftoutln.h index 84e9b144..d3b8fbd2 100644 --- a/win64/include/freetype/ftoutln.h +++ b/win64/include/freetype/ftoutln.h @@ -1,27 +1,28 @@ -/**************************************************************************** - * - * ftoutln.h - * - * Support for the FT_Outline type used to store glyph shapes of - * most scalable font formats (specification). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftoutln.h */ +/* */ +/* Support for the FT_Outline type used to store glyph shapes of */ +/* most scalable font formats (specification). */ +/* */ +/* Copyright 1996-2003, 2005-2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTOUTLN_H_ -#define FTOUTLN_H_ +#ifndef __FTOUTLN_H__ +#define __FTOUTLN_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -33,131 +34,123 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * outline_processing - * - * @title: - * Outline Processing - * - * @abstract: - * Functions to create, transform, and render vectorial glyph images. - * - * @description: - * This section contains routines used to create and destroy scalable - * glyph images known as 'outlines'. These can also be measured, - * transformed, and converted into bitmaps and pixmaps. - * - * @order: - * FT_Outline - * FT_Outline_New - * FT_Outline_Done - * FT_Outline_Copy - * FT_Outline_Translate - * FT_Outline_Transform - * FT_Outline_Embolden - * FT_Outline_EmboldenXY - * FT_Outline_Reverse - * FT_Outline_Check - * - * FT_Outline_Get_CBox - * FT_Outline_Get_BBox - * - * FT_Outline_Get_Bitmap - * FT_Outline_Render - * FT_Outline_Decompose - * FT_Outline_Funcs - * FT_Outline_MoveToFunc - * FT_Outline_LineToFunc - * FT_Outline_ConicToFunc - * FT_Outline_CubicToFunc - * - * FT_Orientation - * FT_Outline_Get_Orientation - * - * FT_OUTLINE_XXX - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* outline_processing */ + /* */ + /* <Title> */ + /* Outline Processing */ + /* */ + /* <Abstract> */ + /* Functions to create, transform, and render vectorial glyph images. */ + /* */ + /* <Description> */ + /* This section contains routines used to create and destroy scalable */ + /* glyph images known as `outlines'. These can also be measured, */ + /* transformed, and converted into bitmaps and pixmaps. */ + /* */ + /* <Order> */ + /* FT_Outline */ + /* FT_Outline_New */ + /* FT_Outline_Done */ + /* FT_Outline_Copy */ + /* FT_Outline_Translate */ + /* FT_Outline_Transform */ + /* FT_Outline_Embolden */ + /* FT_Outline_EmboldenXY */ + /* FT_Outline_Reverse */ + /* FT_Outline_Check */ + /* */ + /* FT_Outline_Get_CBox */ + /* FT_Outline_Get_BBox */ + /* */ + /* FT_Outline_Get_Bitmap */ + /* FT_Outline_Render */ + /* FT_Outline_Decompose */ + /* FT_Outline_Funcs */ + /* FT_Outline_MoveToFunc */ + /* FT_Outline_LineToFunc */ + /* FT_Outline_ConicToFunc */ + /* FT_Outline_CubicToFunc */ + /* */ + /* FT_Orientation */ + /* FT_Outline_Get_Orientation */ + /* */ + /* FT_OUTLINE_XXX */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @function: - * FT_Outline_Decompose - * - * @description: - * Walk over an outline's structure to decompose it into individual - * segments and Bezier arcs. This function also emits 'move to' - * operations to indicate the start of new contours in the outline. - * - * @input: - * outline :: - * A pointer to the source target. - * - * func_interface :: - * A table of 'emitters', i.e., function pointers called during - * decomposition to indicate path operations. - * - * @inout: - * user :: - * A typeless pointer that is passed to each emitter during the - * decomposition. It can be used to store the state during the - * decomposition. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * A contour that contains a single point only is represented by a 'move - * to' operation followed by 'line to' to the same point. In most cases, - * it is best to filter this out before using the outline for stroking - * purposes (otherwise it would result in a visible dot when round caps - * are used). - * - * 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. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Outline_Decompose */ + /* */ + /* <Description> */ + /* Walk over an outline's structure to decompose it into individual */ + /* segments and Bézier arcs. This function also emits `move to' */ + /* operations to indicate the start of new contours in the outline. */ + /* */ + /* <Input> */ + /* outline :: A pointer to the source target. */ + /* */ + /* func_interface :: A table of `emitters', i.e., function pointers */ + /* called during decomposition to indicate path */ + /* operations. */ + /* */ + /* <InOut> */ + /* user :: A typeless pointer that is passed to each */ + /* emitter during the decomposition. It can be */ + /* used to store the state during the */ + /* decomposition. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* A contour that contains a single point only is represented by a */ + /* `move to' operation followed by `line to' to the same point. In */ + /* most cases, it is best to filter this out before using the */ + /* outline for stroking purposes (otherwise it would result in a */ + /* visible dot when round caps are used). */ + /* */ FT_EXPORT( FT_Error ) FT_Outline_Decompose( FT_Outline* outline, const FT_Outline_Funcs* func_interface, void* user ); - /************************************************************************** - * - * @function: - * FT_Outline_New - * - * @description: - * Create a new outline of a given size. - * - * @input: - * library :: - * A handle to the library object from where the outline is allocated. - * Note however that the new outline will **not** necessarily be - * **freed**, when destroying the library, by @FT_Done_FreeType. - * - * numPoints :: - * The maximum number of points within the outline. Must be smaller - * than or equal to 0xFFFF (65535). - * - * numContours :: - * The maximum number of contours within the outline. This value must - * be in the range 0 to `numPoints`. - * - * @output: - * anoutline :: - * A handle to the new outline. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The reason why this function takes a `library` parameter is simply to - * use the library's memory allocator. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Outline_New */ + /* */ + /* <Description> */ + /* Create a new outline of a given size. */ + /* */ + /* <Input> */ + /* library :: A handle to the library object from where the */ + /* outline is allocated. Note however that the new */ + /* outline will *not* necessarily be *freed*, when */ + /* destroying the library, by @FT_Done_FreeType. */ + /* */ + /* numPoints :: The maximum number of points within the outline. */ + /* Must be smaller than or equal to 0xFFFF (65535). */ + /* */ + /* numContours :: The maximum number of contours within the outline. */ + /* This value must be in the range 0 to `numPoints'. */ + /* */ + /* <Output> */ + /* anoutline :: A handle to the new outline. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* The reason why this function takes a `library' parameter is simply */ + /* to use the library's memory allocator. */ + /* */ FT_EXPORT( FT_Error ) FT_Outline_New( FT_Library library, FT_UInt numPoints, @@ -165,372 +158,368 @@ FT_BEGIN_HEADER FT_Outline *anoutline ); - /************************************************************************** - * - * @function: - * FT_Outline_Done - * - * @description: - * Destroy an outline created with @FT_Outline_New. - * - * @input: - * library :: - * A handle of the library object used to allocate the outline. - * - * outline :: - * A pointer to the outline object to be discarded. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If the outline's 'owner' field is not set, only the outline descriptor - * will be released. - */ + FT_EXPORT( FT_Error ) + FT_Outline_New_Internal( FT_Memory memory, + FT_UInt numPoints, + FT_Int numContours, + FT_Outline *anoutline ); + + + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Outline_Done */ + /* */ + /* <Description> */ + /* Destroy an outline created with @FT_Outline_New. */ + /* */ + /* <Input> */ + /* library :: A handle of the library object used to allocate the */ + /* outline. */ + /* */ + /* outline :: A pointer to the outline object to be discarded. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* If the outline's `owner' field is not set, only the outline */ + /* descriptor will be released. */ + /* */ + /* The reason why this function takes an `library' parameter is */ + /* simply to use ft_mem_free(). */ + /* */ FT_EXPORT( FT_Error ) FT_Outline_Done( FT_Library library, FT_Outline* outline ); - /************************************************************************** - * - * @function: - * FT_Outline_Check - * - * @description: - * Check the contents of an outline descriptor. - * - * @input: - * outline :: - * A handle to a source outline. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * An empty outline, or an outline with a single point only is also - * valid. - */ + FT_EXPORT( FT_Error ) + FT_Outline_Done_Internal( FT_Memory memory, + FT_Outline* outline ); + + + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Outline_Check */ + /* */ + /* <Description> */ + /* Check the contents of an outline descriptor. */ + /* */ + /* <Input> */ + /* outline :: A handle to a source outline. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_Outline_Check( FT_Outline* outline ); - /************************************************************************** - * - * @function: - * FT_Outline_Get_CBox - * - * @description: - * Return an outline's 'control box'. The control box encloses all the - * outline's points, including Bezier control points. Though it - * coincides with the exact bounding box for most glyphs, it can be - * slightly larger in some situations (like when rotating an outline that - * contains Bezier outside arcs). - * - * Computing the control box is very fast, while getting the bounding box - * can take much more time as it needs to walk over all segments and arcs - * in the outline. To get the latter, you can use the 'ftbbox' - * component, which is dedicated to this single task. - * - * @input: - * outline :: - * A pointer to the source outline descriptor. - * - * @output: - * acbox :: - * The outline's control box. - * - * @note: - * See @FT_Glyph_Get_CBox for a discussion of tricky fonts. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Outline_Get_CBox */ + /* */ + /* <Description> */ + /* Return an outline's `control box'. The control box encloses all */ + /* the outline's points, including Bézier control points. Though it */ + /* coincides with the exact bounding box for most glyphs, it can be */ + /* slightly larger in some situations (like when rotating an outline */ + /* that contains Bézier outside arcs). */ + /* */ + /* Computing the control box is very fast, while getting the bounding */ + /* box can take much more time as it needs to walk over all segments */ + /* and arcs in the outline. To get the latter, you can use the */ + /* `ftbbox' component, which is dedicated to this single task. */ + /* */ + /* <Input> */ + /* outline :: A pointer to the source outline descriptor. */ + /* */ + /* <Output> */ + /* acbox :: The outline's control box. */ + /* */ + /* <Note> */ + /* See @FT_Glyph_Get_CBox for a discussion of tricky fonts. */ + /* */ FT_EXPORT( void ) FT_Outline_Get_CBox( const FT_Outline* outline, FT_BBox *acbox ); - /************************************************************************** - * - * @function: - * FT_Outline_Translate - * - * @description: - * Apply a simple translation to the points of an outline. - * - * @inout: - * outline :: - * A pointer to the target outline descriptor. - * - * @input: - * xOffset :: - * The horizontal offset. - * - * yOffset :: - * The vertical offset. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Outline_Translate */ + /* */ + /* <Description> */ + /* Apply a simple translation to the points of an outline. */ + /* */ + /* <InOut> */ + /* outline :: A pointer to the target outline descriptor. */ + /* */ + /* <Input> */ + /* xOffset :: The horizontal offset. */ + /* */ + /* yOffset :: The vertical offset. */ + /* */ FT_EXPORT( void ) FT_Outline_Translate( const FT_Outline* outline, FT_Pos xOffset, FT_Pos yOffset ); - /************************************************************************** - * - * @function: - * FT_Outline_Copy - * - * @description: - * Copy an outline into another one. Both objects must have the same - * sizes (number of points & number of contours) when this function is - * called. - * - * @input: - * source :: - * A handle to the source outline. - * - * @output: - * target :: - * A handle to the target outline. - * - * @return: - * FreeType error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Outline_Copy */ + /* */ + /* <Description> */ + /* Copy an outline into another one. Both objects must have the */ + /* same sizes (number of points & number of contours) when this */ + /* function is called. */ + /* */ + /* <Input> */ + /* source :: A handle to the source outline. */ + /* */ + /* <Output> */ + /* target :: A handle to the target outline. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_Outline_Copy( const FT_Outline* source, FT_Outline *target ); - /************************************************************************** - * - * @function: - * FT_Outline_Transform - * - * @description: - * Apply a simple 2x2 matrix to all of an outline's points. Useful for - * applying rotations, slanting, flipping, etc. - * - * @inout: - * outline :: - * A pointer to the target outline descriptor. - * - * @input: - * matrix :: - * A pointer to the transformation matrix. - * - * @note: - * You can use @FT_Outline_Translate if you need to translate the - * outline's points. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Outline_Transform */ + /* */ + /* <Description> */ + /* Apply a simple 2x2 matrix to all of an outline's points. Useful */ + /* for applying rotations, slanting, flipping, etc. */ + /* */ + /* <InOut> */ + /* outline :: A pointer to the target outline descriptor. */ + /* */ + /* <Input> */ + /* matrix :: A pointer to the transformation matrix. */ + /* */ + /* <Note> */ + /* You can use @FT_Outline_Translate if you need to translate the */ + /* outline's points. */ + /* */ FT_EXPORT( void ) FT_Outline_Transform( const FT_Outline* outline, const FT_Matrix* matrix ); - /************************************************************************** - * - * @function: - * FT_Outline_Embolden - * - * @description: - * Embolden an outline. The new outline will be at most 4~times - * `strength` pixels wider and higher. You may think of the left and - * bottom borders as unchanged. - * - * Negative `strength` values to reduce the outline thickness are - * possible also. - * - * @inout: - * outline :: - * A handle to the target outline. - * - * @input: - * strength :: - * How strong the glyph is emboldened. Expressed in 26.6 pixel format. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The used algorithm to increase or decrease the thickness of the glyph - * doesn't change the number of points; this means that certain - * situations like acute angles or intersections are sometimes handled - * incorrectly. - * - * If you need 'better' metrics values you should call - * @FT_Outline_Get_CBox or @FT_Outline_Get_BBox. - * - * To get meaningful results, font scaling values must be set with - * functions like @FT_Set_Char_Size before calling FT_Render_Glyph. - * - * @example: - * ``` - * FT_Load_Glyph( face, index, FT_LOAD_DEFAULT ); - * - * if ( face->glyph->format == FT_GLYPH_FORMAT_OUTLINE ) - * FT_Outline_Embolden( &face->glyph->outline, strength ); - * ``` - * - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Outline_Embolden */ + /* */ + /* <Description> */ + /* Embolden an outline. The new outline will be at most 4~times */ + /* `strength' pixels wider and higher. You may think of the left and */ + /* bottom borders as unchanged. */ + /* */ + /* Negative `strength' values to reduce the outline thickness are */ + /* possible also. */ + /* */ + /* <InOut> */ + /* outline :: A handle to the target outline. */ + /* */ + /* <Input> */ + /* strength :: How strong the glyph is emboldened. Expressed in */ + /* 26.6 pixel format. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* The used algorithm to increase or decrease the thickness of the */ + /* glyph doesn't change the number of points; this means that certain */ + /* situations like acute angles or intersections are sometimes */ + /* handled incorrectly. */ + /* */ + /* If you need `better' metrics values you should call */ + /* @FT_Outline_Get_CBox or @FT_Outline_Get_BBox. */ + /* */ + /* Example call: */ + /* */ + /* { */ + /* FT_Load_Glyph( face, index, FT_LOAD_DEFAULT ); */ + /* if ( face->slot->format == FT_GLYPH_FORMAT_OUTLINE ) */ + /* FT_Outline_Embolden( &face->slot->outline, strength ); */ + /* } */ + /* */ + /* To get meaningful results, font scaling values must be set with */ + /* functions like @FT_Set_Char_Size before calling FT_Render_Glyph. */ + /* */ FT_EXPORT( FT_Error ) FT_Outline_Embolden( FT_Outline* outline, FT_Pos strength ); - /************************************************************************** - * - * @function: - * FT_Outline_EmboldenXY - * - * @description: - * Embolden an outline. The new outline will be `xstrength` pixels wider - * and `ystrength` pixels higher. Otherwise, it is similar to - * @FT_Outline_Embolden, which uses the same strength in both directions. - * - * @since: - * 2.4.10 - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Outline_EmboldenXY */ + /* */ + /* <Description> */ + /* Embolden an outline. The new outline will be `xstrength' pixels */ + /* wider and `ystrength' pixels higher. Otherwise, it is similar to */ + /* @FT_Outline_Embolden, which uses the same strength in both */ + /* directions. */ + /* */ FT_EXPORT( FT_Error ) FT_Outline_EmboldenXY( FT_Outline* outline, FT_Pos xstrength, FT_Pos ystrength ); - /************************************************************************** - * - * @function: - * FT_Outline_Reverse - * - * @description: - * Reverse the drawing direction of an outline. This is used to ensure - * consistent fill conventions for mirrored glyphs. - * - * @inout: - * outline :: - * A pointer to the target outline descriptor. - * - * @note: - * This function toggles the bit flag @FT_OUTLINE_REVERSE_FILL in the - * outline's `flags` field. - * - * It shouldn't be used by a normal client application, unless it knows - * what it is doing. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Outline_Reverse */ + /* */ + /* <Description> */ + /* Reverse the drawing direction of an outline. This is used to */ + /* ensure consistent fill conventions for mirrored glyphs. */ + /* */ + /* <InOut> */ + /* outline :: A pointer to the target outline descriptor. */ + /* */ + /* <Note> */ + /* This function toggles the bit flag @FT_OUTLINE_REVERSE_FILL in */ + /* the outline's `flags' field. */ + /* */ + /* It shouldn't be used by a normal client application, unless it */ + /* knows what it is doing. */ + /* */ FT_EXPORT( void ) FT_Outline_Reverse( FT_Outline* outline ); - /************************************************************************** - * - * @function: - * FT_Outline_Get_Bitmap - * - * @description: - * Render an outline within a bitmap. The outline's image is simply - * OR-ed to the target bitmap. - * - * @input: - * library :: - * A handle to a FreeType library object. - * - * outline :: - * A pointer to the source outline descriptor. - * - * @inout: - * abitmap :: - * A pointer to the target bitmap descriptor. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function does **not create** the bitmap, it only renders an - * outline image within the one you pass to it! Consequently, the - * various fields in `abitmap` should be set accordingly. - * - * It will use the raster corresponding to the default glyph format. - * - * The value of the `num_grays` field in `abitmap` is ignored. If you - * select the gray-level rasterizer, and you want less than 256 gray - * levels, you have to use @FT_Outline_Render directly. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Outline_Get_Bitmap */ + /* */ + /* <Description> */ + /* Render an outline within a bitmap. The outline's image is simply */ + /* OR-ed to the target bitmap. */ + /* */ + /* <Input> */ + /* library :: A handle to a FreeType library object. */ + /* */ + /* outline :: A pointer to the source outline descriptor. */ + /* */ + /* <InOut> */ + /* abitmap :: A pointer to the target bitmap descriptor. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* This function does NOT CREATE the bitmap, it only renders an */ + /* outline image within the one you pass to it! Consequently, the */ + /* various fields in `abitmap' should be set accordingly. */ + /* */ + /* It will use the raster corresponding to the default glyph format. */ + /* */ + /* The value of the `num_grays' field in `abitmap' is ignored. If */ + /* you select the gray-level rasterizer, and you want less than 256 */ + /* gray levels, you have to use @FT_Outline_Render directly. */ + /* */ FT_EXPORT( FT_Error ) FT_Outline_Get_Bitmap( FT_Library library, FT_Outline* outline, const FT_Bitmap *abitmap ); - /************************************************************************** - * - * @function: - * FT_Outline_Render - * - * @description: - * Render an outline within a bitmap using the current scan-convert. - * - * @input: - * library :: - * A handle to a FreeType library object. - * - * outline :: - * A pointer to the source outline descriptor. - * - * @inout: - * params :: - * A pointer to an @FT_Raster_Params structure used to describe the - * rendering operation. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This advanced function uses @FT_Raster_Params as an argument. - * The field `params.source` will be set to `outline` before the scan - * converter is called, which means that the value you give to it is - * actually ignored. Either `params.target` must point to preallocated - * bitmap, or @FT_RASTER_FLAG_DIRECT must be set in `params.flags` - * allowing FreeType rasterizer to be used for direct composition, - * translucency, etc. See @FT_Raster_Params for more details. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Outline_Render */ + /* */ + /* <Description> */ + /* Render an outline within a bitmap using the current scan-convert. */ + /* This function uses an @FT_Raster_Params structure as an argument, */ + /* allowing advanced features like direct composition, translucency, */ + /* etc. */ + /* */ + /* <Input> */ + /* library :: A handle to a FreeType library object. */ + /* */ + /* outline :: A pointer to the source outline descriptor. */ + /* */ + /* <InOut> */ + /* params :: A pointer to an @FT_Raster_Params structure used to */ + /* describe the rendering operation. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* You should know what you are doing and how @FT_Raster_Params works */ + /* to use this function. */ + /* */ + /* The field `params.source' will be set to `outline' before the scan */ + /* converter is called, which means that the value you give to it is */ + /* actually ignored. */ + /* */ + /* The gray-level rasterizer always uses 256 gray levels. If you */ + /* want less gray levels, you have to provide your own span callback. */ + /* See the @FT_RASTER_FLAG_DIRECT value of the `flags' field in the */ + /* @FT_Raster_Params structure for more details. */ + /* */ FT_EXPORT( FT_Error ) FT_Outline_Render( FT_Library library, FT_Outline* outline, FT_Raster_Params* params ); - /************************************************************************** - * - * @enum: - * FT_Orientation - * - * @description: - * A list of values used to describe an outline's contour orientation. - * - * The TrueType and PostScript specifications use different conventions - * to determine whether outline contours should be filled or unfilled. - * - * @values: - * FT_ORIENTATION_TRUETYPE :: - * According to the TrueType specification, clockwise contours must be - * filled, and counter-clockwise ones must be unfilled. - * - * FT_ORIENTATION_POSTSCRIPT :: - * According to the PostScript specification, counter-clockwise - * contours must be filled, and clockwise ones must be unfilled. - * - * FT_ORIENTATION_FILL_RIGHT :: - * This is identical to @FT_ORIENTATION_TRUETYPE, but is used to - * remember that in TrueType, everything that is to the right of the - * drawing direction of a contour must be filled. - * - * FT_ORIENTATION_FILL_LEFT :: - * This is identical to @FT_ORIENTATION_POSTSCRIPT, but is used to - * remember that in PostScript, everything that is to the left of the - * drawing direction of a contour must be filled. - * - * FT_ORIENTATION_NONE :: - * The orientation cannot be determined. That is, different parts of - * the glyph have different orientation. - * - */ + /************************************************************************** + * + * @enum: + * FT_Orientation + * + * @description: + * A list of values used to describe an outline's contour orientation. + * + * The TrueType and PostScript specifications use different conventions + * to determine whether outline contours should be filled or unfilled. + * + * @values: + * FT_ORIENTATION_TRUETYPE :: + * According to the TrueType specification, clockwise contours must + * be filled, and counter-clockwise ones must be unfilled. + * + * FT_ORIENTATION_POSTSCRIPT :: + * According to the PostScript specification, counter-clockwise contours + * must be filled, and clockwise ones must be unfilled. + * + * FT_ORIENTATION_FILL_RIGHT :: + * This is identical to @FT_ORIENTATION_TRUETYPE, but is used to + * remember that in TrueType, everything that is to the right of + * the drawing direction of a contour must be filled. + * + * FT_ORIENTATION_FILL_LEFT :: + * This is identical to @FT_ORIENTATION_POSTSCRIPT, but is used to + * remember that in PostScript, everything that is to the left of + * the drawing direction of a contour must be filled. + * + * FT_ORIENTATION_NONE :: + * The orientation cannot be determined. That is, different parts of + * the glyph have different orientation. + * + */ typedef enum FT_Orientation_ { FT_ORIENTATION_TRUETYPE = 0, @@ -542,40 +531,39 @@ FT_BEGIN_HEADER } FT_Orientation; - /************************************************************************** - * - * @function: - * FT_Outline_Get_Orientation - * - * @description: - * This function analyzes a glyph outline and tries to compute its fill - * orientation (see @FT_Orientation). This is done by integrating the - * total area covered by the outline. The positive integral corresponds - * to the clockwise orientation and @FT_ORIENTATION_POSTSCRIPT is - * returned. The negative integral corresponds to the counter-clockwise - * orientation and @FT_ORIENTATION_TRUETYPE is returned. - * - * Note that this will return @FT_ORIENTATION_TRUETYPE for empty - * outlines. - * - * @input: - * outline :: - * A handle to the source outline. - * - * @return: - * The orientation. - * - */ + /************************************************************************** + * + * @function: + * FT_Outline_Get_Orientation + * + * @description: + * This function analyzes a glyph outline and tries to compute its + * fill orientation (see @FT_Orientation). This is done by integrating + * the total area covered by the outline. The positive integral + * corresponds to the clockwise orientation and @FT_ORIENTATION_POSTSCRIPT + * is returned. The negative integral corresponds to the counter-clockwise + * orientation and @FT_ORIENTATION_TRUETYPE is returned. + * + * Note that this will return @FT_ORIENTATION_TRUETYPE for empty + * outlines. + * + * @input: + * outline :: + * A handle to the source outline. + * + * @return: + * The orientation. + * + */ FT_EXPORT( FT_Orientation ) FT_Outline_Get_Orientation( FT_Outline* outline ); - /* */ FT_END_HEADER -#endif /* FTOUTLN_H_ */ +#endif /* __FTOUTLN_H__ */ /* END */ diff --git a/win64/include/freetype/ftparams.h b/win64/include/freetype/ftparams.h deleted file mode 100644 index 55ea2a38..00000000 --- a/win64/include/freetype/ftparams.h +++ /dev/null @@ -1,203 +0,0 @@ -/**************************************************************************** - * - * ftparams.h - * - * FreeType API for possible FT_Parameter tags (specification only). - * - * Copyright (C) 2017-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.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 FTPARAMS_H_ -#define FTPARAMS_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: - * parameter_tags - * - * @title: - * Parameter Tags - * - * @abstract: - * Macros for driver property and font loading parameter tags. - * - * @description: - * This section contains macros for the @FT_Parameter structure that are - * used with various functions to activate some special functionality or - * different behaviour of various components of FreeType. - * - */ - - - /************************************************************************** - * - * @enum: - * FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY - * - * @description: - * A tag for @FT_Parameter to make @FT_Open_Face ignore typographic - * family names in the 'name' table (introduced in OpenType version 1.4). - * Use this for backward compatibility with legacy systems that have a - * four-faces-per-family restriction. - * - * @since: - * 2.8 - * - */ -#define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY \ - FT_MAKE_TAG( 'i', 'g', 'p', 'f' ) - - - /* this constant is deprecated */ -#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY \ - FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY - - - /************************************************************************** - * - * @enum: - * FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY - * - * @description: - * A tag for @FT_Parameter to make @FT_Open_Face ignore typographic - * subfamily names in the 'name' table (introduced in OpenType version - * 1.4). Use this for backward compatibility with legacy systems that - * have a four-faces-per-family restriction. - * - * @since: - * 2.8 - * - */ -#define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY \ - FT_MAKE_TAG( 'i', 'g', 'p', 's' ) - - - /* this constant is deprecated */ -#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY \ - FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY - - - /************************************************************************** - * - * @enum: - * FT_PARAM_TAG_INCREMENTAL - * - * @description: - * 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: - * An @FT_Parameter tag to be used with @FT_Face_Properties. The - * corresponding argument specifies the five LCD filter weights for a - * given face (if using @FT_LOAD_TARGET_LCD, for example), overriding the - * global default values or the values set up with - * @FT_Library_SetLcdFilterWeights. - * - * @since: - * 2.8 - * - */ -#define FT_PARAM_TAG_LCD_FILTER_WEIGHTS \ - FT_MAKE_TAG( 'l', 'c', 'd', 'f' ) - - - /************************************************************************** - * - * @enum: - * FT_PARAM_TAG_RANDOM_SEED - * - * @description: - * An @FT_Parameter tag to be used with @FT_Face_Properties. The - * corresponding 32bit signed integer argument overrides the font - * driver's random seed value with a face-specific one; see @random-seed. - * - * @since: - * 2.8 - * - */ -#define FT_PARAM_TAG_RANDOM_SEED \ - FT_MAKE_TAG( 's', 'e', 'e', 'd' ) - - - /************************************************************************** - * - * @enum: - * FT_PARAM_TAG_STEM_DARKENING - * - * @description: - * An @FT_Parameter tag to be used with @FT_Face_Properties. The - * corresponding Boolean argument specifies whether to apply stem - * darkening, overriding the global default values or the values set up - * with @FT_Property_Set (see @no-stem-darkening). - * - * This is a passive setting that only takes effect if the font driver or - * autohinter honors it, which the CFF, Type~1, and CID drivers always - * do, but the autohinter only in 'light' hinting mode (as of version - * 2.9). - * - * @since: - * 2.8 - * - */ -#define FT_PARAM_TAG_STEM_DARKENING \ - FT_MAKE_TAG( 'd', 'a', 'r', 'k' ) - - - /************************************************************************** - * - * @enum: - * FT_PARAM_TAG_UNPATENTED_HINTING - * - * @description: - * Deprecated, no effect. - * - * Previously: A constant used as the tag of an @FT_Parameter structure - * to indicate that unpatented methods only should be used by the - * TrueType bytecode interpreter for a typeface opened by @FT_Open_Face. - * - */ -#define FT_PARAM_TAG_UNPATENTED_HINTING \ - FT_MAKE_TAG( 'u', 'n', 'p', 'a' ) - - - /* */ - - -FT_END_HEADER - - -#endif /* FTPARAMS_H_ */ - - -/* END */ diff --git a/win64/include/freetype/ftpfr.h b/win64/include/freetype/ftpfr.h index 9a5383f9..7d503539 100644 --- a/win64/include/freetype/ftpfr.h +++ b/win64/include/freetype/ftpfr.h @@ -1,25 +1,26 @@ -/**************************************************************************** - * - * ftpfr.h - * - * FreeType API for accessing PFR-specific data (specification only). - * - * Copyright (C) 2002-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftpfr.h */ +/* */ +/* FreeType API for accessing PFR-specific data (specification only). */ +/* */ +/* Copyright 2002, 2003, 2004, 2006, 2008, 2009 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTPFR_H_ -#define FTPFR_H_ +#ifndef __FTPFR_H__ +#define __FTPFR_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -31,61 +32,60 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * pfr_fonts - * - * @title: - * PFR Fonts - * - * @abstract: - * PFR/TrueDoc-specific API. - * - * @description: - * This section contains the declaration of PFR-specific functions. - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* pfr_fonts */ + /* */ + /* <Title> */ + /* PFR Fonts */ + /* */ + /* <Abstract> */ + /* PFR/TrueDoc specific API. */ + /* */ + /* <Description> */ + /* This section contains the declaration of PFR-specific functions. */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @function: - * FT_Get_PFR_Metrics - * - * @description: - * Return the outline and metrics resolutions of a given PFR face. - * - * @input: - * face :: - * Handle to the input face. It can be a non-PFR face. - * - * @output: - * aoutline_resolution :: - * Outline resolution. This is equivalent to `face->units_per_EM` for - * non-PFR fonts. Optional (parameter can be `NULL`). - * - * ametrics_resolution :: - * Metrics resolution. This is equivalent to `outline_resolution` for - * non-PFR fonts. Optional (parameter can be `NULL`). - * - * ametrics_x_scale :: - * A 16.16 fixed-point number used to scale distance expressed in - * metrics units to device subpixels. This is equivalent to - * `face->size->x_scale`, but for metrics only. Optional (parameter - * can be `NULL`). - * - * ametrics_y_scale :: - * Same as `ametrics_x_scale` but for the vertical direction. - * optional (parameter can be `NULL`). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If the input face is not a PFR, this function will return an error. - * However, in all cases, it will return valid values. - */ + /********************************************************************** + * + * @function: + * FT_Get_PFR_Metrics + * + * @description: + * Return the outline and metrics resolutions of a given PFR face. + * + * @input: + * face :: Handle to the input face. It can be a non-PFR face. + * + * @output: + * aoutline_resolution :: + * Outline resolution. This is equivalent to `face->units_per_EM' + * for non-PFR fonts. Optional (parameter can be NULL). + * + * ametrics_resolution :: + * Metrics resolution. This is equivalent to `outline_resolution' + * for non-PFR fonts. Optional (parameter can be NULL). + * + * ametrics_x_scale :: + * A 16.16 fixed-point number used to scale distance expressed + * in metrics units to device sub-pixels. This is equivalent to + * `face->size->x_scale', but for metrics only. Optional (parameter + * can be NULL). + * + * ametrics_y_scale :: + * Same as `ametrics_x_scale' but for the vertical direction. + * optional (parameter can be NULL). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If the input face is not a PFR, this function will return an error. + * However, in all cases, it will return valid values. + */ FT_EXPORT( FT_Error ) FT_Get_PFR_Metrics( FT_Face face, FT_UInt *aoutline_resolution, @@ -94,41 +94,37 @@ FT_BEGIN_HEADER FT_Fixed *ametrics_y_scale ); - /************************************************************************** - * - * @function: - * FT_Get_PFR_Kerning - * - * @description: - * Return the kerning pair corresponding to two glyphs in a PFR face. - * The distance is expressed in metrics units, unlike the result of - * @FT_Get_Kerning. - * - * @input: - * face :: - * A handle to the input face. - * - * left :: - * Index of the left glyph. - * - * right :: - * Index of the right glyph. - * - * @output: - * avector :: - * A kerning vector. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * This function always return distances in original PFR metrics units. - * This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED mode, - * which always returns distances converted to outline units. - * - * You can use the value of the `x_scale` and `y_scale` parameters - * returned by @FT_Get_PFR_Metrics to scale these to device subpixels. - */ + /********************************************************************** + * + * @function: + * FT_Get_PFR_Kerning + * + * @description: + * Return the kerning pair corresponding to two glyphs in a PFR face. + * The distance is expressed in metrics units, unlike the result of + * @FT_Get_Kerning. + * + * @input: + * face :: A handle to the input face. + * + * left :: Index of the left glyph. + * + * right :: Index of the right glyph. + * + * @output: + * avector :: A kerning vector. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * This function always return distances in original PFR metrics + * units. This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED + * mode, which always returns distances converted to outline units. + * + * You can use the value of the `x_scale' and `y_scale' parameters + * returned by @FT_Get_PFR_Metrics to scale these to device sub-pixels. + */ FT_EXPORT( FT_Error ) FT_Get_PFR_Kerning( FT_Face face, FT_UInt left, @@ -136,33 +132,30 @@ FT_BEGIN_HEADER FT_Vector *avector ); - /************************************************************************** - * - * @function: - * FT_Get_PFR_Advance - * - * @description: - * Return a given glyph advance, expressed in original metrics units, - * from a PFR font. - * - * @input: - * face :: - * A handle to the input face. - * - * gindex :: - * The glyph index. - * - * @output: - * aadvance :: - * The glyph advance in metrics units. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You can use the `x_scale` or `y_scale` results of @FT_Get_PFR_Metrics - * to convert the advance to device subpixels (i.e., 1/64th of pixels). - */ + /********************************************************************** + * + * @function: + * FT_Get_PFR_Advance + * + * @description: + * Return a given glyph advance, expressed in original metrics units, + * from a PFR font. + * + * @input: + * face :: A handle to the input face. + * + * gindex :: The glyph index. + * + * @output: + * aadvance :: The glyph advance in metrics units. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * You can use the `x_scale' or `y_scale' results of @FT_Get_PFR_Metrics + * to convert the advance to device sub-pixels (i.e., 1/64th of pixels). + */ FT_EXPORT( FT_Error ) FT_Get_PFR_Advance( FT_Face face, FT_UInt gindex, @@ -173,7 +166,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTPFR_H_ */ +#endif /* __FTPFR_H__ */ /* END */ diff --git a/win64/include/freetype/ftrender.h b/win64/include/freetype/ftrender.h index 8007951b..e8d36363 100644 --- a/win64/include/freetype/ftrender.h +++ b/win64/include/freetype/ftrender.h @@ -1,38 +1,39 @@ -/**************************************************************************** - * - * ftrender.h - * - * FreeType renderer modules public interface (specification). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftrender.h */ +/* */ +/* FreeType renderer modules public interface (specification). */ +/* */ +/* Copyright 1996-2001, 2005, 2006, 2010 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTRENDER_H_ -#define FTRENDER_H_ +#ifndef __FTRENDER_H__ +#define __FTRENDER_H__ -#include <freetype/ftmodapi.h> -#include <freetype/ftglyph.h> +#include <ft2build.h> +#include FT_MODULE_H +#include FT_GLYPH_H FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * module_management - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* module_management */ + /* */ + /*************************************************************************/ /* create a new glyph object */ @@ -74,7 +75,6 @@ FT_BEGIN_HEADER { FT_Long glyph_size; FT_Glyph_Format glyph_format; - FT_Glyph_InitFunc glyph_init; FT_Glyph_DoneFunc glyph_done; FT_Glyph_CopyFunc glyph_copy; @@ -87,7 +87,7 @@ FT_BEGIN_HEADER typedef FT_Error (*FT_Renderer_RenderFunc)( FT_Renderer renderer, FT_GlyphSlot slot, - FT_Render_Mode mode, + FT_UInt mode, const FT_Vector* origin ); typedef FT_Error @@ -115,38 +115,32 @@ FT_BEGIN_HEADER #define FTRenderer_setMode FT_Renderer_SetModeFunc - /************************************************************************** - * - * @struct: - * FT_Renderer_Class - * - * @description: - * The renderer module class descriptor. - * - * @fields: - * root :: - * The root @FT_Module_Class fields. - * - * glyph_format :: - * The glyph image format this renderer handles. - * - * render_glyph :: - * A method used to render the image that is in a given glyph slot into - * a bitmap. - * - * transform_glyph :: - * A method used to transform the image that is in a given glyph slot. - * - * get_glyph_cbox :: - * A method used to access the glyph's cbox. - * - * set_mode :: - * A method used to pass additional parameters. - * - * raster_class :: - * For @FT_GLYPH_FORMAT_OUTLINE renderers only. This is a pointer to - * its raster's class. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Renderer_Class */ + /* */ + /* <Description> */ + /* The renderer module class descriptor. */ + /* */ + /* <Fields> */ + /* root :: The root @FT_Module_Class fields. */ + /* */ + /* glyph_format :: The glyph image format this renderer handles. */ + /* */ + /* render_glyph :: A method used to render the image that is in a */ + /* given glyph slot into a bitmap. */ + /* */ + /* transform_glyph :: A method used to transform the image that is in */ + /* a given glyph slot. */ + /* */ + /* get_glyph_cbox :: A method used to access the glyph's cbox. */ + /* */ + /* set_mode :: A method used to pass additional parameters. */ + /* */ + /* raster_class :: For @FT_GLYPH_FORMAT_OUTLINE renderers only. */ + /* This is a pointer to its raster's class. */ + /* */ typedef struct FT_Renderer_Class_ { FT_Module_Class root; @@ -163,70 +157,69 @@ FT_BEGIN_HEADER } FT_Renderer_Class; - /************************************************************************** - * - * @function: - * FT_Get_Renderer - * - * @description: - * Retrieve the current renderer for a given glyph format. - * - * @input: - * library :: - * A handle to the library object. - * - * format :: - * The glyph format. - * - * @return: - * A renderer handle. 0~if none found. - * - * @note: - * An error will be returned if a module already exists by that name, or - * if the module requires a version of FreeType that is too great. - * - * To add a new renderer, simply use @FT_Add_Module. To retrieve a - * renderer by its name, use @FT_Get_Module. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Renderer */ + /* */ + /* <Description> */ + /* Retrieve the current renderer for a given glyph format. */ + /* */ + /* <Input> */ + /* library :: A handle to the library object. */ + /* */ + /* format :: The glyph format. */ + /* */ + /* <Return> */ + /* A renderer handle. 0~if none found. */ + /* */ + /* <Note> */ + /* An error will be returned if a module already exists by that name, */ + /* or if the module requires a version of FreeType that is too great. */ + /* */ + /* To add a new renderer, simply use @FT_Add_Module. To retrieve a */ + /* renderer by its name, use @FT_Get_Module. */ + /* */ FT_EXPORT( FT_Renderer ) FT_Get_Renderer( FT_Library library, FT_Glyph_Format format ); - /************************************************************************** - * - * @function: - * FT_Set_Renderer - * - * @description: - * Set the current renderer to use, and set additional mode. - * - * @inout: - * library :: - * A handle to the library object. - * - * @input: - * renderer :: - * A handle to the renderer object. - * - * num_params :: - * The number of additional parameters. - * - * parameters :: - * Additional parameters. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * In case of success, the renderer will be used to convert glyph images - * in the renderer's known format into bitmaps. - * - * This doesn't change the current renderer for other formats. - * - * Currently, no FreeType renderer module uses `parameters`; you should - * thus always pass `NULL` as the value. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Set_Renderer */ + /* */ + /* <Description> */ + /* Set the current renderer to use, and set additional mode. */ + /* */ + /* <InOut> */ + /* library :: A handle to the library object. */ + /* */ + /* <Input> */ + /* renderer :: A handle to the renderer object. */ + /* */ + /* num_params :: The number of additional parameters. */ + /* */ + /* parameters :: Additional parameters. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* In case of success, the renderer will be used to convert glyph */ + /* images in the renderer's known format into bitmaps. */ + /* */ + /* This doesn't change the current renderer for other formats. */ + /* */ + /* Currently, only the B/W renderer, if compiled with */ + /* FT_RASTER_OPTION_ANTI_ALIASING (providing a 5-levels */ + /* anti-aliasing mode; this option must be set directly in */ + /* `ftraster.c' and is undefined by default) accepts a single tag */ + /* `pal5' to set its gray palette as a character string with */ + /* 5~elements. Consequently, the third and fourth argument are zero */ + /* normally. */ + /* */ FT_EXPORT( FT_Error ) FT_Set_Renderer( FT_Library library, FT_Renderer renderer, @@ -238,7 +231,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTRENDER_H_ */ +#endif /* __FTRENDER_H__ */ /* END */ diff --git a/win64/include/freetype/ftsizes.h b/win64/include/freetype/ftsizes.h index a8682a30..41670457 100644 --- a/win64/include/freetype/ftsizes.h +++ b/win64/include/freetype/ftsizes.h @@ -1,35 +1,36 @@ -/**************************************************************************** - * - * ftsizes.h - * - * FreeType size objects management (specification). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftsizes.h */ +/* */ +/* FreeType size objects management (specification). */ +/* */ +/* Copyright 1996-2001, 2003, 2004, 2006, 2009, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ - /************************************************************************** - * - * Typical application would normally not need to use these functions. - * However, they have been placed in a public API for the rare cases where - * they are needed. - * - */ + /*************************************************************************/ + /* */ + /* Typical application would normally not need to use these functions. */ + /* However, they have been placed in a public API for the rare cases */ + /* where they are needed. */ + /* */ + /*************************************************************************/ -#ifndef FTSIZES_H_ -#define FTSIZES_H_ +#ifndef __FTSIZES_H__ +#define __FTSIZES_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -41,110 +42,109 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * sizes_management - * - * @title: - * Size Management - * - * @abstract: - * Managing multiple sizes per face. - * - * @description: - * When creating a new face object (e.g., with @FT_New_Face), an @FT_Size - * object is automatically created and used to store all pixel-size - * dependent information, available in the `face->size` field. - * - * It is however possible to create more sizes for a given face, mostly - * in order to manage several character pixel sizes of the same font - * family and style. See @FT_New_Size and @FT_Done_Size. - * - * Note that @FT_Set_Pixel_Sizes and @FT_Set_Char_Size only modify the - * contents of the current 'active' size; you thus need to use - * @FT_Activate_Size to change it. - * - * 99% of applications won't need the functions provided here, especially - * if they use the caching sub-system, so be cautious when using these. - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* sizes_management */ + /* */ + /* <Title> */ + /* Size Management */ + /* */ + /* <Abstract> */ + /* Managing multiple sizes per face. */ + /* */ + /* <Description> */ + /* When creating a new face object (e.g., with @FT_New_Face), an */ + /* @FT_Size object is automatically created and used to store all */ + /* pixel-size dependent information, available in the `face->size' */ + /* field. */ + /* */ + /* It is however possible to create more sizes for a given face, */ + /* mostly in order to manage several character pixel sizes of the */ + /* same font family and style. See @FT_New_Size and @FT_Done_Size. */ + /* */ + /* Note that @FT_Set_Pixel_Sizes and @FT_Set_Char_Size only */ + /* modify the contents of the current `active' size; you thus need */ + /* to use @FT_Activate_Size to change it. */ + /* */ + /* 99% of applications won't need the functions provided here, */ + /* especially if they use the caching sub-system, so be cautious */ + /* when using these. */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @function: - * FT_New_Size - * - * @description: - * Create a new size object from a given face object. - * - * @input: - * face :: - * A handle to a parent face object. - * - * @output: - * asize :: - * A handle to a new size object. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * You need to call @FT_Activate_Size in order to select the new size for - * upcoming calls to @FT_Set_Pixel_Sizes, @FT_Set_Char_Size, - * @FT_Load_Glyph, @FT_Load_Char, etc. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_New_Size */ + /* */ + /* <Description> */ + /* Create a new size object from a given face object. */ + /* */ + /* <Input> */ + /* face :: A handle to a parent face object. */ + /* */ + /* <Output> */ + /* asize :: A handle to a new size object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* You need to call @FT_Activate_Size in order to select the new size */ + /* for upcoming calls to @FT_Set_Pixel_Sizes, @FT_Set_Char_Size, */ + /* @FT_Load_Glyph, @FT_Load_Char, etc. */ + /* */ FT_EXPORT( FT_Error ) FT_New_Size( FT_Face face, FT_Size* size ); - /************************************************************************** - * - * @function: - * FT_Done_Size - * - * @description: - * Discard a given size object. Note that @FT_Done_Face automatically - * discards all size objects allocated with @FT_New_Size. - * - * @input: - * size :: - * A handle to a target size object. - * - * @return: - * FreeType error code. 0~means success. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Done_Size */ + /* */ + /* <Description> */ + /* Discard a given size object. Note that @FT_Done_Face */ + /* automatically discards all size objects allocated with */ + /* @FT_New_Size. */ + /* */ + /* <Input> */ + /* size :: A handle to a target size object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ FT_EXPORT( FT_Error ) FT_Done_Size( FT_Size size ); - /************************************************************************** - * - * @function: - * FT_Activate_Size - * - * @description: - * Even though it is possible to create several size objects for a given - * face (see @FT_New_Size for details), functions like @FT_Load_Glyph or - * @FT_Load_Char only use the one that has been activated last to - * determine the 'current character pixel size'. - * - * This function can be used to 'activate' a previously created size - * object. - * - * @input: - * size :: - * A handle to a target size object. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If `face` is the size's parent face object, this function changes the - * value of `face->size` to the input size handle. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Activate_Size */ + /* */ + /* <Description> */ + /* Even though it is possible to create several size objects for a */ + /* given face (see @FT_New_Size for details), functions like */ + /* @FT_Load_Glyph or @FT_Load_Char only use the one that has been */ + /* activated last to determine the `current character pixel size'. */ + /* */ + /* This function can be used to `activate' a previously created size */ + /* object. */ + /* */ + /* <Input> */ + /* size :: A handle to a target size object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* If `face' is the size's parent face object, this function changes */ + /* the value of `face->size' to the input size handle. */ + /* */ FT_EXPORT( FT_Error ) FT_Activate_Size( FT_Size size ); @@ -153,7 +153,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTSIZES_H_ */ +#endif /* __FTSIZES_H__ */ /* END */ diff --git a/win64/include/freetype/ftsnames.h b/win64/include/freetype/ftsnames.h index 729e6ab0..88af4403 100644 --- a/win64/include/freetype/ftsnames.h +++ b/win64/include/freetype/ftsnames.h @@ -1,30 +1,30 @@ -/**************************************************************************** - * - * 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-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* 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 1996-2003, 2006, 2009, 2010, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTSNAMES_H_ -#define FTSNAMES_H_ +#ifndef __FT_SFNT_NAMES_H__ +#define __FT_SFNT_NAMES_H__ -#include <freetype/freetype.h> -#include <freetype/ftparams.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -36,74 +36,65 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * sfnt_names - * - * @title: - * SFNT Names - * - * @abstract: - * Access the names embedded in TrueType and OpenType files. - * - * @description: - * The TrueType and OpenType specifications allow the inclusion of a - * special names table ('name') in font files. This table contains - * textual (and internationalized) information regarding the font, like - * family name, copyright, version, etc. - * - * The definitions below are used to access them if available. - * - * Note that this has nothing to do with glyph names! - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* sfnt_names */ + /* */ + /* <Title> */ + /* SFNT Names */ + /* */ + /* <Abstract> */ + /* Access the names embedded in TrueType and OpenType files. */ + /* */ + /* <Description> */ + /* The TrueType and OpenType specifications allow the inclusion of */ + /* a special `names table' in font files. This table contains */ + /* textual (and internationalized) information regarding the font, */ + /* like family name, copyright, version, etc. */ + /* */ + /* The definitions below are used to access them if available. */ + /* */ + /* Note that this has nothing to do with glyph names! */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @struct: - * FT_SfntName - * - * @description: - * A structure used to model an SFNT 'name' table entry. - * - * @fields: - * platform_id :: - * The platform ID for `string`. See @TT_PLATFORM_XXX for possible - * values. - * - * encoding_id :: - * The encoding ID for `string`. See @TT_APPLE_ID_XXX, @TT_MAC_ID_XXX, - * @TT_ISO_ID_XXX, @TT_MS_ID_XXX, and @TT_ADOBE_ID_XXX for possible - * values. - * - * language_id :: - * The language ID for `string`. See @TT_MAC_LANGID_XXX and - * @TT_MS_LANGID_XXX for possible values. - * - * Registered OpenType values for `language_id` are always smaller than - * 0x8000; values equal or larger than 0x8000 usually indicate a - * language tag string (introduced in OpenType version 1.6). Use - * function @FT_Get_Sfnt_LangTag with `language_id` as its argument to - * retrieve the associated language tag. - * - * name_id :: - * An identifier for `string`. See @TT_NAME_ID_XXX for possible - * values. - * - * string :: - * The 'name' string. Note that its format differs depending on the - * (platform,encoding) pair, being either a string of bytes (without a - * terminating `NULL` byte) or containing UTF-16BE entities. - * - * string_len :: - * The length of `string` in bytes. - * - * @note: - * Please refer to the TrueType or OpenType specification for more - * details. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_SfntName */ + /* */ + /* <Description> */ + /* A structure used to model an SFNT `name' table entry. */ + /* */ + /* <Fields> */ + /* platform_id :: The platform ID for `string'. */ + /* */ + /* encoding_id :: The encoding ID for `string'. */ + /* */ + /* language_id :: The language ID for `string'. */ + /* */ + /* name_id :: An identifier for `string'. */ + /* */ + /* string :: The `name' string. Note that its format differs */ + /* depending on the (platform,encoding) pair. It can */ + /* be a Pascal String, a UTF-16 one, etc. */ + /* */ + /* Generally speaking, the string is not */ + /* zero-terminated. Please refer to the TrueType */ + /* specification for details. */ + /* */ + /* string_len :: The length of `string' in bytes. */ + /* */ + /* <Note> */ + /* Possible values for `platform_id', `encoding_id', `language_id', */ + /* and `name_id' are given in the file `ttnameid.h'. For details */ + /* please refer to the TrueType or OpenType specification. */ + /* */ + /* See also @TT_PLATFORM_XXX, @TT_APPLE_ID_XXX, @TT_MAC_ID_XXX, */ + /* @TT_ISO_ID_XXX, and @TT_MS_ID_XXX. */ + /* */ typedef struct FT_SfntName_ { FT_UShort platform_id; @@ -112,161 +103,98 @@ FT_BEGIN_HEADER FT_UShort name_id; FT_Byte* string; /* this string is *not* null-terminated! */ - FT_UInt string_len; /* in bytes */ + FT_UInt string_len; /* in bytes */ } FT_SfntName; - /************************************************************************** - * - * @function: - * FT_Get_Sfnt_Name_Count - * - * @description: - * Retrieve the number of name strings in the SFNT 'name' table. - * - * @input: - * face :: - * A handle to the source face. - * - * @return: - * The number of strings in the 'name' table. - * - * @note: - * This function always returns an error if the config macro - * `TT_CONFIG_OPTION_SFNT_NAMES` is not defined in `ftoption.h`. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Sfnt_Name_Count */ + /* */ + /* <Description> */ + /* Retrieve the number of name strings in the SFNT `name' table. */ + /* */ + /* <Input> */ + /* face :: A handle to the source face. */ + /* */ + /* <Return> */ + /* The number of strings in the `name' table. */ + /* */ FT_EXPORT( FT_UInt ) FT_Get_Sfnt_Name_Count( FT_Face face ); - /************************************************************************** - * - * @function: - * FT_Get_Sfnt_Name - * - * @description: - * Retrieve a string of the SFNT 'name' table for a given index. - * - * @input: - * face :: - * A handle to the source face. - * - * idx :: - * The index of the 'name' string. - * - * @output: - * aname :: - * The indexed @FT_SfntName structure. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The `string` array returned in the `aname` structure is not - * null-terminated. Note that you don't have to deallocate `string` by - * yourself; FreeType takes care of it if you call @FT_Done_Face. - * - * Use @FT_Get_Sfnt_Name_Count to get the total number of available - * 'name' table entries, then do a loop until you get the right platform, - * encoding, and name ID. - * - * 'name' table format~1 entries can use language tags also, see - * @FT_Get_Sfnt_LangTag. - * - * This function always returns an error if the config macro - * `TT_CONFIG_OPTION_SFNT_NAMES` is not defined in `ftoption.h`. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Sfnt_Name */ + /* */ + /* <Description> */ + /* Retrieve a string of the SFNT `name' table for a given index. */ + /* */ + /* <Input> */ + /* face :: A handle to the source face. */ + /* */ + /* idx :: The index of the `name' string. */ + /* */ + /* <Output> */ + /* aname :: The indexed @FT_SfntName structure. */ + /* */ + /* <Return> */ + /* FreeType error code. 0~means success. */ + /* */ + /* <Note> */ + /* The `string' array returned in the `aname' structure is not */ + /* null-terminated. The application should deallocate it if it is no */ + /* longer in use. */ + /* */ + /* Use @FT_Get_Sfnt_Name_Count to get the total number of available */ + /* `name' table entries, then do a loop until you get the right */ + /* platform, encoding, and name ID. */ + /* */ FT_EXPORT( FT_Error ) FT_Get_Sfnt_Name( FT_Face face, FT_UInt idx, FT_SfntName *aname ); - /************************************************************************** + /*************************************************************************** * - * @struct: - * FT_SfntLangTag + * @constant: + * FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY * * @description: - * A structure to model a language tag entry from an SFNT 'name' table. + * A constant used as the tag of @FT_Parameter structures to make + * FT_Open_Face() ignore preferred family subfamily names in `name' + * table since OpenType version 1.4. For backwards compatibility with + * legacy systems that have a 4-face-per-family restriction. * - * @fields: - * string :: - * The language tag string, encoded in UTF-16BE (without trailing - * `NULL` bytes). - * - * string_len :: - * The length of `string` in **bytes**. - * - * @note: - * Please refer to the TrueType or OpenType specification for more - * details. - * - * @since: - * 2.8 */ - typedef struct FT_SfntLangTag_ - { - FT_Byte* string; /* this string is *not* null-terminated! */ - FT_UInt string_len; /* in bytes */ - - } FT_SfntLangTag; +#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY FT_MAKE_TAG( 'i', 'g', 'p', 'f' ) - /************************************************************************** + /*************************************************************************** * - * @function: - * FT_Get_Sfnt_LangTag + * @constant: + * FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY * * @description: - * Retrieve the language tag associated with a language ID of an SFNT - * 'name' table entry. + * A constant used as the tag of @FT_Parameter structures to make + * FT_Open_Face() ignore preferred subfamily names in `name' table since + * OpenType version 1.4. For backwards compatibility with legacy + * systems that have a 4-face-per-family restriction. * - * @input: - * face :: - * A handle to the source face. - * - * langID :: - * The language ID, as returned by @FT_Get_Sfnt_Name. This is always a - * value larger than 0x8000. - * - * @output: - * alangTag :: - * The language tag associated with the 'name' table entry's language - * ID. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The `string` array returned in the `alangTag` structure is not - * null-terminated. Note that you don't have to deallocate `string` by - * yourself; FreeType takes care of it if you call @FT_Done_Face. - * - * Only 'name' table format~1 supports language tags. For format~0 - * tables, this function always returns FT_Err_Invalid_Table. For - * invalid format~1 language ID values, FT_Err_Invalid_Argument is - * returned. - * - * This function always returns an error if the config macro - * `TT_CONFIG_OPTION_SFNT_NAMES` is not defined in `ftoption.h`. - * - * @since: - * 2.8 */ - FT_EXPORT( FT_Error ) - FT_Get_Sfnt_LangTag( FT_Face face, - FT_UInt langID, - FT_SfntLangTag *alangTag ); - +#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY FT_MAKE_TAG( 'i', 'g', 'p', 's' ) /* */ FT_END_HEADER -#endif /* FTSNAMES_H_ */ +#endif /* __FT_SFNT_NAMES_H__ */ /* END */ diff --git a/win64/include/freetype/ftstroke.h b/win64/include/freetype/ftstroke.h index a759c94d..bd311709 100644 --- a/win64/include/freetype/ftstroke.h +++ b/win64/include/freetype/ftstroke.h @@ -1,135 +1,142 @@ -/**************************************************************************** - * - * ftstroke.h - * - * FreeType path stroker (specification). - * - * Copyright (C) 2002-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftstroke.h */ +/* */ +/* FreeType path stroker (specification). */ +/* */ +/* Copyright 2002-2006, 2008, 2009, 2011-2012, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTSTROKE_H_ -#define FTSTROKE_H_ +#ifndef __FT_STROKE_H__ +#define __FT_STROKE_H__ -#include <freetype/ftoutln.h> -#include <freetype/ftglyph.h> +#include <ft2build.h> +#include FT_OUTLINE_H +#include FT_GLYPH_H FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * glyph_stroker - * - * @title: - * Glyph Stroker - * - * @abstract: - * Generating bordered and stroked glyphs. - * - * @description: - * This component generates stroked outlines of a given vectorial glyph. - * It also allows you to retrieve the 'outside' and/or the 'inside' - * borders of the stroke. - * - * This can be useful to generate 'bordered' glyph, i.e., glyphs - * displayed with a colored (and anti-aliased) border around their - * shape. - * - * @order: - * FT_Stroker - * - * FT_Stroker_LineJoin - * FT_Stroker_LineCap - * FT_StrokerBorder - * - * FT_Outline_GetInsideBorder - * FT_Outline_GetOutsideBorder - * - * FT_Glyph_Stroke - * FT_Glyph_StrokeBorder - * - * FT_Stroker_New - * FT_Stroker_Set - * FT_Stroker_Rewind - * FT_Stroker_ParseOutline - * FT_Stroker_Done - * - * FT_Stroker_BeginSubPath - * FT_Stroker_EndSubPath - * - * FT_Stroker_LineTo - * FT_Stroker_ConicTo - * FT_Stroker_CubicTo - * - * FT_Stroker_GetBorderCounts - * FT_Stroker_ExportBorder - * FT_Stroker_GetCounts - * FT_Stroker_Export - * - */ + /************************************************************************ + * + * @section: + * glyph_stroker + * + * @title: + * Glyph Stroker + * + * @abstract: + * Generating bordered and stroked glyphs. + * + * @description: + * This component generates stroked outlines of a given vectorial + * glyph. It also allows you to retrieve the `outside' and/or the + * `inside' borders of the stroke. + * + * This can be useful to generate `bordered' glyph, i.e., glyphs + * displayed with a coloured (and anti-aliased) border around their + * shape. + * + * @order: + * FT_Stroker + * + * FT_Stroker_LineJoin + * FT_Stroker_LineCap + * FT_StrokerBorder + * + * FT_Outline_GetInsideBorder + * FT_Outline_GetOutsideBorder + * + * FT_Glyph_Stroke + * FT_Glyph_StrokeBorder + * + * FT_Stroker_New + * FT_Stroker_Set + * FT_Stroker_Rewind + * FT_Stroker_ParseOutline + * FT_Stroker_Done + * + * FT_Stroker_BeginSubPath + * FT_Stroker_EndSubPath + * + * FT_Stroker_LineTo + * FT_Stroker_ConicTo + * FT_Stroker_CubicTo + * + * FT_Stroker_GetBorderCounts + * FT_Stroker_ExportBorder + * FT_Stroker_GetCounts + * FT_Stroker_Export + * + */ - /************************************************************************** - * - * @type: - * FT_Stroker - * - * @description: - * Opaque handle to a path stroker object. - */ + /************************************************************** + * + * @type: + * FT_Stroker + * + * @description: + * Opaque handle to a path stroker object. + */ typedef struct FT_StrokerRec_* FT_Stroker; - /************************************************************************** + /************************************************************** * * @enum: * FT_Stroker_LineJoin * * @description: - * These values determine how two joining lines are rendered in a - * stroker. + * These values determine how two joining lines are rendered + * in a stroker. * * @values: * FT_STROKER_LINEJOIN_ROUND :: - * Used to render rounded line joins. Circular arcs are used to join - * two lines smoothly. + * Used to render rounded line joins. Circular arcs are used + * to join two lines smoothly. * * FT_STROKER_LINEJOIN_BEVEL :: - * Used to render beveled line joins. The outer corner of the joined - * lines is filled by enclosing the triangular region of the corner - * with a straight line between the outer corners of each stroke. + * Used to render beveled line joins. The outer corner of + * the joined lines is filled by enclosing the triangular + * region of the corner with a straight line between the + * outer corners of each stroke. * * FT_STROKER_LINEJOIN_MITER_FIXED :: - * Used to render mitered line joins, with fixed bevels if the miter - * limit is exceeded. The outer edges of the strokes for the two - * segments are extended until they meet at an angle. A bevel join - * (see above) is used if the segments meet at too sharp an angle and - * the outer edges meet beyond a distance corresponding to the meter - * limit. This prevents long spikes being created. - * `FT_STROKER_LINEJOIN_MITER_FIXED` generates a miter line join as - * used in PostScript and PDF. + * Used to render mitered line joins, with fixed bevels if the + * miter limit is exceeded. The outer edges of the strokes + * for the two segments are extended until they meet at an + * angle. If the segments meet at too sharp an angle (such + * that the miter would extend from the intersection of the + * segments a distance greater than the product of the miter + * limit value and the border radius), then a bevel join (see + * above) is used instead. This prevents long spikes being + * created. FT_STROKER_LINEJOIN_MITER_FIXED generates a miter + * line join as used in PostScript and PDF. * * FT_STROKER_LINEJOIN_MITER_VARIABLE :: * FT_STROKER_LINEJOIN_MITER :: - * Used to render mitered line joins, with variable bevels if the miter - * limit is exceeded. The intersection of the strokes is clipped - * perpendicularly to the bisector, at a distance corresponding to - * the miter limit. This prevents long spikes being created. - * `FT_STROKER_LINEJOIN_MITER_VARIABLE` generates a mitered line join - * as used in XPS. `FT_STROKER_LINEJOIN_MITER` is an alias for - * `FT_STROKER_LINEJOIN_MITER_VARIABLE`, retained for backward - * compatibility. + * Used to render mitered line joins, with variable bevels if + * the miter limit is exceeded. The intersection of the + * strokes is clipped at a line perpendicular to the bisector + * of the angle between the strokes, at the distance from the + * intersection of the segments equal to the product of the + * miter limit value and the border radius. This prevents + * long spikes being created. + * FT_STROKER_LINEJOIN_MITER_VARIABLE generates a mitered line + * join as used in XPS. FT_STROKER_LINEJOIN_MITER is an alias + * for FT_STROKER_LINEJOIN_MITER_VARIABLE, retained for + * backwards compatibility. */ typedef enum FT_Stroker_LineJoin_ { @@ -142,25 +149,27 @@ FT_BEGIN_HEADER } FT_Stroker_LineJoin; - /************************************************************************** + /************************************************************** * * @enum: * FT_Stroker_LineCap * * @description: - * These values determine how the end of opened sub-paths are rendered in - * a stroke. + * These values determine how the end of opened sub-paths are + * rendered in a stroke. * * @values: * FT_STROKER_LINECAP_BUTT :: - * The end of lines is rendered as a full stop on the last point - * itself. + * The end of lines is rendered as a full stop on the last + * point itself. * * FT_STROKER_LINECAP_ROUND :: - * The end of lines is rendered as a half-circle around the last point. + * The end of lines is rendered as a half-circle around the + * last point. * * FT_STROKER_LINECAP_SQUARE :: - * The end of lines is rendered as a square around the last point. + * The end of lines is rendered as a square around the + * last point. */ typedef enum FT_Stroker_LineCap_ { @@ -171,14 +180,14 @@ FT_BEGIN_HEADER } FT_Stroker_LineCap; - /************************************************************************** + /************************************************************** * * @enum: * FT_StrokerBorder * * @description: - * These values are used to select a given stroke border in - * @FT_Stroker_GetBorderCounts and @FT_Stroker_ExportBorder. + * These values are used to select a given stroke border + * in @FT_Stroker_GetBorderCounts and @FT_Stroker_ExportBorder. * * @values: * FT_STROKER_BORDER_LEFT :: @@ -188,9 +197,9 @@ FT_BEGIN_HEADER * Select the right border, relative to the drawing direction. * * @note: - * Applications are generally interested in the 'inside' and 'outside' + * Applications are generally interested in the `inside' and `outside' * borders. However, there is no direct mapping between these and the - * 'left' and 'right' ones, since this really depends on the glyph's + * `left' and `right' ones, since this really depends on the glyph's * drawing orientation, which varies between font formats. * * You can however use @FT_Outline_GetInsideBorder and @@ -204,14 +213,14 @@ FT_BEGIN_HEADER } FT_StrokerBorder; - /************************************************************************** + /************************************************************** * * @function: * FT_Outline_GetInsideBorder * * @description: - * Retrieve the @FT_StrokerBorder value corresponding to the 'inside' - * borders of a given outline. + * Retrieve the @FT_StrokerBorder value corresponding to the + * `inside' borders of a given outline. * * @input: * outline :: @@ -225,14 +234,14 @@ FT_BEGIN_HEADER FT_Outline_GetInsideBorder( FT_Outline* outline ); - /************************************************************************** + /************************************************************** * * @function: * FT_Outline_GetOutsideBorder * * @description: - * Retrieve the @FT_StrokerBorder value corresponding to the 'outside' - * borders of a given outline. + * Retrieve the @FT_StrokerBorder value corresponding to the + * `outside' borders of a given outline. * * @input: * outline :: @@ -246,7 +255,7 @@ FT_BEGIN_HEADER FT_Outline_GetOutsideBorder( FT_Outline* outline ); - /************************************************************************** + /************************************************************** * * @function: * FT_Stroker_New @@ -260,7 +269,7 @@ FT_BEGIN_HEADER * * @output: * astroker :: - * A new stroker object handle. `NULL` in case of error. + * A new stroker object handle. NULL in case of error. * * @return: * FreeType error code. 0~means success. @@ -270,7 +279,7 @@ FT_BEGIN_HEADER FT_Stroker *astroker ); - /************************************************************************** + /************************************************************** * * @function: * FT_Stroker_Set @@ -292,18 +301,14 @@ FT_BEGIN_HEADER * The line join style. * * miter_limit :: - * The maximum reciprocal sine of half-angle at the miter join, - * expressed as 16.16 fixed point value. + * The miter limit for the FT_STROKER_LINEJOIN_MITER_FIXED and + * FT_STROKER_LINEJOIN_MITER_VARIABLE line join styles, + * expressed as 16.16 fixed-point value. * * @note: - * The `radius` is expressed in the same units as the outline + * The radius is expressed in the same units as the outline * coordinates. * - * The `miter_limit` multiplied by the `radius` gives the maximum size - * of a miter spike, at which it is clipped for - * @FT_STROKER_LINEJOIN_MITER_VARIABLE or replaced with a bevel join for - * @FT_STROKER_LINEJOIN_MITER_FIXED. - * * This function calls @FT_Stroker_Rewind automatically. */ FT_EXPORT( void ) @@ -314,15 +319,16 @@ FT_BEGIN_HEADER FT_Fixed miter_limit ); - /************************************************************************** + /************************************************************** * * @function: * FT_Stroker_Rewind * * @description: - * Reset a stroker object without changing its attributes. You should - * call this function before beginning a new series of calls to - * @FT_Stroker_BeginSubPath or @FT_Stroker_EndSubPath. + * Reset a stroker object without changing its attributes. + * You should call this function before beginning a new + * series of calls to @FT_Stroker_BeginSubPath or + * @FT_Stroker_EndSubPath. * * @input: * stroker :: @@ -332,15 +338,15 @@ FT_BEGIN_HEADER FT_Stroker_Rewind( FT_Stroker stroker ); - /************************************************************************** + /************************************************************** * * @function: * FT_Stroker_ParseOutline * * @description: - * A convenience function used to parse a whole outline with the stroker. - * The resulting outline(s) can be retrieved later by functions like - * @FT_Stroker_GetCounts and @FT_Stroker_Export. + * A convenience function used to parse a whole outline with + * the stroker. The resulting outline(s) can be retrieved + * later by functions like @FT_Stroker_GetCounts and @FT_Stroker_Export. * * @input: * stroker :: @@ -350,18 +356,18 @@ FT_BEGIN_HEADER * The source outline. * * opened :: - * A boolean. If~1, the outline is treated as an open path instead of - * a closed one. + * A boolean. If~1, the outline is treated as an open path instead + * of a closed one. * * @return: * FreeType error code. 0~means success. * * @note: - * If `opened` is~0 (the default), the outline is treated as a closed - * path, and the stroker generates two distinct 'border' outlines. + * If `opened' is~0 (the default), the outline is treated as a closed + * path, and the stroker generates two distinct `border' outlines. * - * If `opened` is~1, the outline is processed as an open path, and the - * stroker generates a single 'stroke' outline. + * If `opened' is~1, the outline is processed as an open path, and the + * stroker generates a single `stroke' outline. * * This function calls @FT_Stroker_Rewind automatically. */ @@ -371,7 +377,7 @@ FT_BEGIN_HEADER FT_Bool opened ); - /************************************************************************** + /************************************************************** * * @function: * FT_Stroker_BeginSubPath @@ -393,8 +399,8 @@ FT_BEGIN_HEADER * FreeType error code. 0~means success. * * @note: - * This function is useful when you need to stroke a path that is not - * stored as an @FT_Outline object. + * This function is useful when you need to stroke a path that is + * not stored as an @FT_Outline object. */ FT_EXPORT( FT_Error ) FT_Stroker_BeginSubPath( FT_Stroker stroker, @@ -402,7 +408,7 @@ FT_BEGIN_HEADER FT_Bool open ); - /************************************************************************** + /************************************************************** * * @function: * FT_Stroker_EndSubPath @@ -418,22 +424,22 @@ FT_BEGIN_HEADER * FreeType error code. 0~means success. * * @note: - * You should call this function after @FT_Stroker_BeginSubPath. If the - * subpath was not 'opened', this function 'draws' a single line segment - * to the start position when needed. + * You should call this function after @FT_Stroker_BeginSubPath. + * If the subpath was not `opened', this function `draws' a + * single line segment to the start position when needed. */ FT_EXPORT( FT_Error ) FT_Stroker_EndSubPath( FT_Stroker stroker ); - /************************************************************************** + /************************************************************** * * @function: * FT_Stroker_LineTo * * @description: - * 'Draw' a single line segment in the stroker's current sub-path, from - * the last position. + * `Draw' a single line segment in the stroker's current sub-path, + * from the last position. * * @input: * stroker :: @@ -454,13 +460,13 @@ FT_BEGIN_HEADER FT_Vector* to ); - /************************************************************************** + /************************************************************** * * @function: * FT_Stroker_ConicTo * * @description: - * 'Draw' a single quadratic Bezier in the stroker's current sub-path, + * `Draw' a single quadratic Bézier in the stroker's current sub-path, * from the last position. * * @input: @@ -468,7 +474,7 @@ FT_BEGIN_HEADER * The target stroker handle. * * control :: - * A pointer to a Bezier control point. + * A pointer to a Bézier control point. * * to :: * A pointer to the destination point. @@ -486,24 +492,24 @@ FT_BEGIN_HEADER FT_Vector* to ); - /************************************************************************** + /************************************************************** * * @function: * FT_Stroker_CubicTo * * @description: - * 'Draw' a single cubic Bezier in the stroker's current sub-path, from - * the last position. + * `Draw' a single cubic Bézier in the stroker's current sub-path, + * from the last position. * * @input: * stroker :: * The target stroker handle. * * control1 :: - * A pointer to the first Bezier control point. + * A pointer to the first Bézier control point. * * control2 :: - * A pointer to second Bezier control point. + * A pointer to second Bézier control point. * * to :: * A pointer to the destination point. @@ -522,16 +528,16 @@ FT_BEGIN_HEADER FT_Vector* to ); - /************************************************************************** + /************************************************************** * * @function: * FT_Stroker_GetBorderCounts * * @description: - * Call this function once you have finished parsing your paths with the - * stroker. It returns the number of points and contours necessary to - * export one of the 'border' or 'stroke' outlines generated by the - * stroker. + * Call this function once you have finished parsing your paths + * with the stroker. It returns the number of points and + * contours necessary to export one of the `border' or `stroke' + * outlines generated by the stroker. * * @input: * stroker :: @@ -551,15 +557,15 @@ FT_BEGIN_HEADER * FreeType error code. 0~means success. * * @note: - * When an outline, or a sub-path, is 'closed', the stroker generates two - * independent 'border' outlines, named 'left' and 'right'. + * When an outline, or a sub-path, is `closed', the stroker generates + * two independent `border' outlines, named `left' and `right'. * - * When the outline, or a sub-path, is 'opened', the stroker merges the - * 'border' outlines with caps. The 'left' border receives all points, - * while the 'right' border becomes empty. + * When the outline, or a sub-path, is `opened', the stroker merges + * the `border' outlines with caps. The `left' border receives all + * points, while the `right' border becomes empty. * - * Use the function @FT_Stroker_GetCounts instead if you want to retrieve - * the counts associated to both borders. + * Use the function @FT_Stroker_GetCounts instead if you want to + * retrieve the counts associated to both borders. */ FT_EXPORT( FT_Error ) FT_Stroker_GetBorderCounts( FT_Stroker stroker, @@ -568,17 +574,19 @@ FT_BEGIN_HEADER FT_UInt *anum_contours ); - /************************************************************************** + /************************************************************** * * @function: * FT_Stroker_ExportBorder * * @description: - * Call this function after @FT_Stroker_GetBorderCounts to export the - * corresponding border to your own @FT_Outline structure. + * Call this function after @FT_Stroker_GetBorderCounts to + * export the corresponding border to your own @FT_Outline + * structure. * - * Note that this function appends the border points and contours to your - * outline, but does not try to resize its arrays. + * Note that this function appends the border points and + * contours to your outline, but does not try to resize its + * arrays. * * @input: * stroker :: @@ -591,19 +599,19 @@ FT_BEGIN_HEADER * The target outline handle. * * @note: - * Always call this function after @FT_Stroker_GetBorderCounts to get - * sure that there is enough room in your @FT_Outline object to receive - * all new data. + * Always call this function after @FT_Stroker_GetBorderCounts to + * get sure that there is enough room in your @FT_Outline object to + * receive all new data. * - * When an outline, or a sub-path, is 'closed', the stroker generates two - * independent 'border' outlines, named 'left' and 'right'. + * When an outline, or a sub-path, is `closed', the stroker generates + * two independent `border' outlines, named `left' and `right'. * - * When the outline, or a sub-path, is 'opened', the stroker merges the - * 'border' outlines with caps. The 'left' border receives all points, - * while the 'right' border becomes empty. + * When the outline, or a sub-path, is `opened', the stroker merges + * the `border' outlines with caps. The `left' border receives all + * points, while the `right' border becomes empty. * - * Use the function @FT_Stroker_Export instead if you want to retrieve - * all borders at once. + * Use the function @FT_Stroker_Export instead if you want to + * retrieve all borders at once. */ FT_EXPORT( void ) FT_Stroker_ExportBorder( FT_Stroker stroker, @@ -611,15 +619,16 @@ FT_BEGIN_HEADER FT_Outline* outline ); - /************************************************************************** + /************************************************************** * * @function: * FT_Stroker_GetCounts * * @description: - * Call this function once you have finished parsing your paths with the - * stroker. It returns the number of points and contours necessary to - * export all points/borders from the stroked outline/path. + * Call this function once you have finished parsing your paths + * with the stroker. It returns the number of points and + * contours necessary to export all points/borders from the stroked + * outline/path. * * @input: * stroker :: @@ -641,17 +650,18 @@ FT_BEGIN_HEADER FT_UInt *anum_contours ); - /************************************************************************** + /************************************************************** * * @function: * FT_Stroker_Export * * @description: - * Call this function after @FT_Stroker_GetBorderCounts to export all - * borders to your own @FT_Outline structure. + * Call this function after @FT_Stroker_GetBorderCounts to + * export all borders to your own @FT_Outline structure. * - * Note that this function appends the border points and contours to your - * outline, but does not try to resize its arrays. + * Note that this function appends the border points and + * contours to your outline, but does not try to resize its + * arrays. * * @input: * stroker :: @@ -665,7 +675,7 @@ FT_BEGIN_HEADER FT_Outline* outline ); - /************************************************************************** + /************************************************************** * * @function: * FT_Stroker_Done @@ -675,13 +685,13 @@ FT_BEGIN_HEADER * * @input: * stroker :: - * A stroker handle. Can be `NULL`. + * A stroker handle. Can be NULL. */ FT_EXPORT( void ) FT_Stroker_Done( FT_Stroker stroker ); - /************************************************************************** + /************************************************************** * * @function: * FT_Glyph_Stroke @@ -698,7 +708,8 @@ FT_BEGIN_HEADER * A stroker handle. * * destroy :: - * A Boolean. If~1, the source glyph object is destroyed on success. + * A Boolean. If~1, the source glyph object is destroyed + * on success. * * @return: * FreeType error code. 0~means success. @@ -708,8 +719,8 @@ FT_BEGIN_HEADER * * Adding stroke may yield a significantly wider and taller glyph * depending on how large of a radius was used to stroke the glyph. You - * may need to manually adjust horizontal and vertical advance amounts to - * account for this added size. + * may need to manually adjust horizontal and vertical advance amounts + * to account for this added size. */ FT_EXPORT( FT_Error ) FT_Glyph_Stroke( FT_Glyph *pglyph, @@ -717,14 +728,14 @@ FT_BEGIN_HEADER FT_Bool destroy ); - /************************************************************************** + /************************************************************** * * @function: * FT_Glyph_StrokeBorder * * @description: - * Stroke a given outline glyph object with a given stroker, but only - * return either its inside or outside border. + * Stroke a given outline glyph object with a given stroker, but + * only return either its inside or outside border. * * @inout: * pglyph :: @@ -735,11 +746,12 @@ FT_BEGIN_HEADER * A stroker handle. * * inside :: - * A Boolean. If~1, return the inside border, otherwise the outside - * border. + * A Boolean. If~1, return the inside border, otherwise + * the outside border. * * destroy :: - * A Boolean. If~1, the source glyph object is destroyed on success. + * A Boolean. If~1, the source glyph object is destroyed + * on success. * * @return: * FreeType error code. 0~means success. @@ -749,8 +761,8 @@ FT_BEGIN_HEADER * * Adding stroke may yield a significantly wider and taller glyph * depending on how large of a radius was used to stroke the glyph. You - * may need to manually adjust horizontal and vertical advance amounts to - * account for this added size. + * may need to manually adjust horizontal and vertical advance amounts + * to account for this added size. */ FT_EXPORT( FT_Error ) FT_Glyph_StrokeBorder( FT_Glyph *pglyph, @@ -762,7 +774,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTSTROKE_H_ */ +#endif /* __FT_STROKE_H__ */ /* END */ diff --git a/win64/include/freetype/ftsynth.h b/win64/include/freetype/ftsynth.h index bdb4c575..d0ea7308 100644 --- a/win64/include/freetype/ftsynth.h +++ b/win64/include/freetype/ftsynth.h @@ -1,20 +1,20 @@ -/**************************************************************************** - * - * ftsynth.h - * - * FreeType synthesizing code for emboldening and slanting - * (specification). - * - * Copyright (C) 2000-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftsynth.h */ +/* */ +/* FreeType synthesizing code for emboldening and slanting */ +/* (specification). */ +/* */ +/* Copyright 2000-2001, 2003, 2006, 2008, 2012, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ /*************************************************************************/ @@ -35,17 +35,18 @@ /* Main reason for not lifting the functions in this module to a */ - /* 'standard' API is that the used parameters for emboldening and */ + /* `standard' API is that the used parameters for emboldening and */ /* slanting are not configurable. Consider the functions as a */ /* code resource that should be copied into the application and */ /* adapted to the particular needs. */ -#ifndef FTSYNTH_H_ -#define FTSYNTH_H_ +#ifndef __FTSYNTH_H__ +#define __FTSYNTH_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -56,15 +57,13 @@ FT_BEGIN_HEADER - /* Embolden a glyph by a 'reasonable' value (which is highly a matter of */ + /* Embolden a glyph by a `reasonable' value (which is highly a matter of */ /* taste). This function is actually a convenience function, providing */ /* a wrapper for @FT_Outline_Embolden and @FT_Bitmap_Embolden. */ /* */ /* For emboldened outlines the height, width, and advance metrics are */ - /* increased by the strength of the emboldening -- this even affects */ - /* mono-width fonts! */ - /* */ - /* You can also call @FT_Outline_Get_CBox to get precise values. */ + /* increased by the strength of the emboldening. You can also call */ + /* @FT_Outline_Get_CBox to get precise values. */ FT_EXPORT( void ) FT_GlyphSlot_Embolden( FT_GlyphSlot slot ); @@ -77,7 +76,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTSYNTH_H_ */ +#endif /* __FTSYNTH_H__ */ /* END */ diff --git a/win64/include/freetype/ftsystem.h b/win64/include/freetype/ftsystem.h index 22aead71..7436ed26 100644 --- a/win64/include/freetype/ftsystem.h +++ b/win64/include/freetype/ftsystem.h @@ -1,57 +1,59 @@ -/**************************************************************************** - * - * ftsystem.h - * - * FreeType low-level system interface definition (specification). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftsystem.h */ +/* */ +/* FreeType low-level system interface definition (specification). */ +/* */ +/* Copyright 1996-2001, 2002, 2005, 2010, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTSYSTEM_H_ -#define FTSYSTEM_H_ +#ifndef __FTSYSTEM_H__ +#define __FTSYSTEM_H__ +#include <ft2build.h> FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * system_interface - * - * @title: - * System Interface - * - * @abstract: - * How FreeType manages memory and i/o. - * - * @description: - * This section contains various definitions related to memory management - * and i/o access. You need to understand this information if you want to - * use a custom memory manager or you own i/o streams. - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* system_interface */ + /* */ + /* <Title> */ + /* System Interface */ + /* */ + /* <Abstract> */ + /* How FreeType manages memory and i/o. */ + /* */ + /* <Description> */ + /* This section contains various definitions related to memory */ + /* management and i/o access. You need to understand this */ + /* information if you want to use a custom memory manager or you own */ + /* i/o streams. */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * M E M O R Y M A N A G E M E N T - * - */ + /*************************************************************************/ + /* */ + /* M E M O R Y M A N A G E M E N T */ + /* */ + /*************************************************************************/ - /************************************************************************** + /************************************************************************* * * @type: * FT_Memory @@ -64,13 +66,13 @@ FT_BEGIN_HEADER typedef struct FT_MemoryRec_* FT_Memory; - /************************************************************************** + /************************************************************************* * * @functype: * FT_Alloc_Func * * @description: - * A function used to allocate `size` bytes from `memory`. + * A function used to allocate `size' bytes from `memory'. * * @input: * memory :: @@ -88,7 +90,7 @@ FT_BEGIN_HEADER long size ); - /************************************************************************** + /************************************************************************* * * @functype: * FT_Free_Func @@ -109,7 +111,7 @@ FT_BEGIN_HEADER void* block ); - /************************************************************************** + /************************************************************************* * * @functype: * FT_Realloc_Func @@ -144,7 +146,7 @@ FT_BEGIN_HEADER void* block ); - /************************************************************************** + /************************************************************************* * * @struct: * FT_MemoryRec @@ -175,14 +177,14 @@ FT_BEGIN_HEADER }; - /************************************************************************** - * - * I / O M A N A G E M E N T - * - */ + /*************************************************************************/ + /* */ + /* I / O M A N A G E M E N T */ + /* */ + /*************************************************************************/ - /************************************************************************** + /************************************************************************* * * @type: * FT_Stream @@ -191,21 +193,21 @@ FT_BEGIN_HEADER * A handle to an input stream. * * @also: - * See @FT_StreamRec for the publicly accessible fields of a given stream - * object. + * See @FT_StreamRec for the publicly accessible fields of a given + * stream object. * */ typedef struct FT_StreamRec_* FT_Stream; - /************************************************************************** + /************************************************************************* * * @struct: * FT_StreamDesc * * @description: * A union type used to store either a long or a pointer. This is used - * to store a file descriptor or a `FILE*` in an input stream. + * to store a file descriptor or a `FILE*' in an input stream. * */ typedef union FT_StreamDesc_ @@ -216,7 +218,7 @@ FT_BEGIN_HEADER } FT_StreamDesc; - /************************************************************************** + /************************************************************************* * * @functype: * FT_Stream_IoFunc @@ -241,8 +243,9 @@ FT_BEGIN_HEADER * The number of bytes effectively read by the stream. * * @note: - * This function might be called to perform a seek or skip operation with - * a `count` of~0. A non-zero return value then indicates an error. + * This function might be called to perform a seek or skip operation + * with a `count' of~0. A non-zero return value then indicates an + * error. * */ typedef unsigned long @@ -252,7 +255,7 @@ FT_BEGIN_HEADER unsigned long count ); - /************************************************************************** + /************************************************************************* * * @functype: * FT_Stream_CloseFunc @@ -262,14 +265,14 @@ FT_BEGIN_HEADER * * @input: * stream :: - * A handle to the target stream. + * A handle to the target stream. * */ typedef void (*FT_Stream_CloseFunc)( FT_Stream stream ); - /************************************************************************** + /************************************************************************* * * @struct: * FT_StreamRec @@ -280,14 +283,14 @@ FT_BEGIN_HEADER * @input: * base :: * For memory-based streams, this is the address of the first stream - * byte in memory. This field should always be set to `NULL` for + * byte in memory. This field should always be set to NULL for * disk-based streams. * * size :: * The stream size in bytes. * * In case of compressed streams where the size is unknown before - * actually doing the decompression, the value is set to 0x7FFFFFFF. + * actually doing the decompression, the value is set to 0x7FFFFFFF. * (Note that this size value can occur for normal streams also; it is * thus just a hint.) * @@ -296,7 +299,7 @@ FT_BEGIN_HEADER * * descriptor :: * This field is a union that can hold an integer or a pointer. It is - * used by stream implementations to store file descriptors or `FILE*` + * used by stream implementations to store file descriptors or `FILE*' * pointers. * * pathname :: @@ -311,13 +314,13 @@ FT_BEGIN_HEADER * The stream's close function. * * memory :: - * The memory manager to use to preload frames. This is set internally - * by FreeType and shouldn't be touched by stream implementations. + * The memory manager to use to preload frames. This is set + * internally by FreeType and shouldn't be touched by stream + * implementations. * * cursor :: * This field is set and used internally by FreeType when parsing - * frames. In particular, the `FT_GET_XXX` macros use this instead of - * the `pos` field. + * frames. * * limit :: * This field is set and used internally by FreeType when parsing @@ -346,7 +349,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTSYSTEM_H_ */ +#endif /* __FTSYSTEM_H__ */ /* END */ diff --git a/win64/include/freetype/fttrigon.h b/win64/include/freetype/fttrigon.h index 2ce6b324..9c7b5432 100644 --- a/win64/include/freetype/fttrigon.h +++ b/win64/include/freetype/fttrigon.h @@ -1,25 +1,25 @@ -/**************************************************************************** - * - * fttrigon.h - * - * FreeType trigonometric functions (specification). - * - * Copyright (C) 2001-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* fttrigon.h */ +/* */ +/* FreeType trigonometric functions (specification). */ +/* */ +/* Copyright 2001, 2003, 2005, 2007, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTTRIGON_H_ -#define FTTRIGON_H_ +#ifndef __FTTRIGON_H__ +#define __FTTRIGON_H__ -#include <freetype/freetype.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -31,15 +31,15 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * computations - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* computations */ + /* */ + /*************************************************************************/ - /************************************************************************** + /************************************************************************* * * @type: * FT_Angle @@ -52,7 +52,7 @@ FT_BEGIN_HEADER typedef FT_Fixed FT_Angle; - /************************************************************************** + /************************************************************************* * * @macro: * FT_ANGLE_PI @@ -64,7 +64,7 @@ FT_BEGIN_HEADER #define FT_ANGLE_PI ( 180L << 16 ) - /************************************************************************** + /************************************************************************* * * @macro: * FT_ANGLE_2PI @@ -76,7 +76,7 @@ FT_BEGIN_HEADER #define FT_ANGLE_2PI ( FT_ANGLE_PI * 2 ) - /************************************************************************** + /************************************************************************* * * @macro: * FT_ANGLE_PI2 @@ -88,7 +88,7 @@ FT_BEGIN_HEADER #define FT_ANGLE_PI2 ( FT_ANGLE_PI / 2 ) - /************************************************************************** + /************************************************************************* * * @macro: * FT_ANGLE_PI4 @@ -100,7 +100,7 @@ FT_BEGIN_HEADER #define FT_ANGLE_PI4 ( FT_ANGLE_PI / 4 ) - /************************************************************************** + /************************************************************************* * * @function: * FT_Sin @@ -124,7 +124,7 @@ FT_BEGIN_HEADER FT_Sin( FT_Angle angle ); - /************************************************************************** + /************************************************************************* * * @function: * FT_Cos @@ -148,7 +148,7 @@ FT_BEGIN_HEADER FT_Cos( FT_Angle angle ); - /************************************************************************** + /************************************************************************* * * @function: * FT_Tan @@ -168,14 +168,14 @@ FT_BEGIN_HEADER FT_Tan( FT_Angle angle ); - /************************************************************************** + /************************************************************************* * * @function: * FT_Atan2 * * @description: - * Return the arc-tangent corresponding to a given vector (x,y) in the 2d - * plane. + * Return the arc-tangent corresponding to a given vector (x,y) in + * the 2d plane. * * @input: * x :: @@ -193,7 +193,7 @@ FT_BEGIN_HEADER FT_Fixed y ); - /************************************************************************** + /************************************************************************* * * @function: * FT_Angle_Diff @@ -210,7 +210,7 @@ FT_BEGIN_HEADER * Second angle. * * @return: - * Constrained value of `angle2-angle1`. + * Constrained value of `value2-value1'. * */ FT_EXPORT( FT_Angle ) @@ -218,15 +218,15 @@ FT_BEGIN_HEADER FT_Angle angle2 ); - /************************************************************************** + /************************************************************************* * * @function: * FT_Vector_Unit * * @description: * Return the unit vector corresponding to a given angle. After the - * call, the value of `vec.x` will be `cos(angle)`, and the value of - * `vec.y` will be `sin(angle)`. + * call, the value of `vec.x' will be `sin(angle)', and the value of + * `vec.y' will be `cos(angle)'. * * This function is useful to retrieve both the sinus and cosinus of a * given angle quickly. @@ -245,7 +245,7 @@ FT_BEGIN_HEADER FT_Angle angle ); - /************************************************************************** + /************************************************************************* * * @function: * FT_Vector_Rotate @@ -267,7 +267,7 @@ FT_BEGIN_HEADER FT_Angle angle ); - /************************************************************************** + /************************************************************************* * * @function: * FT_Vector_Length @@ -288,7 +288,7 @@ FT_BEGIN_HEADER FT_Vector_Length( FT_Vector* vec ); - /************************************************************************** + /************************************************************************* * * @function: * FT_Vector_Polarize @@ -314,7 +314,7 @@ FT_BEGIN_HEADER FT_Angle *angle ); - /************************************************************************** + /************************************************************************* * * @function: * FT_Vector_From_Polar @@ -344,7 +344,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTTRIGON_H_ */ +#endif /* __FTTRIGON_H__ */ /* END */ diff --git a/win64/include/freetype/ftttdrv.h b/win64/include/freetype/ftttdrv.h new file mode 100644 index 00000000..35884139 --- /dev/null +++ b/win64/include/freetype/ftttdrv.h @@ -0,0 +1,170 @@ +/***************************************************************************/ +/* */ +/* ftttdrv.h */ +/* */ +/* FreeType API for controlling the TrueType driver */ +/* (specification only). */ +/* */ +/* Copyright 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __FTTTDRV_H__ +#define __FTTTDRV_H__ + +#include <ft2build.h> +#include FT_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: + * tt_driver + * + * @title: + * The TrueType driver + * + * @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 following lists the available properties + * together with the necessary macros and structures. + * + * The TrueType driver's module name is `truetype'. + * + */ + + + /************************************************************************** + * + * @property: + * interpreter-version + * + * @description: + * Currently, two versions are available, representing the bytecode + * interpreter with and without subpixel hinting support, + * respectively. The default is subpixel support if + * TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined, and no subpixel + * support otherwise (since it isn't available then). + * + * If subpixel hinting is on, many TrueType bytecode instructions + * behave differently compared to B/W or grayscale rendering. The + * main idea is to render at a much increased horizontal resolution, + * then sampling down the created output to subpixel precision. + * However, many older fonts are not suited to this and must be + * specially taken care of by applying (hardcoded) font-specific + * tweaks. + * + * Details on subpixel hinting and some of the necessary tweaks can be + * found in Greg Hitchcock's whitepaper at + * `http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'. + * + * The following example code demonstrates how to activate subpixel + * hinting (omitting the error handling). + * + * { + * FT_Library library; + * FT_Face face; + * FT_UInt interpreter_version = TT_INTERPRETER_VERSION_38; + * + * + * FT_Init_FreeType( &library ); + * + * FT_Property_Set( library, "truetype", + * "interpreter-version", + * &interpreter_version ); + * } + * + * @note: + * This property can be used with @FT_Property_Get also. + * + */ + + + /************************************************************************** + * + * @enum: + * TT_INTERPRETER_VERSION_XXX + * + * @description: + * A list of constants used for the @interpreter-version property to + * select the hinting engine for Truetype fonts. + * + * The numeric value in the constant names represents the version + * number as returned by the `GETINFO' bytecode instruction. + * + * @values: + * TT_INTERPRETER_VERSION_35 :: + * Version~35 corresponds to MS rasterizer v.1.7 as used e.g. in + * Windows~98; only grayscale and B/W rasterizing is supported. + * + * TT_INTERPRETER_VERSION_38 :: + * Version~38 corresponds to MS rasterizer v.1.9; it is roughly + * equivalent to the hinting provided by DirectWrite ClearType (as + * can be found, for example, in the Internet Explorer~9 running on + * Windows~7). + * + * @note: + * This property controls the behaviour of the bytecode interpreter + * and thus how outlines get hinted. It does *not* control how glyph + * get rasterized! In particular, it does not control subpixel color + * filtering. + * + * If FreeType has not been compiled with configuration option + * FT_CONFIG_OPTION_SUBPIXEL_HINTING, selecting version~38 causes an + * `FT_Err_Unimplemented_Feature' error. + * + * Depending on the graphics framework, Microsoft uses different + * bytecode engines. As a consequence, the version numbers returned by + * a call to the `GETINFO[1]' bytecode instruction are more convoluted + * than desired. + * + * { + * framework Windows version result of GETINFO[1] + * ---------------------------------------------------- + * GDI before XP 35 + * GDI XP and later 37 + * GDI+ old before Vista 37 + * GDI+ old Vista, 7 38 + * GDI+ after 7 40 + * DWrite before 8 39 + * DWrite 8 and later 40 + * } + * + * Since FreeType doesn't provide all capabilities of DWrite ClearType, + * using version~38 seems justified. + * + */ +#define TT_INTERPRETER_VERSION_35 35 +#define TT_INTERPRETER_VERSION_38 38 + + /* */ + + +FT_END_HEADER + + +#endif /* __FTTTDRV_H__ */ + + +/* END */ diff --git a/win64/include/freetype/fttypes.h b/win64/include/freetype/fttypes.h index aaeb9e87..2c01e873 100644 --- a/win64/include/freetype/fttypes.h +++ b/win64/include/freetype/fttypes.h @@ -1,29 +1,29 @@ -/**************************************************************************** - * - * fttypes.h - * - * FreeType simple types definitions (specification only). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* fttypes.h */ +/* */ +/* FreeType simple types definitions (specification only). */ +/* */ +/* Copyright 1996-2002, 2004, 2006-2009, 2012-2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTTYPES_H_ -#define FTTYPES_H_ +#ifndef __FTTYPES_H__ +#define __FTTYPES_H__ #include <ft2build.h> #include FT_CONFIG_CONFIG_H -#include <freetype/ftsystem.h> -#include <freetype/ftimage.h> +#include FT_SYSTEM_H +#include FT_IMAGE_H #include <stddef.h> @@ -31,327 +31,326 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * basic_types - * - * @title: - * Basic Data Types - * - * @abstract: - * The basic data types defined by the library. - * - * @description: - * This section contains the basic data types defined by FreeType~2, - * ranging from simple scalar types to bitmap descriptors. More - * font-specific structures are defined in a different section. - * - * @order: - * FT_Byte - * FT_Bytes - * FT_Char - * FT_Int - * FT_UInt - * FT_Int16 - * FT_UInt16 - * FT_Int32 - * FT_UInt32 - * FT_Int64 - * FT_UInt64 - * FT_Short - * FT_UShort - * FT_Long - * FT_ULong - * FT_Bool - * FT_Offset - * FT_PtrDist - * FT_String - * FT_Tag - * FT_Error - * FT_Fixed - * FT_Pointer - * FT_Pos - * FT_Vector - * FT_BBox - * FT_Matrix - * FT_FWord - * FT_UFWord - * FT_F2Dot14 - * FT_UnitVector - * FT_F26Dot6 - * FT_Data - * - * FT_MAKE_TAG - * - * FT_Generic - * FT_Generic_Finalizer - * - * FT_Bitmap - * FT_Pixel_Mode - * FT_Palette_Mode - * FT_Glyph_Format - * FT_IMAGE_TAG - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* basic_types */ + /* */ + /* <Title> */ + /* Basic Data Types */ + /* */ + /* <Abstract> */ + /* The basic data types defined by the library. */ + /* */ + /* <Description> */ + /* This section contains the basic data types defined by FreeType~2, */ + /* ranging from simple scalar types to bitmap descriptors. More */ + /* font-specific structures are defined in a different section. */ + /* */ + /* <Order> */ + /* FT_Byte */ + /* FT_Bytes */ + /* FT_Char */ + /* FT_Int */ + /* FT_UInt */ + /* FT_Int16 */ + /* FT_UInt16 */ + /* FT_Int32 */ + /* FT_UInt32 */ + /* FT_Int64 */ + /* FT_UInt64 */ + /* FT_Short */ + /* FT_UShort */ + /* FT_Long */ + /* FT_ULong */ + /* FT_Bool */ + /* FT_Offset */ + /* FT_PtrDist */ + /* FT_String */ + /* FT_Tag */ + /* FT_Error */ + /* FT_Fixed */ + /* FT_Pointer */ + /* FT_Pos */ + /* FT_Vector */ + /* FT_BBox */ + /* FT_Matrix */ + /* FT_FWord */ + /* FT_UFWord */ + /* FT_F2Dot14 */ + /* FT_UnitVector */ + /* FT_F26Dot6 */ + /* FT_Data */ + /* */ + /* FT_MAKE_TAG */ + /* */ + /* FT_Generic */ + /* FT_Generic_Finalizer */ + /* */ + /* FT_Bitmap */ + /* FT_Pixel_Mode */ + /* FT_Palette_Mode */ + /* FT_Glyph_Format */ + /* FT_IMAGE_TAG */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @type: - * FT_Bool - * - * @description: - * A typedef of unsigned char, used for simple booleans. As usual, - * values 1 and~0 represent true and false, respectively. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Bool */ + /* */ + /* <Description> */ + /* A typedef of unsigned char, used for simple booleans. As usual, */ + /* values 1 and~0 represent true and false, respectively. */ + /* */ typedef unsigned char FT_Bool; - /************************************************************************** - * - * @type: - * FT_FWord - * - * @description: - * A signed 16-bit integer used to store a distance in original font - * units. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_FWord */ + /* */ + /* <Description> */ + /* A signed 16-bit integer used to store a distance in original font */ + /* units. */ + /* */ typedef signed short FT_FWord; /* distance in FUnits */ - /************************************************************************** - * - * @type: - * FT_UFWord - * - * @description: - * An unsigned 16-bit integer used to store a distance in original font - * units. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_UFWord */ + /* */ + /* <Description> */ + /* An unsigned 16-bit integer used to store a distance in original */ + /* font units. */ + /* */ typedef unsigned short FT_UFWord; /* unsigned distance */ - /************************************************************************** - * - * @type: - * FT_Char - * - * @description: - * A simple typedef for the _signed_ char type. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Char */ + /* */ + /* <Description> */ + /* A simple typedef for the _signed_ char type. */ + /* */ typedef signed char FT_Char; - /************************************************************************** - * - * @type: - * FT_Byte - * - * @description: - * A simple typedef for the _unsigned_ char type. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Byte */ + /* */ + /* <Description> */ + /* A simple typedef for the _unsigned_ char type. */ + /* */ typedef unsigned char FT_Byte; - /************************************************************************** - * - * @type: - * FT_Bytes - * - * @description: - * A typedef for constant memory areas. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Bytes */ + /* */ + /* <Description> */ + /* A typedef for constant memory areas. */ + /* */ typedef const FT_Byte* FT_Bytes; - /************************************************************************** - * - * @type: - * FT_Tag - * - * @description: - * A typedef for 32-bit tags (as used in the SFNT format). - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Tag */ + /* */ + /* <Description> */ + /* A typedef for 32-bit tags (as used in the SFNT format). */ + /* */ typedef FT_UInt32 FT_Tag; - /************************************************************************** - * - * @type: - * FT_String - * - * @description: - * A simple typedef for the char type, usually used for strings. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_String */ + /* */ + /* <Description> */ + /* A simple typedef for the char type, usually used for strings. */ + /* */ typedef char FT_String; - /************************************************************************** - * - * @type: - * FT_Short - * - * @description: - * A typedef for signed short. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Short */ + /* */ + /* <Description> */ + /* A typedef for signed short. */ + /* */ typedef signed short FT_Short; - /************************************************************************** - * - * @type: - * FT_UShort - * - * @description: - * A typedef for unsigned short. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_UShort */ + /* */ + /* <Description> */ + /* A typedef for unsigned short. */ + /* */ typedef unsigned short FT_UShort; - /************************************************************************** - * - * @type: - * FT_Int - * - * @description: - * A typedef for the int type. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Int */ + /* */ + /* <Description> */ + /* A typedef for the int type. */ + /* */ typedef signed int FT_Int; - /************************************************************************** - * - * @type: - * FT_UInt - * - * @description: - * A typedef for the unsigned int type. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_UInt */ + /* */ + /* <Description> */ + /* A typedef for the unsigned int type. */ + /* */ typedef unsigned int FT_UInt; - /************************************************************************** - * - * @type: - * FT_Long - * - * @description: - * A typedef for signed long. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Long */ + /* */ + /* <Description> */ + /* A typedef for signed long. */ + /* */ typedef signed long FT_Long; - /************************************************************************** - * - * @type: - * FT_ULong - * - * @description: - * A typedef for unsigned long. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_ULong */ + /* */ + /* <Description> */ + /* A typedef for unsigned long. */ + /* */ typedef unsigned long FT_ULong; - /************************************************************************** - * - * @type: - * FT_F2Dot14 - * - * @description: - * A signed 2.14 fixed-point type used for unit vectors. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_F2Dot14 */ + /* */ + /* <Description> */ + /* A signed 2.14 fixed-point type used for unit vectors. */ + /* */ typedef signed short FT_F2Dot14; - /************************************************************************** - * - * @type: - * FT_F26Dot6 - * - * @description: - * A signed 26.6 fixed-point type used for vectorial pixel coordinates. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_F26Dot6 */ + /* */ + /* <Description> */ + /* A signed 26.6 fixed-point type used for vectorial pixel */ + /* coordinates. */ + /* */ typedef signed long FT_F26Dot6; - /************************************************************************** - * - * @type: - * FT_Fixed - * - * @description: - * This type is used to store 16.16 fixed-point values, like scaling - * values or matrix coefficients. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Fixed */ + /* */ + /* <Description> */ + /* This type is used to store 16.16 fixed-point values, like scaling */ + /* values or matrix coefficients. */ + /* */ typedef signed long FT_Fixed; - /************************************************************************** - * - * @type: - * FT_Error - * - * @description: - * The FreeType error code type. A value of~0 is always interpreted as a - * successful operation. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Error */ + /* */ + /* <Description> */ + /* The FreeType error code type. A value of~0 is always interpreted */ + /* as a successful operation. */ + /* */ typedef int FT_Error; - /************************************************************************** - * - * @type: - * FT_Pointer - * - * @description: - * A simple typedef for a typeless pointer. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Pointer */ + /* */ + /* <Description> */ + /* A simple typedef for a typeless pointer. */ + /* */ typedef void* FT_Pointer; - /************************************************************************** - * - * @type: - * FT_Offset - * - * @description: - * This is equivalent to the ANSI~C `size_t` type, i.e., the largest - * _unsigned_ integer type used to express a file size or position, or a - * memory block size. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_Offset */ + /* */ + /* <Description> */ + /* This is equivalent to the ANSI~C `size_t' type, i.e., the largest */ + /* _unsigned_ integer type used to express a file size or position, */ + /* or a memory block size. */ + /* */ typedef size_t FT_Offset; - /************************************************************************** - * - * @type: - * FT_PtrDist - * - * @description: - * This is equivalent to the ANSI~C `ptrdiff_t` type, i.e., the largest - * _signed_ integer type used to express the distance between two - * pointers. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_PtrDist */ + /* */ + /* <Description> */ + /* This is equivalent to the ANSI~C `ptrdiff_t' type, i.e., the */ + /* largest _signed_ integer type used to express the distance */ + /* between two pointers. */ + /* */ typedef ft_ptrdiff_t FT_PtrDist; - /************************************************************************** - * - * @struct: - * FT_UnitVector - * - * @description: - * A simple structure used to store a 2D vector unit vector. Uses - * FT_F2Dot14 types. - * - * @fields: - * x :: - * Horizontal coordinate. - * - * y :: - * Vertical coordinate. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_UnitVector */ + /* */ + /* <Description> */ + /* A simple structure used to store a 2D vector unit vector. Uses */ + /* FT_F2Dot14 types. */ + /* */ + /* <Fields> */ + /* x :: Horizontal coordinate. */ + /* */ + /* y :: Vertical coordinate. */ + /* */ typedef struct FT_UnitVector_ { FT_F2Dot14 x; @@ -360,33 +359,29 @@ FT_BEGIN_HEADER } FT_UnitVector; - /************************************************************************** - * - * @struct: - * FT_Matrix - * - * @description: - * A simple structure used to store a 2x2 matrix. Coefficients are in - * 16.16 fixed-point format. The computation performed is: - * - * ``` - * x' = x*xx + y*xy - * y' = x*yx + y*yy - * ``` - * - * @fields: - * xx :: - * Matrix coefficient. - * - * xy :: - * Matrix coefficient. - * - * yx :: - * Matrix coefficient. - * - * yy :: - * Matrix coefficient. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Matrix */ + /* */ + /* <Description> */ + /* A simple structure used to store a 2x2 matrix. Coefficients are */ + /* in 16.16 fixed-point format. The computation performed is: */ + /* */ + /* { */ + /* x' = x*xx + y*xy */ + /* y' = x*yx + y*yy */ + /* } */ + /* */ + /* <Fields> */ + /* xx :: Matrix coefficient. */ + /* */ + /* xy :: Matrix coefficient. */ + /* */ + /* yx :: Matrix coefficient. */ + /* */ + /* yy :: Matrix coefficient. */ + /* */ typedef struct FT_Matrix_ { FT_Fixed xx, xy; @@ -395,21 +390,19 @@ FT_BEGIN_HEADER } FT_Matrix; - /************************************************************************** - * - * @struct: - * FT_Data - * - * @description: - * Read-only binary data represented as a pointer and a length. - * - * @fields: - * pointer :: - * The data. - * - * length :: - * The length of the data in bytes. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Data */ + /* */ + /* <Description> */ + /* Read-only binary data represented as a pointer and a length. */ + /* */ + /* <Fields> */ + /* pointer :: The data. */ + /* */ + /* length :: The length of the data in bytes. */ + /* */ typedef struct FT_Data_ { const FT_Byte* pointer; @@ -418,52 +411,51 @@ FT_BEGIN_HEADER } FT_Data; - /************************************************************************** - * - * @functype: - * FT_Generic_Finalizer - * - * @description: - * Describe a function used to destroy the 'client' data of any FreeType - * object. See the description of the @FT_Generic type for details of - * usage. - * - * @input: - * The address of the FreeType object that is under finalization. Its - * client data is accessed through its `generic` field. - */ - typedef void (*FT_Generic_Finalizer)( void* object ); + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Generic_Finalizer */ + /* */ + /* <Description> */ + /* Describe a function used to destroy the `client' data of any */ + /* FreeType object. See the description of the @FT_Generic type for */ + /* details of usage. */ + /* */ + /* <Input> */ + /* The address of the FreeType object that is under finalization. */ + /* Its client data is accessed through its `generic' field. */ + /* */ + typedef void (*FT_Generic_Finalizer)(void* object); - /************************************************************************** - * - * @struct: - * FT_Generic - * - * @description: - * Client applications often need to associate their own data to a - * variety of FreeType core objects. For example, a text layout API - * might want to associate a glyph cache to a given size object. - * - * Some FreeType object contains a `generic` field, of type `FT_Generic`, - * which usage is left to client applications and font servers. - * - * It can be used to store a pointer to client-specific data, as well as - * the address of a 'finalizer' function, which will be called by - * FreeType when the object is destroyed (for example, the previous - * client example would put the address of the glyph cache destructor in - * the `finalizer` field). - * - * @fields: - * data :: - * A typeless pointer to any client-specified data. This field is - * completely ignored by the FreeType library. - * - * finalizer :: - * A pointer to a 'generic finalizer' function, which will be called - * when the object is destroyed. If this field is set to `NULL`, no - * code will be called. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Generic */ + /* */ + /* <Description> */ + /* Client applications often need to associate their own data to a */ + /* variety of FreeType core objects. For example, a text layout API */ + /* might want to associate a glyph cache to a given size object. */ + /* */ + /* Some FreeType object contains a `generic' field, of type */ + /* FT_Generic, which usage is left to client applications and font */ + /* servers. */ + /* */ + /* It can be used to store a pointer to client-specific data, as well */ + /* as the address of a `finalizer' function, which will be called by */ + /* FreeType when the object is destroyed (for example, the previous */ + /* client example would put the address of the glyph cache destructor */ + /* in the `finalizer' field). */ + /* */ + /* <Fields> */ + /* data :: A typeless pointer to any client-specified data. This */ + /* field is completely ignored by the FreeType library. */ + /* */ + /* finalizer :: A pointer to a `generic finalizer' function, which */ + /* will be called when the object is destroyed. If this */ + /* field is set to NULL, no code will be called. */ + /* */ typedef struct FT_Generic_ { void* data; @@ -472,19 +464,19 @@ FT_BEGIN_HEADER } FT_Generic; - /************************************************************************** - * - * @macro: - * FT_MAKE_TAG - * - * @description: - * This macro converts four-letter tags that are used to label TrueType - * tables into an unsigned long, to be used within FreeType. - * - * @note: - * The produced values **must** be 32-bit integers. Don't redefine this - * macro. - */ + /*************************************************************************/ + /* */ + /* <Macro> */ + /* FT_MAKE_TAG */ + /* */ + /* <Description> */ + /* This macro converts four-letter tags that are used to label */ + /* TrueType tables into an unsigned long, to be used within FreeType. */ + /* */ + /* <Note> */ + /* The produced values *must* be 32-bit integers. Don't redefine */ + /* this macro. */ + /* */ #define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \ (FT_Tag) \ ( ( (FT_ULong)_x1 << 24 ) | \ @@ -502,56 +494,53 @@ FT_BEGIN_HEADER /*************************************************************************/ - /************************************************************************** - * - * @section: - * list_processing - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* list_processing */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @type: - * FT_ListNode - * - * @description: - * Many elements and objects in FreeType are listed through an @FT_List - * record (see @FT_ListRec). As its name suggests, an FT_ListNode is a - * handle to a single list element. - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_ListNode */ + /* */ + /* <Description> */ + /* Many elements and objects in FreeType are listed through an */ + /* @FT_List record (see @FT_ListRec). As its name suggests, an */ + /* FT_ListNode is a handle to a single list element. */ + /* */ typedef struct FT_ListNodeRec_* FT_ListNode; - /************************************************************************** - * - * @type: - * FT_List - * - * @description: - * A handle to a list record (see @FT_ListRec). - */ + /*************************************************************************/ + /* */ + /* <Type> */ + /* FT_List */ + /* */ + /* <Description> */ + /* A handle to a list record (see @FT_ListRec). */ + /* */ typedef struct FT_ListRec_* FT_List; - /************************************************************************** - * - * @struct: - * FT_ListNodeRec - * - * @description: - * A structure used to hold a single list element. - * - * @fields: - * prev :: - * The previous element in the list. `NULL` if first. - * - * next :: - * The next element in the list. `NULL` if last. - * - * data :: - * A typeless pointer to the listed object. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_ListNodeRec */ + /* */ + /* <Description> */ + /* A structure used to hold a single list element. */ + /* */ + /* <Fields> */ + /* prev :: The previous element in the list. NULL if first. */ + /* */ + /* next :: The next element in the list. NULL if last. */ + /* */ + /* data :: A typeless pointer to the listed object. */ + /* */ typedef struct FT_ListNodeRec_ { FT_ListNode prev; @@ -561,22 +550,20 @@ FT_BEGIN_HEADER } FT_ListNodeRec; - /************************************************************************** - * - * @struct: - * FT_ListRec - * - * @description: - * A structure used to hold a simple doubly-linked list. These are used - * in many parts of FreeType. - * - * @fields: - * head :: - * The head (first element) of doubly-linked list. - * - * tail :: - * The tail (last element) of doubly-linked list. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_ListRec */ + /* */ + /* <Description> */ + /* A structure used to hold a simple doubly-linked list. These are */ + /* used in many parts of FreeType. */ + /* */ + /* <Fields> */ + /* head :: The head (first element) of doubly-linked list. */ + /* */ + /* tail :: The tail (last element) of doubly-linked list. */ + /* */ typedef struct FT_ListRec_ { FT_ListNode head; @@ -588,13 +575,13 @@ FT_BEGIN_HEADER #define FT_IS_EMPTY( list ) ( (list).head == 0 ) -#define FT_BOOL( x ) ( (FT_Bool)( (x) != 0 ) ) +#define FT_BOOL( x ) ( (FT_Bool)( x ) ) /* concatenate C tokens */ #define FT_ERR_XCAT( x, y ) x ## y #define FT_ERR_CAT( x, y ) FT_ERR_XCAT( x, y ) - /* see `ftmoderr.h` for descriptions of the following macros */ + /* see `ftmoderr.h' for descriptions of the following macros */ #define FT_ERR( e ) FT_ERR_CAT( FT_ERR_PREFIX, e ) @@ -609,7 +596,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTTYPES_H_ */ +#endif /* __FTTYPES_H__ */ /* END */ diff --git a/win64/include/freetype/ftwinfnt.h b/win64/include/freetype/ftwinfnt.h index 786528c6..50261581 100644 --- a/win64/include/freetype/ftwinfnt.h +++ b/win64/include/freetype/ftwinfnt.h @@ -1,25 +1,26 @@ -/**************************************************************************** - * - * ftwinfnt.h - * - * FreeType API for accessing Windows fnt-specific data. - * - * Copyright (C) 2003-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ftwinfnt.h */ +/* */ +/* FreeType API for accessing Windows fnt-specific data. */ +/* */ +/* Copyright 2003, 2004, 2008 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 FTWINFNT_H_ -#define FTWINFNT_H_ +#ifndef __FTWINFNT_H__ +#define __FTWINFNT_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -31,43 +32,44 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * winfnt_fonts - * - * @title: - * Window FNT Files - * - * @abstract: - * Windows FNT-specific API. - * - * @description: - * This section contains the declaration of Windows FNT-specific - * functions. - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* winfnt_fonts */ + /* */ + /* <Title> */ + /* Window FNT Files */ + /* */ + /* <Abstract> */ + /* Windows FNT specific API. */ + /* */ + /* <Description> */ + /* This section contains the declaration of Windows FNT specific */ + /* functions. */ + /* */ + /*************************************************************************/ - /************************************************************************** + /************************************************************************* * * @enum: * FT_WinFNT_ID_XXX * * @description: - * A list of valid values for the `charset` byte in @FT_WinFNT_HeaderRec. - * Exact mapping tables for the various 'cpXXXX' encodings (except for - * 'cp1361') can be found at 'ftp://ftp.unicode.org/Public/' in the - * `MAPPINGS/VENDORS/MICSFT/WINDOWS` subdirectory. 'cp1361' is roughly a - * superset of `MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT`. + * A list of valid values for the `charset' byte in + * @FT_WinFNT_HeaderRec. Exact mapping tables for the various cpXXXX + * encodings (except for cp1361) can be found at + * ftp://ftp.unicode.org/public in the MAPPINGS/VENDORS/MICSFT/WINDOWS + * subdirectory. cp1361 is roughly a superset of + * MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT. * * @values: * FT_WinFNT_ID_DEFAULT :: - * This is used for font enumeration and font creation as a 'don't - * care' value. Valid font files don't contain this value. When - * querying for information about the character set of the font that is - * currently selected into a specified device context, this return - * value (of the related Windows API) simply denotes failure. + * This is used for font enumeration and font creation as a + * `don't care' value. Valid font files don't contain this value. + * When querying for information about the character set of the font + * that is currently selected into a specified device context, this + * return value (of the related Windows API) simply denotes failure. * * FT_WinFNT_ID_SYMBOL :: * There is no known mapping table available. @@ -76,29 +78,28 @@ FT_BEGIN_HEADER * Mac Roman encoding. * * FT_WinFNT_ID_OEM :: - * From Michael Poettgen <michael@poettgen.de>: + * From Michael Pöttgen <michael@poettgen.de>: * - * The 'Windows Font Mapping' article says that `FT_WinFNT_ID_OEM` is - * used for the charset of vector fonts, like `modern.fon`, - * `roman.fon`, and `script.fon` on Windows. + * The `Windows Font Mapping' article says that FT_WinFNT_ID_OEM + * is used for the charset of vector fonts, like `modern.fon', + * `roman.fon', and `script.fon' on Windows. * - * The 'CreateFont' documentation says: The `FT_WinFNT_ID_OEM` value - * specifies a character set that is operating-system dependent. + * The `CreateFont' documentation says: The FT_WinFNT_ID_OEM value + * specifies a character set that is operating-system dependent. * - * The 'IFIMETRICS' documentation from the 'Windows Driver Development - * Kit' says: This font supports an OEM-specific character set. The - * OEM character set is system dependent. + * The `IFIMETRICS' documentation from the `Windows Driver + * Development Kit' says: This font supports an OEM-specific + * character set. The OEM character set is system dependent. * - * In general OEM, as opposed to ANSI (i.e., 'cp1252'), denotes the - * second default codepage that most international versions of Windows - * have. It is one of the OEM codepages from + * In general OEM, as opposed to ANSI (i.e., cp1252), denotes the + * second default codepage that most international versions of + * Windows have. It is one of the OEM codepages from * - * https://docs.microsoft.com/en-us/windows/desktop/intl/code-page-identifiers - * , + * http://www.microsoft.com/globaldev/reference/cphome.mspx, * - * and is used for the 'DOS boxes', to support legacy applications. A - * German Windows version for example usually uses ANSI codepage 1252 - * and OEM codepage 850. + * and is used for the `DOS boxes', to support legacy applications. + * A German Windows version for example usually uses ANSI codepage + * 1252 and OEM codepage 850. * * FT_WinFNT_ID_CP874 :: * A superset of Thai TIS 620 and ISO 8859-11. @@ -111,8 +112,8 @@ FT_BEGIN_HEADER * ordering and minor deviations). * * FT_WinFNT_ID_CP949 :: - * A superset of Korean Hangul KS~C 5601-1987 (with different ordering - * and minor deviations). + * A superset of Korean Hangul KS~C 5601-1987 (with different + * ordering and minor deviations). * * FT_WinFNT_ID_CP950 :: * A superset of traditional Chinese Big~5 ETen (with different @@ -172,14 +173,14 @@ FT_BEGIN_HEADER #define FT_WinFNT_ID_OEM 255 - /************************************************************************** - * - * @struct: - * FT_WinFNT_HeaderRec - * - * @description: - * Windows FNT Header info. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_WinFNT_HeaderRec */ + /* */ + /* <Description> */ + /* Windows FNT Header info. */ + /* */ typedef struct FT_WinFNT_HeaderRec_ { FT_UShort version; @@ -222,18 +223,18 @@ FT_BEGIN_HEADER } FT_WinFNT_HeaderRec; - /************************************************************************** - * - * @struct: - * FT_WinFNT_Header - * - * @description: - * A handle to an @FT_WinFNT_HeaderRec structure. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_WinFNT_Header */ + /* */ + /* <Description> */ + /* A handle to an @FT_WinFNT_HeaderRec structure. */ + /* */ typedef struct FT_WinFNT_HeaderRec_* FT_WinFNT_Header; - /************************************************************************** + /********************************************************************** * * @function: * FT_Get_WinFNT_Header @@ -242,12 +243,10 @@ FT_BEGIN_HEADER * Retrieve a Windows FNT font info header. * * @input: - * face :: - * A handle to the input face. + * face :: A handle to the input face. * * @output: - * aheader :: - * The WinFNT header. + * aheader :: The WinFNT header. * * @return: * FreeType error code. 0~means success. @@ -265,7 +264,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* FTWINFNT_H_ */ +#endif /* __FTWINFNT_H__ */ /* END */ diff --git a/win64/include/freetype/ftxf86.h b/win64/include/freetype/ftxf86.h new file mode 100644 index 00000000..89d1993e --- /dev/null +++ b/win64/include/freetype/ftxf86.h @@ -0,0 +1,84 @@ +/***************************************************************************/ +/* */ +/* ftxf86.h */ +/* */ +/* Support functions for X11. */ +/* */ +/* Copyright 2002-2004, 2006, 2007, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __FTXF86_H__ +#define __FTXF86_H__ + +#include <ft2build.h> +#include FT_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> */ + /* font_formats */ + /* */ + /* <Title> */ + /* Font Formats */ + /* */ + /* <Abstract> */ + /* Getting the font format. */ + /* */ + /* <Description> */ + /* The single function in this section can be used to get the font */ + /* format. Note that this information is not needed normally; */ + /* however, there are special cases (like in PDF devices) where it is */ + /* important to differentiate, in spite of FreeType's uniform API. */ + /* */ + /* This function is in the X11/xf86 namespace for historical reasons */ + /* and in no way depends on that windowing system. */ + /* */ + /*************************************************************************/ + + + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_X11_Font_Format */ + /* */ + /* <Description> */ + /* Return a string describing the format of a given face, using values */ + /* that can be used as an X11 FONT_PROPERTY. Possible values are */ + /* `TrueType', `Type~1', `BDF', `PCF', `Type~42', `CID~Type~1', `CFF', */ + /* `PFR', and `Windows~FNT'. */ + /* */ + /* <Input> */ + /* face :: */ + /* Input face handle. */ + /* */ + /* <Return> */ + /* Font format string. NULL in case of error. */ + /* */ + FT_EXPORT( const char* ) + FT_Get_X11_Font_Format( FT_Face face ); + + /* */ + + +FT_END_HEADER + +#endif /* __FTXF86_H__ */ diff --git a/win64/include/freetype/internal/autohint.h b/win64/include/freetype/internal/autohint.h new file mode 100644 index 00000000..545de938 --- /dev/null +++ b/win64/include/freetype/internal/autohint.h @@ -0,0 +1,244 @@ +/***************************************************************************/ +/* */ +/* autohint.h */ +/* */ +/* High-level `autohint' module-specific interface (specification). */ +/* */ +/* Copyright 1996-2002, 2007, 2009, 2012 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + + + /*************************************************************************/ + /* */ + /* The auto-hinter is used to load and automatically hint glyphs if a */ + /* format-specific hinter isn't available. */ + /* */ + /*************************************************************************/ + + +#ifndef __AUTOHINT_H__ +#define __AUTOHINT_H__ + + + /*************************************************************************/ + /* */ + /* A small technical note regarding automatic hinting in order to */ + /* clarify this module interface. */ + /* */ + /* An automatic hinter might compute two kinds of data for a given face: */ + /* */ + /* - global hints: Usually some metrics that describe global properties */ + /* of the face. It is computed by scanning more or less */ + /* aggressively the glyphs in the face, and thus can be */ + /* very slow to compute (even if the size of global */ + /* hints is really small). */ + /* */ + /* - glyph hints: These describe some important features of the glyph */ + /* outline, as well as how to align them. They are */ + /* generally much faster to compute than global hints. */ + /* */ + /* The current FreeType auto-hinter does a pretty good job while */ + /* performing fast computations for both global and glyph hints. */ + /* However, we might be interested in introducing more complex and */ + /* powerful algorithms in the future, like the one described in the John */ + /* D. Hobby paper, which unfortunately requires a lot more horsepower. */ + /* */ + /* Because a sufficiently sophisticated font management system would */ + /* typically implement an LRU cache of opened face objects to reduce */ + /* memory usage, it is a good idea to be able to avoid recomputing */ + /* global hints every time the same face is re-opened. */ + /* */ + /* We thus provide the ability to cache global hints outside of the face */ + /* object, in order to speed up font re-opening time. Of course, this */ + /* feature is purely optional, so most client programs won't even notice */ + /* it. */ + /* */ + /* I initially thought that it would be a good idea to cache the glyph */ + /* hints too. However, my general idea now is that if you really need */ + /* to cache these too, you are simply in need of a new font format, */ + /* where all this information could be stored within the font file and */ + /* decoded on the fly. */ + /* */ + /*************************************************************************/ + + +#include <ft2build.h> +#include FT_FREETYPE_H + + +FT_BEGIN_HEADER + + + typedef struct FT_AutoHinterRec_ *FT_AutoHinter; + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_AutoHinter_GlobalGetFunc */ + /* */ + /* <Description> */ + /* Retrieve the global hints computed for a given face object. The */ + /* resulting data is dissociated from the face and will survive a */ + /* call to FT_Done_Face(). It must be discarded through the API */ + /* FT_AutoHinter_GlobalDoneFunc(). */ + /* */ + /* <Input> */ + /* hinter :: A handle to the source auto-hinter. */ + /* */ + /* face :: A handle to the source face object. */ + /* */ + /* <Output> */ + /* global_hints :: A typeless pointer to the global hints. */ + /* */ + /* global_len :: The size in bytes of the global hints. */ + /* */ + typedef void + (*FT_AutoHinter_GlobalGetFunc)( FT_AutoHinter hinter, + FT_Face face, + void** global_hints, + long* global_len ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_AutoHinter_GlobalDoneFunc */ + /* */ + /* <Description> */ + /* Discard the global hints retrieved through */ + /* FT_AutoHinter_GlobalGetFunc(). This is the only way these hints */ + /* are freed from memory. */ + /* */ + /* <Input> */ + /* hinter :: A handle to the auto-hinter module. */ + /* */ + /* global :: A pointer to retrieved global hints to discard. */ + /* */ + typedef void + (*FT_AutoHinter_GlobalDoneFunc)( FT_AutoHinter hinter, + void* global ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_AutoHinter_GlobalResetFunc */ + /* */ + /* <Description> */ + /* This function is used to recompute the global metrics in a given */ + /* font. This is useful when global font data changes (e.g. Multiple */ + /* Masters fonts where blend coordinates change). */ + /* */ + /* <Input> */ + /* hinter :: A handle to the source auto-hinter. */ + /* */ + /* face :: A handle to the face. */ + /* */ + typedef void + (*FT_AutoHinter_GlobalResetFunc)( FT_AutoHinter hinter, + FT_Face face ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_AutoHinter_GlyphLoadFunc */ + /* */ + /* <Description> */ + /* This function is used to load, scale, and automatically hint a */ + /* glyph from a given face. */ + /* */ + /* <Input> */ + /* face :: A handle to the face. */ + /* */ + /* glyph_index :: The glyph index. */ + /* */ + /* load_flags :: The load flags. */ + /* */ + /* <Note> */ + /* This function is capable of loading composite glyphs by hinting */ + /* each sub-glyph independently (which improves quality). */ + /* */ + /* It will call the font driver with @FT_Load_Glyph, with */ + /* @FT_LOAD_NO_SCALE set. */ + /* */ + typedef FT_Error + (*FT_AutoHinter_GlyphLoadFunc)( FT_AutoHinter hinter, + FT_GlyphSlot slot, + FT_Size size, + FT_UInt glyph_index, + FT_Int32 load_flags ); + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_AutoHinter_InterfaceRec */ + /* */ + /* <Description> */ + /* The auto-hinter module's interface. */ + /* */ + typedef struct FT_AutoHinter_InterfaceRec_ + { + FT_AutoHinter_GlobalResetFunc reset_face; + FT_AutoHinter_GlobalGetFunc get_global_hints; + FT_AutoHinter_GlobalDoneFunc done_global_hints; + FT_AutoHinter_GlyphLoadFunc load_glyph; + + } FT_AutoHinter_InterfaceRec, *FT_AutoHinter_Interface; + + +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_AUTOHINTER_INTERFACE( \ + class_, \ + reset_face_, \ + get_global_hints_, \ + done_global_hints_, \ + load_glyph_ ) \ + FT_CALLBACK_TABLE_DEF \ + const FT_AutoHinter_InterfaceRec class_ = \ + { \ + reset_face_, \ + get_global_hints_, \ + done_global_hints_, \ + load_glyph_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_AUTOHINTER_INTERFACE( \ + class_, \ + reset_face_, \ + get_global_hints_, \ + done_global_hints_, \ + load_glyph_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Library library, \ + FT_AutoHinter_InterfaceRec* clazz ) \ + { \ + FT_UNUSED( library ); \ + \ + clazz->reset_face = reset_face_; \ + clazz->get_global_hints = get_global_hints_; \ + clazz->done_global_hints = done_global_hints_; \ + clazz->load_glyph = load_glyph_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + +FT_END_HEADER + +#endif /* __AUTOHINT_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/ftcalc.h b/win64/include/freetype/internal/ftcalc.h new file mode 100644 index 00000000..14ec37b9 --- /dev/null +++ b/win64/include/freetype/internal/ftcalc.h @@ -0,0 +1,406 @@ +/***************************************************************************/ +/* */ +/* ftcalc.h */ +/* */ +/* Arithmetic computations (specification). */ +/* */ +/* Copyright 1996-2006, 2008, 2009, 2012-2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __FTCALC_H__ +#define __FTCALC_H__ + + +#include <ft2build.h> +#include FT_FREETYPE_H + + +FT_BEGIN_HEADER + + + /*************************************************************************/ + /* */ + /* FT_MulDiv() and FT_MulFix() are declared in freetype.h. */ + /* */ + /*************************************************************************/ + +#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER + /* Provide assembler fragments for performance-critical functions. */ + /* These must be defined `static __inline__' with GCC. */ + +#if defined( __CC_ARM ) || defined( __ARMCC__ ) /* RVCT */ + +#define FT_MULFIX_ASSEMBLER FT_MulFix_arm + + /* documentation is in freetype.h */ + + static __inline FT_Int32 + FT_MulFix_arm( FT_Int32 a, + FT_Int32 b ) + { + register FT_Int32 t, t2; + + + __asm + { + smull t2, t, b, a /* (lo=t2,hi=t) = a*b */ + mov a, t, asr #31 /* a = (hi >> 31) */ + add a, a, #0x8000 /* a += 0x8000 */ + adds t2, t2, a /* t2 += a */ + adc t, t, #0 /* t += carry */ + mov a, t2, lsr #16 /* a = t2 >> 16 */ + orr a, a, t, lsl #16 /* a |= t << 16 */ + } + return a; + } + +#endif /* __CC_ARM || __ARMCC__ */ + + +#ifdef __GNUC__ + +#if defined( __arm__ ) && \ + ( !defined( __thumb__ ) || defined( __thumb2__ ) ) && \ + !( defined( __CC_ARM ) || defined( __ARMCC__ ) ) + +#define FT_MULFIX_ASSEMBLER FT_MulFix_arm + + /* documentation is in freetype.h */ + + static __inline__ FT_Int32 + FT_MulFix_arm( FT_Int32 a, + FT_Int32 b ) + { + register FT_Int32 t, t2; + + + __asm__ __volatile__ ( + "smull %1, %2, %4, %3\n\t" /* (lo=%1,hi=%2) = a*b */ + "mov %0, %2, asr #31\n\t" /* %0 = (hi >> 31) */ +#if defined( __clang__ ) && defined( __thumb2__ ) + "add.w %0, %0, #0x8000\n\t" /* %0 += 0x8000 */ +#else + "add %0, %0, #0x8000\n\t" /* %0 += 0x8000 */ +#endif + "adds %1, %1, %0\n\t" /* %1 += %0 */ + "adc %2, %2, #0\n\t" /* %2 += carry */ + "mov %0, %1, lsr #16\n\t" /* %0 = %1 >> 16 */ + "orr %0, %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */ + : "=r"(a), "=&r"(t2), "=&r"(t) + : "r"(a), "r"(b) + : "cc" ); + return a; + } + +#endif /* __arm__ && */ + /* ( __thumb2__ || !__thumb__ ) && */ + /* !( __CC_ARM || __ARMCC__ ) */ + + +#if defined( __i386__ ) + +#define FT_MULFIX_ASSEMBLER FT_MulFix_i386 + + /* documentation is in freetype.h */ + + static __inline__ FT_Int32 + FT_MulFix_i386( FT_Int32 a, + FT_Int32 b ) + { + register FT_Int32 result; + + + __asm__ __volatile__ ( + "imul %%edx\n" + "movl %%edx, %%ecx\n" + "sarl $31, %%ecx\n" + "addl $0x8000, %%ecx\n" + "addl %%ecx, %%eax\n" + "adcl $0, %%edx\n" + "shrl $16, %%eax\n" + "shll $16, %%edx\n" + "addl %%edx, %%eax\n" + : "=a"(result), "=d"(b) + : "a"(a), "d"(b) + : "%ecx", "cc" ); + return result; + } + +#endif /* i386 */ + +#endif /* __GNUC__ */ + + +#ifdef _MSC_VER /* Visual C++ */ + +#ifdef _M_IX86 + +#define FT_MULFIX_ASSEMBLER FT_MulFix_i386 + + /* documentation is in freetype.h */ + + static __inline FT_Int32 + FT_MulFix_i386( FT_Int32 a, + FT_Int32 b ) + { + register FT_Int32 result; + + __asm + { + mov eax, a + mov edx, b + imul edx + mov ecx, edx + sar ecx, 31 + add ecx, 8000h + add eax, ecx + adc edx, 0 + shr eax, 16 + shl edx, 16 + add eax, edx + mov result, eax + } + return result; + } + +#endif /* _M_IX86 */ + +#endif /* _MSC_VER */ + + +#if defined( __GNUC__ ) && defined( __x86_64__ ) + +#define FT_MULFIX_ASSEMBLER FT_MulFix_x86_64 + + static __inline__ FT_Int32 + FT_MulFix_x86_64( FT_Int32 a, + FT_Int32 b ) + { + /* Temporarily disable the warning that C90 doesn't support */ + /* `long long'. */ +#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 6 ) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wlong-long" +#endif + +#if 1 + /* Technically not an assembly fragment, but GCC does a really good */ + /* job at inlining it and generating good machine code for it. */ + long long ret, tmp; + + + ret = (long long)a * b; + tmp = ret >> 63; + ret += 0x8000 + tmp; + + return (FT_Int32)( ret >> 16 ); +#else + + /* For some reason, GCC 4.6 on Ubuntu 12.04 generates invalid machine */ + /* code from the lines below. The main issue is that `wide_a' is not */ + /* properly initialized by sign-extending `a'. Instead, the generated */ + /* machine code assumes that the register that contains `a' on input */ + /* can be used directly as a 64-bit value, which is wrong most of the */ + /* time. */ + long long wide_a = (long long)a; + long long wide_b = (long long)b; + long long result; + + + __asm__ __volatile__ ( + "imul %2, %1\n" + "mov %1, %0\n" + "sar $63, %0\n" + "lea 0x8000(%1, %0), %0\n" + "sar $16, %0\n" + : "=&r"(result), "=&r"(wide_a) + : "r"(wide_b) + : "cc" ); + + return (FT_Int32)result; +#endif + +#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 6 ) +#pragma GCC diagnostic pop +#endif + } + +#endif /* __GNUC__ && __x86_64__ */ + +#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */ + + +#ifdef FT_CONFIG_OPTION_INLINE_MULFIX +#ifdef FT_MULFIX_ASSEMBLER +#define FT_MulFix( a, b ) FT_MULFIX_ASSEMBLER( (FT_Int32)(a), (FT_Int32)(b) ) +#endif +#endif + + + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_MulDiv_No_Round */ + /* */ + /* <Description> */ + /* A very simple function used to perform the computation `(a*b)/c' */ + /* (without rounding) with maximum accuracy (it uses a 64-bit */ + /* intermediate integer whenever necessary). */ + /* */ + /* This function isn't necessarily as fast as some processor specific */ + /* operations, but is at least completely portable. */ + /* */ + /* <Input> */ + /* a :: The first multiplier. */ + /* b :: The second multiplier. */ + /* c :: The divisor. */ + /* */ + /* <Return> */ + /* The result of `(a*b)/c'. This function never traps when trying to */ + /* divide by zero; it simply returns `MaxInt' or `MinInt' depending */ + /* on the signs of `a' and `b'. */ + /* */ + FT_BASE( FT_Long ) + FT_MulDiv_No_Round( FT_Long a, + FT_Long b, + FT_Long c ); + + + /* + * A variant of FT_Matrix_Multiply which scales its result afterwards. + * The idea is that both `a' and `b' are scaled by factors of 10 so that + * the values are as precise as possible to get a correct result during + * the 64bit multiplication. Let `sa' and `sb' be the scaling factors of + * `a' and `b', respectively, then the scaling factor of the result is + * `sa*sb'. + */ + FT_BASE( void ) + FT_Matrix_Multiply_Scaled( const FT_Matrix* a, + FT_Matrix *b, + FT_Long scaling ); + + + /* + * A variant of FT_Vector_Transform. See comments for + * FT_Matrix_Multiply_Scaled. + */ + FT_BASE( void ) + FT_Vector_Transform_Scaled( FT_Vector* vector, + const FT_Matrix* matrix, + FT_Long scaling ); + + + /* + * Return -1, 0, or +1, depending on the orientation of a given corner. + * We use the Cartesian coordinate system, with positive vertical values + * going upwards. The function returns +1 if the corner turns to the + * left, -1 to the right, and 0 for undecidable cases. + */ + FT_BASE( FT_Int ) + ft_corner_orientation( FT_Pos in_x, + FT_Pos in_y, + FT_Pos out_x, + FT_Pos out_y ); + + + /* + * Return TRUE if a corner is flat or nearly flat. This is equivalent to + * saying that the corner point is close to its neighbors, or inside an + * ellipse defined by the neighbor focal points to be more precise. + */ + FT_BASE( FT_Int ) + ft_corner_is_flat( FT_Pos in_x, + FT_Pos in_y, + FT_Pos out_x, + FT_Pos out_y ); + + + /* + * Return the most significant bit index. + */ + +#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER +#if defined( __GNUC__ ) && \ + ( __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 4 ) ) + +#if FT_SIZEOF_INT == 4 + +#define FT_MSB( x ) ( 31 - __builtin_clz( x ) ) + +#elif FT_SIZEOF_LONG == 4 + +#define FT_MSB( x ) ( 31 - __builtin_clzl( x ) ) + +#endif + +#endif /* __GNUC__ */ +#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */ + +#ifndef FT_MSB + + FT_BASE( FT_Int ) + FT_MSB( FT_UInt32 z ); + +#endif + + + /* + * Return sqrt(x*x+y*y), which is the same as `FT_Vector_Length' but uses + * two fixed-point arguments instead. + */ + FT_BASE( FT_Fixed ) + FT_Hypot( FT_Fixed x, + FT_Fixed y ); + + +#if 0 + + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_SqrtFixed */ + /* */ + /* <Description> */ + /* Computes the square root of a 16.16 fixed-point value. */ + /* */ + /* <Input> */ + /* x :: The value to compute the root for. */ + /* */ + /* <Return> */ + /* The result of `sqrt(x)'. */ + /* */ + /* <Note> */ + /* This function is not very fast. */ + /* */ + FT_BASE( FT_Int32 ) + FT_SqrtFixed( FT_Int32 x ); + +#endif /* 0 */ + + +#define INT_TO_F26DOT6( x ) ( (FT_Long)(x) << 6 ) +#define INT_TO_F2DOT14( x ) ( (FT_Long)(x) << 14 ) +#define INT_TO_FIXED( x ) ( (FT_Long)(x) << 16 ) +#define F2DOT14_TO_FIXED( x ) ( (FT_Long)(x) << 2 ) +#define FLOAT_TO_FIXED( x ) ( (FT_Long)( x * 65536.0 ) ) +#define FIXED_TO_INT( x ) ( FT_RoundFix( x ) >> 16 ) + +#define ROUND_F26DOT6( x ) ( x >= 0 ? ( ( (x) + 32 ) & -64 ) \ + : ( -( ( 32 - (x) ) & -64 ) ) ) + + +FT_END_HEADER + +#endif /* __FTCALC_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/ftdebug.h b/win64/include/freetype/internal/ftdebug.h new file mode 100644 index 00000000..58a3916d --- /dev/null +++ b/win64/include/freetype/internal/ftdebug.h @@ -0,0 +1,255 @@ +/***************************************************************************/ +/* */ +/* ftdebug.h */ +/* */ +/* Debugging and logging component (specification). */ +/* */ +/* Copyright 1996-2002, 2004, 2006-2009, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/* */ +/* IMPORTANT: A description of FreeType's debugging support can be */ +/* found in `docs/DEBUG.TXT'. Read it if you need to use or */ +/* understand this code. */ +/* */ +/***************************************************************************/ + + +#ifndef __FTDEBUG_H__ +#define __FTDEBUG_H__ + + +#include <ft2build.h> +#include FT_CONFIG_CONFIG_H +#include FT_FREETYPE_H + + +FT_BEGIN_HEADER + + + /* force the definition of FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE */ + /* is already defined; this simplifies the following #ifdefs */ + /* */ +#ifdef FT_DEBUG_LEVEL_TRACE +#undef FT_DEBUG_LEVEL_ERROR +#define FT_DEBUG_LEVEL_ERROR +#endif + + + /*************************************************************************/ + /* */ + /* Define the trace enums as well as the trace levels array when they */ + /* are needed. */ + /* */ + /*************************************************************************/ + +#ifdef FT_DEBUG_LEVEL_TRACE + +#define FT_TRACE_DEF( x ) trace_ ## x , + + /* defining the enumeration */ + typedef enum FT_Trace_ + { +#include FT_INTERNAL_TRACE_H + trace_count + + } FT_Trace; + + + /* defining the array of trace levels, provided by `src/base/ftdebug.c' */ + extern int ft_trace_levels[trace_count]; + +#undef FT_TRACE_DEF + +#endif /* FT_DEBUG_LEVEL_TRACE */ + + + /*************************************************************************/ + /* */ + /* Define the FT_TRACE macro */ + /* */ + /* IMPORTANT! */ + /* */ + /* Each component must define the macro FT_COMPONENT to a valid FT_Trace */ + /* value before using any TRACE macro. */ + /* */ + /*************************************************************************/ + +#ifdef FT_DEBUG_LEVEL_TRACE + +#define FT_TRACE( level, varformat ) \ + do \ + { \ + if ( ft_trace_levels[FT_COMPONENT] >= level ) \ + FT_Message varformat; \ + } while ( 0 ) + +#else /* !FT_DEBUG_LEVEL_TRACE */ + +#define FT_TRACE( level, varformat ) do { } while ( 0 ) /* nothing */ + +#endif /* !FT_DEBUG_LEVEL_TRACE */ + + + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Trace_Get_Count */ + /* */ + /* <Description> */ + /* Return the number of available trace components. */ + /* */ + /* <Return> */ + /* The number of trace components. 0 if FreeType 2 is not built with */ + /* FT_DEBUG_LEVEL_TRACE definition. */ + /* */ + /* <Note> */ + /* This function may be useful if you want to access elements of */ + /* the internal `ft_trace_levels' array by an index. */ + /* */ + FT_BASE( FT_Int ) + FT_Trace_Get_Count( void ); + + + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Trace_Get_Name */ + /* */ + /* <Description> */ + /* Return the name of a trace component. */ + /* */ + /* <Input> */ + /* The index of the trace component. */ + /* */ + /* <Return> */ + /* The name of the trace component. This is a statically allocated */ + /* C string, so do not free it after use. NULL if FreeType 2 is not */ + /* built with FT_DEBUG_LEVEL_TRACE definition. */ + /* */ + /* <Note> */ + /* Use @FT_Trace_Get_Count to get the number of available trace */ + /* components. */ + /* */ + /* This function may be useful if you want to control FreeType 2's */ + /* debug level in your application. */ + /* */ + FT_BASE( const char * ) + FT_Trace_Get_Name( FT_Int idx ); + + + /*************************************************************************/ + /* */ + /* You need two opening and closing parentheses! */ + /* */ + /* Example: FT_TRACE0(( "Value is %i", foo )) */ + /* */ + /* Output of the FT_TRACEX macros is sent to stderr. */ + /* */ + /*************************************************************************/ + +#define FT_TRACE0( varformat ) FT_TRACE( 0, varformat ) +#define FT_TRACE1( varformat ) FT_TRACE( 1, varformat ) +#define FT_TRACE2( varformat ) FT_TRACE( 2, varformat ) +#define FT_TRACE3( varformat ) FT_TRACE( 3, varformat ) +#define FT_TRACE4( varformat ) FT_TRACE( 4, varformat ) +#define FT_TRACE5( varformat ) FT_TRACE( 5, varformat ) +#define FT_TRACE6( varformat ) FT_TRACE( 6, varformat ) +#define FT_TRACE7( varformat ) FT_TRACE( 7, varformat ) + + + /*************************************************************************/ + /* */ + /* Define the FT_ERROR macro. */ + /* */ + /* Output of this macro is sent to stderr. */ + /* */ + /*************************************************************************/ + +#ifdef FT_DEBUG_LEVEL_ERROR + +#define FT_ERROR( varformat ) FT_Message varformat + +#else /* !FT_DEBUG_LEVEL_ERROR */ + +#define FT_ERROR( varformat ) do { } while ( 0 ) /* nothing */ + +#endif /* !FT_DEBUG_LEVEL_ERROR */ + + + /*************************************************************************/ + /* */ + /* Define the FT_ASSERT and FT_THROW macros. The call to `FT_Throw' */ + /* makes it possible to easily set a breakpoint at this function. */ + /* */ + /*************************************************************************/ + +#ifdef FT_DEBUG_LEVEL_ERROR + +#define FT_ASSERT( condition ) \ + do \ + { \ + if ( !( condition ) ) \ + FT_Panic( "assertion failed on line %d of file %s\n", \ + __LINE__, __FILE__ ); \ + } while ( 0 ) + +#define FT_THROW( e ) \ + ( FT_Throw( FT_ERR_CAT( FT_ERR_PREFIX, e ), \ + __LINE__, \ + __FILE__ ) | \ + FT_ERR_CAT( FT_ERR_PREFIX, e ) ) + +#else /* !FT_DEBUG_LEVEL_ERROR */ + +#define FT_ASSERT( condition ) do { } while ( 0 ) + +#define FT_THROW( e ) FT_ERR_CAT( FT_ERR_PREFIX, e ) + +#endif /* !FT_DEBUG_LEVEL_ERROR */ + + + /*************************************************************************/ + /* */ + /* Define `FT_Message' and `FT_Panic' when needed. */ + /* */ + /*************************************************************************/ + +#ifdef FT_DEBUG_LEVEL_ERROR + +#include "stdio.h" /* for vfprintf() */ + + /* print a message */ + FT_BASE( void ) + FT_Message( const char* fmt, + ... ); + + /* print a message and exit */ + FT_BASE( void ) + FT_Panic( const char* fmt, + ... ); + + /* report file name and line number of an error */ + FT_BASE( int ) + FT_Throw( FT_Error error, + int line, + const char* file ); + +#endif /* FT_DEBUG_LEVEL_ERROR */ + + + FT_BASE( void ) + ft_debug_init( void ); + +FT_END_HEADER + +#endif /* __FTDEBUG_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/ftdriver.h b/win64/include/freetype/internal/ftdriver.h new file mode 100644 index 00000000..940218e6 --- /dev/null +++ b/win64/include/freetype/internal/ftdriver.h @@ -0,0 +1,409 @@ +/***************************************************************************/ +/* */ +/* ftdriver.h */ +/* */ +/* FreeType font driver interface (specification). */ +/* */ +/* Copyright 1996-2003, 2006, 2008, 2011-2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __FTDRIVER_H__ +#define __FTDRIVER_H__ + + +#include <ft2build.h> +#include FT_MODULE_H + + +FT_BEGIN_HEADER + + + typedef FT_Error + (*FT_Face_InitFunc)( FT_Stream stream, + FT_Face face, + FT_Int typeface_index, + FT_Int num_params, + FT_Parameter* parameters ); + + typedef void + (*FT_Face_DoneFunc)( FT_Face face ); + + + typedef FT_Error + (*FT_Size_InitFunc)( FT_Size size ); + + typedef void + (*FT_Size_DoneFunc)( FT_Size size ); + + + typedef FT_Error + (*FT_Slot_InitFunc)( FT_GlyphSlot slot ); + + typedef void + (*FT_Slot_DoneFunc)( FT_GlyphSlot slot ); + + + typedef FT_Error + (*FT_Size_RequestFunc)( FT_Size size, + FT_Size_Request req ); + + typedef FT_Error + (*FT_Size_SelectFunc)( FT_Size size, + FT_ULong size_index ); + + typedef FT_Error + (*FT_Slot_LoadFunc)( FT_GlyphSlot slot, + FT_Size size, + FT_UInt glyph_index, + FT_Int32 load_flags ); + + + typedef FT_UInt + (*FT_CharMap_CharIndexFunc)( FT_CharMap charmap, + FT_Long charcode ); + + typedef FT_Long + (*FT_CharMap_CharNextFunc)( FT_CharMap charmap, + FT_Long charcode ); + + + typedef FT_Error + (*FT_Face_GetKerningFunc)( FT_Face face, + FT_UInt left_glyph, + FT_UInt right_glyph, + FT_Vector* kerning ); + + + typedef FT_Error + (*FT_Face_AttachFunc)( FT_Face face, + FT_Stream stream ); + + + typedef FT_Error + (*FT_Face_GetAdvancesFunc)( FT_Face face, + FT_UInt first, + FT_UInt count, + FT_Int32 flags, + FT_Fixed* advances ); + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Driver_ClassRec */ + /* */ + /* <Description> */ + /* The font driver class. This structure mostly contains pointers to */ + /* driver methods. */ + /* */ + /* <Fields> */ + /* root :: The parent module. */ + /* */ + /* face_object_size :: The size of a face object in bytes. */ + /* */ + /* size_object_size :: The size of a size object in bytes. */ + /* */ + /* slot_object_size :: The size of a glyph object in bytes. */ + /* */ + /* init_face :: The format-specific face constructor. */ + /* */ + /* done_face :: The format-specific face destructor. */ + /* */ + /* init_size :: The format-specific size constructor. */ + /* */ + /* done_size :: The format-specific size destructor. */ + /* */ + /* init_slot :: The format-specific slot constructor. */ + /* */ + /* done_slot :: The format-specific slot destructor. */ + /* */ + /* */ + /* load_glyph :: A function handle to load a glyph to a slot. */ + /* This field is mandatory! */ + /* */ + /* get_kerning :: A function handle to return the unscaled */ + /* kerning for a given pair of glyphs. Can be */ + /* set to 0 if the format doesn't support */ + /* kerning. */ + /* */ + /* attach_file :: This function handle is used to read */ + /* additional data for a face from another */ + /* file/stream. For example, this can be used to */ + /* add data from AFM or PFM files on a Type 1 */ + /* face, or a CIDMap on a CID-keyed face. */ + /* */ + /* get_advances :: A function handle used to return advance */ + /* widths of `count' glyphs (in font units), */ + /* starting at `first'. The `vertical' flag must */ + /* be set to get vertical advance heights. The */ + /* `advances' buffer is caller-allocated. */ + /* The idea of this function is to be able to */ + /* perform device-independent text layout without */ + /* loading a single glyph image. */ + /* */ + /* request_size :: A handle to a function used to request the new */ + /* character size. Can be set to 0 if the */ + /* scaling done in the base layer suffices. */ + /* */ + /* select_size :: A handle to a function used to select a new */ + /* fixed size. It is used only if */ + /* @FT_FACE_FLAG_FIXED_SIZES is set. Can be set */ + /* to 0 if the scaling done in the base layer */ + /* suffices. */ + /* <Note> */ + /* Most function pointers, with the exception of `load_glyph', can be */ + /* set to 0 to indicate a default behaviour. */ + /* */ + typedef struct FT_Driver_ClassRec_ + { + FT_Module_Class root; + + FT_Long face_object_size; + FT_Long size_object_size; + FT_Long slot_object_size; + + FT_Face_InitFunc init_face; + FT_Face_DoneFunc done_face; + + FT_Size_InitFunc init_size; + FT_Size_DoneFunc done_size; + + FT_Slot_InitFunc init_slot; + FT_Slot_DoneFunc done_slot; + + FT_Slot_LoadFunc load_glyph; + + FT_Face_GetKerningFunc get_kerning; + FT_Face_AttachFunc attach_file; + FT_Face_GetAdvancesFunc get_advances; + + /* since version 2.2 */ + FT_Size_RequestFunc request_size; + FT_Size_SelectFunc select_size; + + } FT_Driver_ClassRec, *FT_Driver_Class; + + + /*************************************************************************/ + /* */ + /* <Macro> */ + /* FT_DECLARE_DRIVER */ + /* */ + /* <Description> */ + /* Used to create a forward declaration of an FT_Driver_ClassRec */ + /* struct instance. */ + /* */ + /* <Macro> */ + /* FT_DEFINE_DRIVER */ + /* */ + /* <Description> */ + /* Used to initialize an instance of FT_Driver_ClassRec struct. */ + /* */ + /* When FT_CONFIG_OPTION_PIC is defined a `create' function has to be */ + /* called with a pointer where the allocated structure is returned. */ + /* And when it is no longer needed a `destroy' function needs to be */ + /* called to release that allocation. */ + /* */ + /* `fcinit.c' (ft_create_default_module_classes) already contains a */ + /* mechanism to call these functions for the default modules */ + /* described in `ftmodule.h'. */ + /* */ + /* Notice that the created `create' and `destroy' functions call */ + /* `pic_init' and `pic_free' to allow you to manually allocate and */ + /* initialize any additional global data, like a module specific */ + /* interface, and put them in the global pic container defined in */ + /* `ftpic.h'. If you don't need them just implement the functions as */ + /* empty to resolve the link error. Also the `pic_init' and */ + /* `pic_free' functions should be declared in `pic.h', to be referred */ + /* by driver definition calling `FT_DEFINE_DRIVER' in following. */ + /* */ + /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ + /* allocated in the global scope (or the scope where the macro is */ + /* used). */ + /* */ +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DECLARE_DRIVER( class_ ) \ + FT_CALLBACK_TABLE \ + const FT_Driver_ClassRec class_; + +#define FT_DEFINE_DRIVER( \ + class_, \ + flags_, \ + size_, \ + name_, \ + version_, \ + requires_, \ + interface_, \ + init_, \ + done_, \ + get_interface_, \ + face_object_size_, \ + size_object_size_, \ + slot_object_size_, \ + init_face_, \ + done_face_, \ + init_size_, \ + done_size_, \ + init_slot_, \ + done_slot_, \ + load_glyph_, \ + get_kerning_, \ + attach_file_, \ + get_advances_, \ + request_size_, \ + select_size_ ) \ + FT_CALLBACK_TABLE_DEF \ + const FT_Driver_ClassRec class_ = \ + { \ + FT_DEFINE_ROOT_MODULE( flags_, \ + size_, \ + name_, \ + version_, \ + requires_, \ + interface_, \ + init_, \ + done_, \ + get_interface_ ) \ + \ + face_object_size_, \ + size_object_size_, \ + slot_object_size_, \ + \ + init_face_, \ + done_face_, \ + \ + init_size_, \ + done_size_, \ + \ + init_slot_, \ + done_slot_, \ + \ + load_glyph_, \ + \ + get_kerning_, \ + attach_file_, \ + get_advances_, \ + \ + request_size_, \ + select_size_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DECLARE_DRIVER( class_ ) FT_DECLARE_MODULE( class_ ) + +#define FT_DEFINE_DRIVER( \ + class_, \ + flags_, \ + size_, \ + name_, \ + version_, \ + requires_, \ + interface_, \ + init_, \ + done_, \ + get_interface_, \ + face_object_size_, \ + size_object_size_, \ + slot_object_size_, \ + init_face_, \ + done_face_, \ + init_size_, \ + done_size_, \ + init_slot_, \ + done_slot_, \ + load_glyph_, \ + get_kerning_, \ + attach_file_, \ + get_advances_, \ + request_size_, \ + select_size_ ) \ + void \ + FT_Destroy_Class_ ## class_( FT_Library library, \ + FT_Module_Class* clazz ) \ + { \ + FT_Memory memory = library->memory; \ + FT_Driver_Class dclazz = (FT_Driver_Class)clazz; \ + \ + \ + class_ ## _pic_free( library ); \ + if ( dclazz ) \ + FT_FREE( dclazz ); \ + } \ + \ + \ + FT_Error \ + FT_Create_Class_ ## class_( FT_Library library, \ + FT_Module_Class** output_class ) \ + { \ + FT_Driver_Class clazz = NULL; \ + FT_Error error; \ + FT_Memory memory = library->memory; \ + \ + \ + if ( FT_ALLOC( clazz, sizeof ( *clazz ) ) ) \ + return error; \ + \ + error = class_ ## _pic_init( library ); \ + if ( error ) \ + { \ + FT_FREE( clazz ); \ + return error; \ + } \ + \ + FT_DEFINE_ROOT_MODULE( flags_, \ + size_, \ + name_, \ + version_, \ + requires_, \ + interface_, \ + init_, \ + done_, \ + get_interface_ ) \ + \ + clazz->face_object_size = face_object_size_; \ + clazz->size_object_size = size_object_size_; \ + clazz->slot_object_size = slot_object_size_; \ + \ + clazz->init_face = init_face_; \ + clazz->done_face = done_face_; \ + \ + clazz->init_size = init_size_; \ + clazz->done_size = done_size_; \ + \ + clazz->init_slot = init_slot_; \ + clazz->done_slot = done_slot_; \ + \ + clazz->load_glyph = load_glyph_; \ + \ + clazz->get_kerning = get_kerning_; \ + clazz->attach_file = attach_file_; \ + clazz->get_advances = get_advances_; \ + \ + clazz->request_size = request_size_; \ + clazz->select_size = select_size_; \ + \ + *output_class = (FT_Module_Class*)clazz; \ + \ + return FT_Err_Ok; \ + } + + +#endif /* FT_CONFIG_OPTION_PIC */ + +FT_END_HEADER + +#endif /* __FTDRIVER_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/ftgloadr.h b/win64/include/freetype/internal/ftgloadr.h new file mode 100644 index 00000000..f70774f7 --- /dev/null +++ b/win64/include/freetype/internal/ftgloadr.h @@ -0,0 +1,170 @@ +/***************************************************************************/ +/* */ +/* ftgloadr.h */ +/* */ +/* The FreeType glyph loader (specification). */ +/* */ +/* Copyright 2002, 2003, 2005, 2006 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __FTGLOADR_H__ +#define __FTGLOADR_H__ + + +#include <ft2build.h> +#include FT_FREETYPE_H + + +FT_BEGIN_HEADER + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_GlyphLoader */ + /* */ + /* <Description> */ + /* The glyph loader is an internal object used to load several glyphs */ + /* together (for example, in the case of composites). */ + /* */ + /* <Note> */ + /* The glyph loader implementation is not part of the high-level API, */ + /* hence the forward structure declaration. */ + /* */ + typedef struct FT_GlyphLoaderRec_* FT_GlyphLoader ; + + +#if 0 /* moved to freetype.h in version 2.2 */ +#define FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS 1 +#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES 2 +#define FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID 4 +#define FT_SUBGLYPH_FLAG_SCALE 8 +#define FT_SUBGLYPH_FLAG_XY_SCALE 0x40 +#define FT_SUBGLYPH_FLAG_2X2 0x80 +#define FT_SUBGLYPH_FLAG_USE_MY_METRICS 0x200 +#endif + + + typedef struct FT_SubGlyphRec_ + { + FT_Int index; + FT_UShort flags; + FT_Int arg1; + FT_Int arg2; + FT_Matrix transform; + + } FT_SubGlyphRec; + + + typedef struct FT_GlyphLoadRec_ + { + FT_Outline outline; /* outline */ + FT_Vector* extra_points; /* extra points table */ + FT_Vector* extra_points2; /* second extra points table */ + FT_UInt num_subglyphs; /* number of subglyphs */ + FT_SubGlyph subglyphs; /* subglyphs */ + + } FT_GlyphLoadRec, *FT_GlyphLoad; + + + typedef struct FT_GlyphLoaderRec_ + { + FT_Memory memory; + FT_UInt max_points; + FT_UInt max_contours; + FT_UInt max_subglyphs; + FT_Bool use_extra; + + FT_GlyphLoadRec base; + FT_GlyphLoadRec current; + + void* other; /* for possible future extension? */ + + } FT_GlyphLoaderRec; + + + /* create new empty glyph loader */ + FT_BASE( FT_Error ) + FT_GlyphLoader_New( FT_Memory memory, + FT_GlyphLoader *aloader ); + + /* add an extra points table to a glyph loader */ + FT_BASE( FT_Error ) + FT_GlyphLoader_CreateExtra( FT_GlyphLoader loader ); + + /* destroy a glyph loader */ + FT_BASE( void ) + FT_GlyphLoader_Done( FT_GlyphLoader loader ); + + /* reset a glyph loader (frees everything int it) */ + FT_BASE( void ) + FT_GlyphLoader_Reset( FT_GlyphLoader loader ); + + /* rewind a glyph loader */ + FT_BASE( void ) + FT_GlyphLoader_Rewind( FT_GlyphLoader loader ); + + /* check that there is enough space to add `n_points' and `n_contours' */ + /* to the glyph loader */ + FT_BASE( FT_Error ) + FT_GlyphLoader_CheckPoints( FT_GlyphLoader loader, + FT_UInt n_points, + FT_UInt n_contours ); + + +#define FT_GLYPHLOADER_CHECK_P( _loader, _count ) \ + ( (_count) == 0 || \ + ( (_loader)->base.outline.n_points + \ + (_loader)->current.outline.n_points + \ + (unsigned long)(_count) ) <= (_loader)->max_points ) + +#define FT_GLYPHLOADER_CHECK_C( _loader, _count ) \ + ( (_count) == 0 || \ + ( (_loader)->base.outline.n_contours + \ + (_loader)->current.outline.n_contours + \ + (unsigned long)(_count)) <= (_loader)->max_contours ) + +#define FT_GLYPHLOADER_CHECK_POINTS( _loader, _points, _contours ) \ + ( ( FT_GLYPHLOADER_CHECK_P( _loader, _points ) && \ + FT_GLYPHLOADER_CHECK_C( _loader, _contours ) ) \ + ? 0 \ + : FT_GlyphLoader_CheckPoints( (_loader), (_points), (_contours) ) ) + + + /* check that there is enough space to add `n_subs' sub-glyphs to */ + /* a glyph loader */ + FT_BASE( FT_Error ) + FT_GlyphLoader_CheckSubGlyphs( FT_GlyphLoader loader, + FT_UInt n_subs ); + + /* prepare a glyph loader, i.e. empty the current glyph */ + FT_BASE( void ) + FT_GlyphLoader_Prepare( FT_GlyphLoader loader ); + + /* add the current glyph to the base glyph */ + FT_BASE( void ) + FT_GlyphLoader_Add( FT_GlyphLoader loader ); + + /* copy points from one glyph loader to another */ + FT_BASE( FT_Error ) + FT_GlyphLoader_CopyPoints( FT_GlyphLoader target, + FT_GlyphLoader source ); + + /* */ + + +FT_END_HEADER + +#endif /* __FTGLOADR_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/ftmemory.h b/win64/include/freetype/internal/ftmemory.h new file mode 100644 index 00000000..3d51aeec --- /dev/null +++ b/win64/include/freetype/internal/ftmemory.h @@ -0,0 +1,378 @@ +/***************************************************************************/ +/* */ +/* ftmemory.h */ +/* */ +/* The FreeType memory management macros (specification). */ +/* */ +/* Copyright 1996-2002, 2004-2007, 2010, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __FTMEMORY_H__ +#define __FTMEMORY_H__ + + +#include <ft2build.h> +#include FT_CONFIG_CONFIG_H +#include FT_TYPES_H + + +FT_BEGIN_HEADER + + + /*************************************************************************/ + /* */ + /* <Macro> */ + /* FT_SET_ERROR */ + /* */ + /* <Description> */ + /* This macro is used to set an implicit `error' variable to a given */ + /* expression's value (usually a function call), and convert it to a */ + /* boolean which is set whenever the value is != 0. */ + /* */ +#undef FT_SET_ERROR +#define FT_SET_ERROR( expression ) \ + ( ( error = (expression) ) != 0 ) + + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** ****/ + /**** M E M O R Y ****/ + /**** ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + /* + * C++ refuses to handle statements like p = (void*)anything, with `p' a + * typed pointer. Since we don't have a `typeof' operator in standard + * C++, we have to use a template to emulate it. + */ + +#ifdef __cplusplus + + extern "C++" + template <typename T> inline T* + cplusplus_typeof( T*, + void *v ) + { + return static_cast <T*> ( v ); + } + +#define FT_ASSIGNP( p, val ) (p) = cplusplus_typeof( (p), (val) ) + +#else + +#define FT_ASSIGNP( p, val ) (p) = (val) + +#endif + + + +#ifdef FT_DEBUG_MEMORY + + FT_BASE( const char* ) _ft_debug_file; + FT_BASE( long ) _ft_debug_lineno; + +#define FT_DEBUG_INNER( exp ) ( _ft_debug_file = __FILE__, \ + _ft_debug_lineno = __LINE__, \ + (exp) ) + +#define FT_ASSIGNP_INNER( p, exp ) ( _ft_debug_file = __FILE__, \ + _ft_debug_lineno = __LINE__, \ + FT_ASSIGNP( p, exp ) ) + +#else /* !FT_DEBUG_MEMORY */ + +#define FT_DEBUG_INNER( exp ) (exp) +#define FT_ASSIGNP_INNER( p, exp ) FT_ASSIGNP( p, exp ) + +#endif /* !FT_DEBUG_MEMORY */ + + + /* + * The allocation functions return a pointer, and the error code + * is written to through the `p_error' parameter. See below for + * for documentation. + */ + + FT_BASE( FT_Pointer ) + ft_mem_alloc( FT_Memory memory, + FT_Long size, + FT_Error *p_error ); + + FT_BASE( FT_Pointer ) + ft_mem_qalloc( FT_Memory memory, + FT_Long size, + FT_Error *p_error ); + + FT_BASE( FT_Pointer ) + ft_mem_realloc( FT_Memory memory, + FT_Long item_size, + FT_Long cur_count, + FT_Long new_count, + void* block, + FT_Error *p_error ); + + FT_BASE( FT_Pointer ) + ft_mem_qrealloc( FT_Memory memory, + FT_Long item_size, + FT_Long cur_count, + FT_Long new_count, + void* block, + FT_Error *p_error ); + + FT_BASE( void ) + ft_mem_free( FT_Memory memory, + const void* P ); + + +#define FT_MEM_ALLOC( ptr, size ) \ + FT_ASSIGNP_INNER( ptr, ft_mem_alloc( memory, \ + (FT_Long)(size), \ + &error ) ) + +#define FT_MEM_FREE( ptr ) \ + FT_BEGIN_STMNT \ + ft_mem_free( memory, (ptr) ); \ + (ptr) = NULL; \ + FT_END_STMNT + +#define FT_MEM_NEW( ptr ) \ + FT_MEM_ALLOC( ptr, sizeof ( *(ptr) ) ) + +#define FT_MEM_REALLOC( ptr, cursz, newsz ) \ + FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ + 1, \ + (FT_Long)(cursz), \ + (FT_Long)(newsz), \ + (ptr), \ + &error ) ) + +#define FT_MEM_QALLOC( ptr, size ) \ + FT_ASSIGNP_INNER( ptr, ft_mem_qalloc( memory, \ + (FT_Long)(size), \ + &error ) ) + +#define FT_MEM_QNEW( ptr ) \ + FT_MEM_QALLOC( ptr, sizeof ( *(ptr) ) ) + +#define FT_MEM_QREALLOC( ptr, cursz, newsz ) \ + FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ + 1, \ + (FT_Long)(cursz), \ + (FT_Long)(newsz), \ + (ptr), \ + &error ) ) + +#define FT_MEM_ALLOC_MULT( ptr, count, item_size ) \ + FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ + (FT_Long)(item_size), \ + 0, \ + (FT_Long)(count), \ + NULL, \ + &error ) ) + +#define FT_MEM_REALLOC_MULT( ptr, oldcnt, newcnt, itmsz ) \ + FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ + (FT_Long)(itmsz), \ + (FT_Long)(oldcnt), \ + (FT_Long)(newcnt), \ + (ptr), \ + &error ) ) + +#define FT_MEM_QALLOC_MULT( ptr, count, item_size ) \ + FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ + (FT_Long)(item_size), \ + 0, \ + (FT_Long)(count), \ + NULL, \ + &error ) ) + +#define FT_MEM_QREALLOC_MULT( ptr, oldcnt, newcnt, itmsz) \ + FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ + (FT_Long)(itmsz), \ + (FT_Long)(oldcnt), \ + (FT_Long)(newcnt), \ + (ptr), \ + &error ) ) + + +#define FT_MEM_SET_ERROR( cond ) ( (cond), error != 0 ) + + +#define FT_MEM_SET( dest, byte, count ) ft_memset( dest, byte, count ) + +#define FT_MEM_COPY( dest, source, count ) ft_memcpy( dest, source, count ) + +#define FT_MEM_MOVE( dest, source, count ) ft_memmove( dest, source, count ) + + +#define FT_MEM_ZERO( dest, count ) FT_MEM_SET( dest, 0, count ) + +#define FT_ZERO( p ) FT_MEM_ZERO( p, sizeof ( *(p) ) ) + + +#define FT_ARRAY_ZERO( dest, count ) \ + FT_MEM_ZERO( dest, (count) * sizeof ( *(dest) ) ) + +#define FT_ARRAY_COPY( dest, source, count ) \ + FT_MEM_COPY( dest, source, (count) * sizeof ( *(dest) ) ) + +#define FT_ARRAY_MOVE( dest, source, count ) \ + FT_MEM_MOVE( dest, source, (count) * sizeof ( *(dest) ) ) + + + /* + * Return the maximum number of addressable elements in an array. + * We limit ourselves to INT_MAX, rather than UINT_MAX, to avoid + * any problems. + */ +#define FT_ARRAY_MAX( ptr ) ( FT_INT_MAX / sizeof ( *(ptr) ) ) + +#define FT_ARRAY_CHECK( ptr, count ) ( (count) <= FT_ARRAY_MAX( ptr ) ) + + + /*************************************************************************/ + /* */ + /* The following functions macros expect that their pointer argument is */ + /* _typed_ in order to automatically compute array element sizes. */ + /* */ + +#define FT_MEM_NEW_ARRAY( ptr, count ) \ + FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ + sizeof ( *(ptr) ), \ + 0, \ + (FT_Long)(count), \ + NULL, \ + &error ) ) + +#define FT_MEM_RENEW_ARRAY( ptr, cursz, newsz ) \ + FT_ASSIGNP_INNER( ptr, ft_mem_realloc( memory, \ + sizeof ( *(ptr) ), \ + (FT_Long)(cursz), \ + (FT_Long)(newsz), \ + (ptr), \ + &error ) ) + +#define FT_MEM_QNEW_ARRAY( ptr, count ) \ + FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ + sizeof ( *(ptr) ), \ + 0, \ + (FT_Long)(count), \ + NULL, \ + &error ) ) + +#define FT_MEM_QRENEW_ARRAY( ptr, cursz, newsz ) \ + FT_ASSIGNP_INNER( ptr, ft_mem_qrealloc( memory, \ + sizeof ( *(ptr) ), \ + (FT_Long)(cursz), \ + (FT_Long)(newsz), \ + (ptr), \ + &error ) ) + +#define FT_ALLOC( ptr, size ) \ + FT_MEM_SET_ERROR( FT_MEM_ALLOC( ptr, size ) ) + +#define FT_REALLOC( ptr, cursz, newsz ) \ + FT_MEM_SET_ERROR( FT_MEM_REALLOC( ptr, cursz, newsz ) ) + +#define FT_ALLOC_MULT( ptr, count, item_size ) \ + FT_MEM_SET_ERROR( FT_MEM_ALLOC_MULT( ptr, count, item_size ) ) + +#define FT_REALLOC_MULT( ptr, oldcnt, newcnt, itmsz ) \ + FT_MEM_SET_ERROR( FT_MEM_REALLOC_MULT( ptr, oldcnt, \ + newcnt, itmsz ) ) + +#define FT_QALLOC( ptr, size ) \ + FT_MEM_SET_ERROR( FT_MEM_QALLOC( ptr, size ) ) + +#define FT_QREALLOC( ptr, cursz, newsz ) \ + FT_MEM_SET_ERROR( FT_MEM_QREALLOC( ptr, cursz, newsz ) ) + +#define FT_QALLOC_MULT( ptr, count, item_size ) \ + FT_MEM_SET_ERROR( FT_MEM_QALLOC_MULT( ptr, count, item_size ) ) + +#define FT_QREALLOC_MULT( ptr, oldcnt, newcnt, itmsz ) \ + FT_MEM_SET_ERROR( FT_MEM_QREALLOC_MULT( ptr, oldcnt, \ + newcnt, itmsz ) ) + +#define FT_FREE( ptr ) FT_MEM_FREE( ptr ) + +#define FT_NEW( ptr ) FT_MEM_SET_ERROR( FT_MEM_NEW( ptr ) ) + +#define FT_NEW_ARRAY( ptr, count ) \ + FT_MEM_SET_ERROR( FT_MEM_NEW_ARRAY( ptr, count ) ) + +#define FT_RENEW_ARRAY( ptr, curcnt, newcnt ) \ + FT_MEM_SET_ERROR( FT_MEM_RENEW_ARRAY( ptr, curcnt, newcnt ) ) + +#define FT_QNEW( ptr ) \ + FT_MEM_SET_ERROR( FT_MEM_QNEW( ptr ) ) + +#define FT_QNEW_ARRAY( ptr, count ) \ + FT_MEM_SET_ERROR( FT_MEM_NEW_ARRAY( ptr, count ) ) + +#define FT_QRENEW_ARRAY( ptr, curcnt, newcnt ) \ + FT_MEM_SET_ERROR( FT_MEM_RENEW_ARRAY( ptr, curcnt, newcnt ) ) + + + FT_BASE( FT_Pointer ) + ft_mem_strdup( FT_Memory memory, + const char* str, + FT_Error *p_error ); + + FT_BASE( FT_Pointer ) + ft_mem_dup( FT_Memory memory, + const void* address, + FT_ULong size, + FT_Error *p_error ); + + +#define FT_MEM_STRDUP( dst, str ) \ + (dst) = (char*)ft_mem_strdup( memory, (const char*)(str), &error ) + +#define FT_STRDUP( dst, str ) \ + FT_MEM_SET_ERROR( FT_MEM_STRDUP( dst, str ) ) + +#define FT_MEM_DUP( dst, address, size ) \ + (dst) = ft_mem_dup( memory, (address), (FT_ULong)(size), &error ) + +#define FT_DUP( dst, address, size ) \ + FT_MEM_SET_ERROR( FT_MEM_DUP( dst, address, size ) ) + + + /* Return >= 1 if a truncation occurs. */ + /* Return 0 if the source string fits the buffer. */ + /* This is *not* the same as strlcpy(). */ + FT_BASE( FT_Int ) + ft_mem_strcpyn( char* dst, + const char* src, + FT_ULong size ); + +#define FT_STRCPYN( dst, src, size ) \ + ft_mem_strcpyn( (char*)dst, (const char*)(src), (FT_ULong)(size) ) + + /* */ + + +FT_END_HEADER + +#endif /* __FTMEMORY_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/ftobjs.h b/win64/include/freetype/internal/ftobjs.h new file mode 100644 index 00000000..b45a5ed8 --- /dev/null +++ b/win64/include/freetype/internal/ftobjs.h @@ -0,0 +1,1571 @@ +/***************************************************************************/ +/* */ +/* ftobjs.h */ +/* */ +/* The FreeType private base classes (specification). */ +/* */ +/* Copyright 1996-2006, 2008, 2010, 2012-2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + + + /*************************************************************************/ + /* */ + /* This file contains the definition of all internal FreeType classes. */ + /* */ + /*************************************************************************/ + + +#ifndef __FTOBJS_H__ +#define __FTOBJS_H__ + +#include <ft2build.h> +#include FT_RENDER_H +#include FT_SIZES_H +#include FT_LCD_FILTER_H +#include FT_INTERNAL_MEMORY_H +#include FT_INTERNAL_GLYPH_LOADER_H +#include FT_INTERNAL_DRIVER_H +#include FT_INTERNAL_AUTOHINT_H +#include FT_INTERNAL_SERVICE_H +#include FT_INTERNAL_PIC_H + +#ifdef FT_CONFIG_OPTION_INCREMENTAL +#include FT_INCREMENTAL_H +#endif + + +FT_BEGIN_HEADER + + + /*************************************************************************/ + /* */ + /* Some generic definitions. */ + /* */ +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef NULL +#define NULL (void*)0 +#endif + + + /*************************************************************************/ + /* */ + /* The min and max functions missing in C. As usual, be careful not to */ + /* write things like FT_MIN( a++, b++ ) to avoid side effects. */ + /* */ +#define FT_MIN( a, b ) ( (a) < (b) ? (a) : (b) ) +#define FT_MAX( a, b ) ( (a) > (b) ? (a) : (b) ) + +#define FT_ABS( a ) ( (a) < 0 ? -(a) : (a) ) + + /* + * Approximate sqrt(x*x+y*y) using the `alpha max plus beta min' + * algorithm. We use alpha = 1, beta = 3/8, giving us results with a + * largest error less than 7% compared to the exact value. + */ +#define FT_HYPOT( x, y ) \ + ( x = FT_ABS( x ), \ + y = FT_ABS( y ), \ + x > y ? x + ( 3 * y >> 3 ) \ + : y + ( 3 * x >> 3 ) ) + +#define FT_PAD_FLOOR( x, n ) ( (x) & ~((n)-1) ) +#define FT_PAD_ROUND( x, n ) FT_PAD_FLOOR( (x) + ((n)/2), n ) +#define FT_PAD_CEIL( x, n ) FT_PAD_FLOOR( (x) + ((n)-1), n ) + +#define FT_PIX_FLOOR( x ) ( (x) & ~63 ) +#define FT_PIX_ROUND( x ) FT_PIX_FLOOR( (x) + 32 ) +#define FT_PIX_CEIL( x ) FT_PIX_FLOOR( (x) + 63 ) + + + /* + * character classification functions -- since these are used to parse + * font files, we must not use those in <ctypes.h> which are + * locale-dependent + */ +#define ft_isdigit( x ) ( ( (unsigned)(x) - '0' ) < 10U ) + +#define ft_isxdigit( x ) ( ( (unsigned)(x) - '0' ) < 10U || \ + ( (unsigned)(x) - 'a' ) < 6U || \ + ( (unsigned)(x) - 'A' ) < 6U ) + + /* the next two macros assume ASCII representation */ +#define ft_isupper( x ) ( ( (unsigned)(x) - 'A' ) < 26U ) +#define ft_islower( x ) ( ( (unsigned)(x) - 'a' ) < 26U ) + +#define ft_isalpha( x ) ( ft_isupper( x ) || ft_islower( x ) ) +#define ft_isalnum( x ) ( ft_isdigit( x ) || ft_isalpha( x ) ) + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** ****/ + /**** C H A R M A P S ****/ + /**** ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + /* handle to internal charmap object */ + typedef struct FT_CMapRec_* FT_CMap; + + /* handle to charmap class structure */ + typedef const struct FT_CMap_ClassRec_* FT_CMap_Class; + + /* internal charmap object structure */ + typedef struct FT_CMapRec_ + { + FT_CharMapRec charmap; + FT_CMap_Class clazz; + + } FT_CMapRec; + + /* typecase any pointer to a charmap handle */ +#define FT_CMAP( x ) ((FT_CMap)( x )) + + /* obvious macros */ +#define FT_CMAP_PLATFORM_ID( x ) FT_CMAP( x )->charmap.platform_id +#define FT_CMAP_ENCODING_ID( x ) FT_CMAP( x )->charmap.encoding_id +#define FT_CMAP_ENCODING( x ) FT_CMAP( x )->charmap.encoding +#define FT_CMAP_FACE( x ) FT_CMAP( x )->charmap.face + + + /* class method definitions */ + typedef FT_Error + (*FT_CMap_InitFunc)( FT_CMap cmap, + FT_Pointer init_data ); + + typedef void + (*FT_CMap_DoneFunc)( FT_CMap cmap ); + + typedef FT_UInt + (*FT_CMap_CharIndexFunc)( FT_CMap cmap, + FT_UInt32 char_code ); + + typedef FT_UInt + (*FT_CMap_CharNextFunc)( FT_CMap cmap, + FT_UInt32 *achar_code ); + + typedef FT_UInt + (*FT_CMap_CharVarIndexFunc)( FT_CMap cmap, + FT_CMap unicode_cmap, + FT_UInt32 char_code, + FT_UInt32 variant_selector ); + + typedef FT_Bool + (*FT_CMap_CharVarIsDefaultFunc)( FT_CMap cmap, + FT_UInt32 char_code, + FT_UInt32 variant_selector ); + + typedef FT_UInt32 * + (*FT_CMap_VariantListFunc)( FT_CMap cmap, + FT_Memory mem ); + + typedef FT_UInt32 * + (*FT_CMap_CharVariantListFunc)( FT_CMap cmap, + FT_Memory mem, + FT_UInt32 char_code ); + + typedef FT_UInt32 * + (*FT_CMap_VariantCharListFunc)( FT_CMap cmap, + FT_Memory mem, + FT_UInt32 variant_selector ); + + + typedef struct FT_CMap_ClassRec_ + { + FT_ULong size; + FT_CMap_InitFunc init; + FT_CMap_DoneFunc done; + FT_CMap_CharIndexFunc char_index; + FT_CMap_CharNextFunc char_next; + + /* Subsequent entries are special ones for format 14 -- the variant */ + /* selector subtable which behaves like no other */ + + FT_CMap_CharVarIndexFunc char_var_index; + FT_CMap_CharVarIsDefaultFunc char_var_default; + FT_CMap_VariantListFunc variant_list; + FT_CMap_CharVariantListFunc charvariant_list; + FT_CMap_VariantCharListFunc variantchar_list; + + } FT_CMap_ClassRec; + + +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DECLARE_CMAP_CLASS( class_ ) \ + FT_CALLBACK_TABLE const FT_CMap_ClassRec class_; + +#define FT_DEFINE_CMAP_CLASS( \ + class_, \ + size_, \ + init_, \ + done_, \ + char_index_, \ + char_next_, \ + char_var_index_, \ + char_var_default_, \ + variant_list_, \ + charvariant_list_, \ + variantchar_list_ ) \ + FT_CALLBACK_TABLE_DEF \ + const FT_CMap_ClassRec class_ = \ + { \ + size_, \ + init_, \ + done_, \ + char_index_, \ + char_next_, \ + char_var_index_, \ + char_var_default_, \ + variant_list_, \ + charvariant_list_, \ + variantchar_list_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DECLARE_CMAP_CLASS( class_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Library library, \ + FT_CMap_ClassRec* clazz ); + +#define FT_DEFINE_CMAP_CLASS( \ + class_, \ + size_, \ + init_, \ + done_, \ + char_index_, \ + char_next_, \ + char_var_index_, \ + char_var_default_, \ + variant_list_, \ + charvariant_list_, \ + variantchar_list_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Library library, \ + FT_CMap_ClassRec* clazz ) \ + { \ + FT_UNUSED( library ); \ + \ + clazz->size = size_; \ + clazz->init = init_; \ + clazz->done = done_; \ + clazz->char_index = char_index_; \ + clazz->char_next = char_next_; \ + clazz->char_var_index = char_var_index_; \ + clazz->char_var_default = char_var_default_; \ + clazz->variant_list = variant_list_; \ + clazz->charvariant_list = charvariant_list_; \ + clazz->variantchar_list = variantchar_list_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + + /* create a new charmap and add it to charmap->face */ + FT_BASE( FT_Error ) + FT_CMap_New( FT_CMap_Class clazz, + FT_Pointer init_data, + FT_CharMap charmap, + FT_CMap *acmap ); + + /* destroy a charmap and remove it from face's list */ + FT_BASE( void ) + FT_CMap_Done( FT_CMap cmap ); + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Face_InternalRec */ + /* */ + /* <Description> */ + /* This structure contains the internal fields of each FT_Face */ + /* object. These fields may change between different releases of */ + /* FreeType. */ + /* */ + /* <Fields> */ + /* max_points :: */ + /* The maximum number of points used to store the vectorial outline */ + /* of any glyph in this face. If this value cannot be known in */ + /* advance, or if the face isn't scalable, this should be set to 0. */ + /* Only relevant for scalable formats. */ + /* */ + /* max_contours :: */ + /* The maximum number of contours used to store the vectorial */ + /* outline of any glyph in this face. If this value cannot be */ + /* known in advance, or if the face isn't scalable, this should be */ + /* set to 0. Only relevant for scalable formats. */ + /* */ + /* transform_matrix :: */ + /* A 2x2 matrix of 16.16 coefficients used to transform glyph */ + /* outlines after they are loaded from the font. Only used by the */ + /* convenience functions. */ + /* */ + /* transform_delta :: */ + /* A translation vector used to transform glyph outlines after they */ + /* are loaded from the font. Only used by the convenience */ + /* functions. */ + /* */ + /* transform_flags :: */ + /* Some flags used to classify the transform. Only used by the */ + /* convenience functions. */ + /* */ + /* services :: */ + /* A cache for frequently used services. It should be only */ + /* accessed with the macro `FT_FACE_LOOKUP_SERVICE'. */ + /* */ + /* incremental_interface :: */ + /* If non-null, the interface through which glyph data and metrics */ + /* are loaded incrementally for faces that do not provide all of */ + /* this data when first opened. This field exists only if */ + /* @FT_CONFIG_OPTION_INCREMENTAL is defined. */ + /* */ + /* ignore_unpatented_hinter :: */ + /* This boolean flag instructs the glyph loader to ignore the */ + /* native font hinter, if one is found. This is exclusively used */ + /* in the case when the unpatented hinter is compiled within the */ + /* library. */ + /* */ + /* refcount :: */ + /* A counter initialized to~1 at the time an @FT_Face structure is */ + /* created. @FT_Reference_Face increments this counter, and */ + /* @FT_Done_Face only destroys a face if the counter is~1, */ + /* otherwise it simply decrements it. */ + /* */ + typedef struct FT_Face_InternalRec_ + { + FT_Matrix transform_matrix; + FT_Vector transform_delta; + FT_Int transform_flags; + + FT_ServiceCacheRec services; + +#ifdef FT_CONFIG_OPTION_INCREMENTAL + FT_Incremental_InterfaceRec* incremental_interface; +#endif + + FT_Bool ignore_unpatented_hinter; + FT_Int refcount; + + } FT_Face_InternalRec; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Slot_InternalRec */ + /* */ + /* <Description> */ + /* This structure contains the internal fields of each FT_GlyphSlot */ + /* object. These fields may change between different releases of */ + /* FreeType. */ + /* */ + /* <Fields> */ + /* loader :: The glyph loader object used to load outlines */ + /* into the glyph slot. */ + /* */ + /* flags :: Possible values are zero or */ + /* FT_GLYPH_OWN_BITMAP. The latter indicates */ + /* that the FT_GlyphSlot structure owns the */ + /* bitmap buffer. */ + /* */ + /* glyph_transformed :: Boolean. Set to TRUE when the loaded glyph */ + /* must be transformed through a specific */ + /* font transformation. This is _not_ the same */ + /* as the face transform set through */ + /* FT_Set_Transform(). */ + /* */ + /* glyph_matrix :: The 2x2 matrix corresponding to the glyph */ + /* transformation, if necessary. */ + /* */ + /* glyph_delta :: The 2d translation vector corresponding to */ + /* the glyph transformation, if necessary. */ + /* */ + /* glyph_hints :: Format-specific glyph hints management. */ + /* */ + +#define FT_GLYPH_OWN_BITMAP 0x1 + + typedef struct FT_Slot_InternalRec_ + { + FT_GlyphLoader loader; + FT_UInt flags; + FT_Bool glyph_transformed; + FT_Matrix glyph_matrix; + FT_Vector glyph_delta; + void* glyph_hints; + + } FT_GlyphSlot_InternalRec; + + +#if 0 + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_Size_InternalRec */ + /* */ + /* <Description> */ + /* This structure contains the internal fields of each FT_Size */ + /* object. Currently, it's empty. */ + /* */ + /*************************************************************************/ + + typedef struct FT_Size_InternalRec_ + { + /* empty */ + + } FT_Size_InternalRec; + +#endif + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** ****/ + /**** M O D U L E S ****/ + /**** ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_ModuleRec */ + /* */ + /* <Description> */ + /* A module object instance. */ + /* */ + /* <Fields> */ + /* clazz :: A pointer to the module's class. */ + /* */ + /* library :: A handle to the parent library object. */ + /* */ + /* memory :: A handle to the memory manager. */ + /* */ + typedef struct FT_ModuleRec_ + { + FT_Module_Class* clazz; + FT_Library library; + FT_Memory memory; + + } FT_ModuleRec; + + + /* typecast an object to an FT_Module */ +#define FT_MODULE( x ) ((FT_Module)( x )) +#define FT_MODULE_CLASS( x ) FT_MODULE( x )->clazz +#define FT_MODULE_LIBRARY( x ) FT_MODULE( x )->library +#define FT_MODULE_MEMORY( x ) FT_MODULE( x )->memory + + +#define FT_MODULE_IS_DRIVER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ + FT_MODULE_FONT_DRIVER ) + +#define FT_MODULE_IS_RENDERER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ + FT_MODULE_RENDERER ) + +#define FT_MODULE_IS_HINTER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ + FT_MODULE_HINTER ) + +#define FT_MODULE_IS_STYLER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ + FT_MODULE_STYLER ) + +#define FT_DRIVER_IS_SCALABLE( x ) ( FT_MODULE_CLASS( x )->module_flags & \ + FT_MODULE_DRIVER_SCALABLE ) + +#define FT_DRIVER_USES_OUTLINES( x ) !( FT_MODULE_CLASS( x )->module_flags & \ + FT_MODULE_DRIVER_NO_OUTLINES ) + +#define FT_DRIVER_HAS_HINTER( x ) ( FT_MODULE_CLASS( x )->module_flags & \ + FT_MODULE_DRIVER_HAS_HINTER ) + + + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Module_Interface */ + /* */ + /* <Description> */ + /* Finds a module and returns its specific interface as a typeless */ + /* pointer. */ + /* */ + /* <Input> */ + /* library :: A handle to the library object. */ + /* */ + /* module_name :: The module's name (as an ASCII string). */ + /* */ + /* <Return> */ + /* A module-specific interface if available, 0 otherwise. */ + /* */ + /* <Note> */ + /* You should better be familiar with FreeType internals to know */ + /* which module to look for, and what its interface is :-) */ + /* */ + FT_BASE( const void* ) + FT_Get_Module_Interface( FT_Library library, + const char* mod_name ); + + FT_BASE( FT_Pointer ) + ft_module_get_service( FT_Module module, + const char* service_id ); + + /* */ + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** ****/ + /**** F A C E, S I Z E & G L Y P H S L O T O B J E C T S ****/ + /**** ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + /* a few macros used to perform easy typecasts with minimal brain damage */ + +#define FT_FACE( x ) ((FT_Face)(x)) +#define FT_SIZE( x ) ((FT_Size)(x)) +#define FT_SLOT( x ) ((FT_GlyphSlot)(x)) + +#define FT_FACE_DRIVER( x ) FT_FACE( x )->driver +#define FT_FACE_LIBRARY( x ) FT_FACE_DRIVER( x )->root.library +#define FT_FACE_MEMORY( x ) FT_FACE( x )->memory +#define FT_FACE_STREAM( x ) FT_FACE( x )->stream + +#define FT_SIZE_FACE( x ) FT_SIZE( x )->face +#define FT_SLOT_FACE( x ) FT_SLOT( x )->face + +#define FT_FACE_SLOT( x ) FT_FACE( x )->glyph +#define FT_FACE_SIZE( x ) FT_FACE( x )->size + + + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_New_GlyphSlot */ + /* */ + /* <Description> */ + /* It is sometimes useful to have more than one glyph slot for a */ + /* given face object. This function is used to create additional */ + /* slots. All of them are automatically discarded when the face is */ + /* destroyed. */ + /* */ + /* <Input> */ + /* face :: A handle to a parent face object. */ + /* */ + /* <Output> */ + /* aslot :: A handle to a new glyph slot object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0 means success. */ + /* */ + FT_BASE( FT_Error ) + FT_New_GlyphSlot( FT_Face face, + FT_GlyphSlot *aslot ); + + + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Done_GlyphSlot */ + /* */ + /* <Description> */ + /* Destroys a given glyph slot. Remember however that all slots are */ + /* automatically destroyed with its parent. Using this function is */ + /* not always mandatory. */ + /* */ + /* <Input> */ + /* slot :: A handle to a target glyph slot. */ + /* */ + FT_BASE( void ) + FT_Done_GlyphSlot( FT_GlyphSlot slot ); + + /* */ + +#define FT_REQUEST_WIDTH( req ) \ + ( (req)->horiResolution \ + ? (FT_Pos)( (req)->width * (req)->horiResolution + 36 ) / 72 \ + : (req)->width ) + +#define FT_REQUEST_HEIGHT( req ) \ + ( (req)->vertResolution \ + ? (FT_Pos)( (req)->height * (req)->vertResolution + 36 ) / 72 \ + : (req)->height ) + + + /* Set the metrics according to a bitmap strike. */ + FT_BASE( void ) + FT_Select_Metrics( FT_Face face, + FT_ULong strike_index ); + + + /* Set the metrics according to a size request. */ + FT_BASE( void ) + FT_Request_Metrics( FT_Face face, + FT_Size_Request req ); + + + /* Match a size request against `available_sizes'. */ + FT_BASE( FT_Error ) + FT_Match_Size( FT_Face face, + FT_Size_Request req, + FT_Bool ignore_width, + FT_ULong* size_index ); + + + /* Use the horizontal metrics to synthesize the vertical metrics. */ + /* If `advance' is zero, it is also synthesized. */ + FT_BASE( void ) + ft_synthesize_vertical_metrics( FT_Glyph_Metrics* metrics, + FT_Pos advance ); + + + /* Free the bitmap of a given glyphslot when needed (i.e., only when it */ + /* was allocated with ft_glyphslot_alloc_bitmap). */ + FT_BASE( void ) + ft_glyphslot_free_bitmap( FT_GlyphSlot slot ); + + + /* Allocate a new bitmap buffer in a glyph slot. */ + FT_BASE( FT_Error ) + ft_glyphslot_alloc_bitmap( FT_GlyphSlot slot, + FT_ULong size ); + + + /* Set the bitmap buffer in a glyph slot to a given pointer. The buffer */ + /* will not be freed by a later call to ft_glyphslot_free_bitmap. */ + FT_BASE( void ) + ft_glyphslot_set_bitmap( FT_GlyphSlot slot, + FT_Byte* buffer ); + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** ****/ + /**** R E N D E R E R S ****/ + /**** ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + +#define FT_RENDERER( x ) ((FT_Renderer)( x )) +#define FT_GLYPH( x ) ((FT_Glyph)( x )) +#define FT_BITMAP_GLYPH( x ) ((FT_BitmapGlyph)( x )) +#define FT_OUTLINE_GLYPH( x ) ((FT_OutlineGlyph)( x )) + + + typedef struct FT_RendererRec_ + { + FT_ModuleRec root; + FT_Renderer_Class* clazz; + FT_Glyph_Format glyph_format; + FT_Glyph_Class glyph_class; + + FT_Raster raster; + FT_Raster_Render_Func raster_render; + FT_Renderer_RenderFunc render; + + } FT_RendererRec; + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** ****/ + /**** F O N T D R I V E R S ****/ + /**** ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + /* typecast a module into a driver easily */ +#define FT_DRIVER( x ) ((FT_Driver)(x)) + + /* typecast a module as a driver, and get its driver class */ +#define FT_DRIVER_CLASS( x ) FT_DRIVER( x )->clazz + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_DriverRec */ + /* */ + /* <Description> */ + /* The root font driver class. A font driver is responsible for */ + /* managing and loading font files of a given format. */ + /* */ + /* <Fields> */ + /* root :: Contains the fields of the root module class. */ + /* */ + /* clazz :: A pointer to the font driver's class. Note that */ + /* this is NOT root.clazz. `class' wasn't used */ + /* as it is a reserved word in C++. */ + /* */ + /* faces_list :: The list of faces currently opened by this */ + /* driver. */ + /* */ + /* glyph_loader :: The glyph loader for all faces managed by this */ + /* driver. This object isn't defined for unscalable */ + /* formats. */ + /* */ + typedef struct FT_DriverRec_ + { + FT_ModuleRec root; + FT_Driver_Class clazz; + FT_ListRec faces_list; + FT_GlyphLoader glyph_loader; + + } FT_DriverRec; + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** ****/ + /**** L I B R A R I E S ****/ + /**** ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + /* This hook is used by the TrueType debugger. It must be set to an */ + /* alternate truetype bytecode interpreter function. */ +#define FT_DEBUG_HOOK_TRUETYPE 0 + + + /* Set this debug hook to a non-null pointer to force unpatented hinting */ + /* for all faces when both TT_USE_BYTECODE_INTERPRETER and */ + /* TT_CONFIG_OPTION_UNPATENTED_HINTING are defined. This is only used */ + /* during debugging. */ +#define FT_DEBUG_HOOK_UNPATENTED_HINTING 1 + + + typedef void (*FT_Bitmap_LcdFilterFunc)( FT_Bitmap* bitmap, + FT_Render_Mode render_mode, + FT_Library library ); + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* FT_LibraryRec */ + /* */ + /* <Description> */ + /* The FreeType library class. This is the root of all FreeType */ + /* data. Use FT_New_Library() to create a library object, and */ + /* FT_Done_Library() to discard it and all child objects. */ + /* */ + /* <Fields> */ + /* memory :: The library's memory object. Manages memory */ + /* allocation. */ + /* */ + /* version_major :: The major version number of the library. */ + /* */ + /* version_minor :: The minor version number of the library. */ + /* */ + /* version_patch :: The current patch level of the library. */ + /* */ + /* num_modules :: The number of modules currently registered */ + /* within this library. This is set to 0 for new */ + /* libraries. New modules are added through the */ + /* FT_Add_Module() API function. */ + /* */ + /* modules :: A table used to store handles to the currently */ + /* registered modules. Note that each font driver */ + /* contains a list of its opened faces. */ + /* */ + /* renderers :: The list of renderers currently registered */ + /* within the library. */ + /* */ + /* cur_renderer :: The current outline renderer. This is a */ + /* shortcut used to avoid parsing the list on */ + /* each call to FT_Outline_Render(). It is a */ + /* handle to the current renderer for the */ + /* FT_GLYPH_FORMAT_OUTLINE format. */ + /* */ + /* auto_hinter :: XXX */ + /* */ + /* raster_pool :: The raster object's render pool. This can */ + /* ideally be changed dynamically at run-time. */ + /* */ + /* raster_pool_size :: The size of the render pool in bytes. */ + /* */ + /* debug_hooks :: XXX */ + /* */ + /* lcd_filter :: If subpixel rendering is activated, the */ + /* selected LCD filter mode. */ + /* */ + /* lcd_extra :: If subpixel rendering is activated, the number */ + /* of extra pixels needed for the LCD filter. */ + /* */ + /* lcd_weights :: If subpixel rendering is activated, the LCD */ + /* filter weights, if any. */ + /* */ + /* lcd_filter_func :: If subpixel rendering is activated, the LCD */ + /* filtering callback function. */ + /* */ + /* pic_container :: Contains global structs and tables, instead */ + /* of defining them globallly. */ + /* */ + /* refcount :: A counter initialized to~1 at the time an */ + /* @FT_Library structure is created. */ + /* @FT_Reference_Library increments this counter, */ + /* and @FT_Done_Library only destroys a library */ + /* if the counter is~1, otherwise it simply */ + /* decrements it. */ + /* */ + typedef struct FT_LibraryRec_ + { + FT_Memory memory; /* library's memory manager */ + + FT_Int version_major; + FT_Int version_minor; + FT_Int version_patch; + + FT_UInt num_modules; + FT_Module modules[FT_MAX_MODULES]; /* module objects */ + + FT_ListRec renderers; /* list of renderers */ + FT_Renderer cur_renderer; /* current outline renderer */ + FT_Module auto_hinter; + + FT_Byte* raster_pool; /* scan-line conversion */ + /* render pool */ + FT_ULong raster_pool_size; /* size of render pool in bytes */ + + FT_DebugHook_Func debug_hooks[4]; + +#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING + FT_LcdFilter lcd_filter; + FT_Int lcd_extra; /* number of extra pixels */ + FT_Byte lcd_weights[7]; /* filter weights, if any */ + FT_Bitmap_LcdFilterFunc lcd_filter_func; /* filtering callback */ +#endif + +#ifdef FT_CONFIG_OPTION_PIC + FT_PIC_Container pic_container; +#endif + + FT_Int refcount; + + } FT_LibraryRec; + + + FT_BASE( FT_Renderer ) + FT_Lookup_Renderer( FT_Library library, + FT_Glyph_Format format, + FT_ListNode* node ); + + FT_BASE( FT_Error ) + FT_Render_Glyph_Internal( FT_Library library, + FT_GlyphSlot slot, + FT_Render_Mode render_mode ); + + typedef const char* + (*FT_Face_GetPostscriptNameFunc)( FT_Face face ); + + typedef FT_Error + (*FT_Face_GetGlyphNameFunc)( FT_Face face, + FT_UInt glyph_index, + FT_Pointer buffer, + FT_UInt buffer_max ); + + typedef FT_UInt + (*FT_Face_GetGlyphNameIndexFunc)( FT_Face face, + FT_String* glyph_name ); + + +#ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM + + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_New_Memory */ + /* */ + /* <Description> */ + /* Creates a new memory object. */ + /* */ + /* <Return> */ + /* A pointer to the new memory object. 0 in case of error. */ + /* */ + FT_BASE( FT_Memory ) + FT_New_Memory( void ); + + + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Done_Memory */ + /* */ + /* <Description> */ + /* Discards memory manager. */ + /* */ + /* <Input> */ + /* memory :: A handle to the memory manager. */ + /* */ + FT_BASE( void ) + FT_Done_Memory( FT_Memory memory ); + +#endif /* !FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM */ + + + /* Define default raster's interface. The default raster is located in */ + /* `src/base/ftraster.c'. */ + /* */ + /* Client applications can register new rasters through the */ + /* FT_Set_Raster() API. */ + +#ifndef FT_NO_DEFAULT_RASTER + FT_EXPORT_VAR( FT_Raster_Funcs ) ft_default_raster; +#endif + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** ****/ + /**** P I C S U P P O R T ****/ + /**** ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + /* PIC support macros for ftimage.h */ + + + /*************************************************************************/ + /* */ + /* <Macro> */ + /* FT_DEFINE_OUTLINE_FUNCS */ + /* */ + /* <Description> */ + /* Used to initialize an instance of FT_Outline_Funcs struct. */ + /* When FT_CONFIG_OPTION_PIC is defined an init funtion will need to */ + /* be called with a pre-allocated structure to be filled. */ + /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ + /* allocated in the global scope (or the scope where the macro */ + /* is used). */ + /* */ +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_OUTLINE_FUNCS( \ + class_, \ + move_to_, \ + line_to_, \ + conic_to_, \ + cubic_to_, \ + shift_, \ + delta_ ) \ + static const FT_Outline_Funcs class_ = \ + { \ + move_to_, \ + line_to_, \ + conic_to_, \ + cubic_to_, \ + shift_, \ + delta_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_OUTLINE_FUNCS( \ + class_, \ + move_to_, \ + line_to_, \ + conic_to_, \ + cubic_to_, \ + shift_, \ + delta_ ) \ + static FT_Error \ + Init_Class_ ## class_( FT_Outline_Funcs* clazz ) \ + { \ + clazz->move_to = move_to_; \ + clazz->line_to = line_to_; \ + clazz->conic_to = conic_to_; \ + clazz->cubic_to = cubic_to_; \ + clazz->shift = shift_; \ + clazz->delta = delta_; \ + \ + return FT_Err_Ok; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + + /*************************************************************************/ + /* */ + /* <Macro> */ + /* FT_DEFINE_RASTER_FUNCS */ + /* */ + /* <Description> */ + /* Used to initialize an instance of FT_Raster_Funcs struct. */ + /* When FT_CONFIG_OPTION_PIC is defined an init funtion will need to */ + /* be called with a pre-allocated structure to be filled. */ + /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ + /* allocated in the global scope (or the scope where the macro */ + /* is used). */ + /* */ +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_RASTER_FUNCS( \ + class_, \ + glyph_format_, \ + raster_new_, \ + raster_reset_, \ + raster_set_mode_, \ + raster_render_, \ + raster_done_ ) \ + const FT_Raster_Funcs class_ = \ + { \ + glyph_format_, \ + raster_new_, \ + raster_reset_, \ + raster_set_mode_, \ + raster_render_, \ + raster_done_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_RASTER_FUNCS( \ + class_, \ + glyph_format_, \ + raster_new_, \ + raster_reset_, \ + raster_set_mode_, \ + raster_render_, \ + raster_done_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Raster_Funcs* clazz ) \ + { \ + clazz->glyph_format = glyph_format_; \ + clazz->raster_new = raster_new_; \ + clazz->raster_reset = raster_reset_; \ + clazz->raster_set_mode = raster_set_mode_; \ + clazz->raster_render = raster_render_; \ + clazz->raster_done = raster_done_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + + /* PIC support macros for ftrender.h */ + + + /*************************************************************************/ + /* */ + /* <Macro> */ + /* FT_DEFINE_GLYPH */ + /* */ + /* <Description> */ + /* Used to initialize an instance of FT_Glyph_Class struct. */ + /* When FT_CONFIG_OPTION_PIC is defined an init funtion will need to */ + /* be called with a pre-allocated stcture to be filled. */ + /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ + /* allocated in the global scope (or the scope where the macro */ + /* is used). */ + /* */ +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_GLYPH( \ + class_, \ + size_, \ + format_, \ + init_, \ + done_, \ + copy_, \ + transform_, \ + bbox_, \ + prepare_ ) \ + FT_CALLBACK_TABLE_DEF \ + const FT_Glyph_Class class_ = \ + { \ + size_, \ + format_, \ + init_, \ + done_, \ + copy_, \ + transform_, \ + bbox_, \ + prepare_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_GLYPH( \ + class_, \ + size_, \ + format_, \ + init_, \ + done_, \ + copy_, \ + transform_, \ + bbox_, \ + prepare_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Glyph_Class* clazz ) \ + { \ + clazz->glyph_size = size_; \ + clazz->glyph_format = format_; \ + clazz->glyph_init = init_; \ + clazz->glyph_done = done_; \ + clazz->glyph_copy = copy_; \ + clazz->glyph_transform = transform_; \ + clazz->glyph_bbox = bbox_; \ + clazz->glyph_prepare = prepare_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + + /*************************************************************************/ + /* */ + /* <Macro> */ + /* FT_DECLARE_RENDERER */ + /* */ + /* <Description> */ + /* Used to create a forward declaration of a */ + /* FT_Renderer_Class struct instance. */ + /* */ + /* <Macro> */ + /* FT_DEFINE_RENDERER */ + /* */ + /* <Description> */ + /* Used to initialize an instance of FT_Renderer_Class struct. */ + /* */ + /* When FT_CONFIG_OPTION_PIC is defined a `create' funtion will need */ + /* to be called with a pointer where the allocated structure is */ + /* returned. And when it is no longer needed a `destroy' function */ + /* needs to be called to release that allocation. */ + /* `fcinit.c' (ft_create_default_module_classes) already contains */ + /* a mechanism to call these functions for the default modules */ + /* described in `ftmodule.h'. */ + /* */ + /* Notice that the created `create' and `destroy' functions call */ + /* `pic_init' and `pic_free' to allow you to manually allocate and */ + /* initialize any additional global data, like a module specific */ + /* interface, and put them in the global pic container defined in */ + /* `ftpic.h'. If you don't need them just implement the functions as */ + /* empty to resolve the link error. Also the `pic_init' and */ + /* `pic_free' functions should be declared in `pic.h', to be referred */ + /* by the renderer definition calling `FT_DEFINE_RENDERER' in the */ + /* following. */ + /* */ + /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ + /* allocated in the global scope (or the scope where the macro */ + /* is used). */ + /* */ +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DECLARE_RENDERER( class_ ) \ + FT_EXPORT_VAR( const FT_Renderer_Class ) class_; + +#define FT_DEFINE_RENDERER( \ + class_, \ + flags_, \ + size_, \ + name_, \ + version_, \ + requires_, \ + interface_, \ + init_, \ + done_, \ + get_interface_, \ + glyph_format_, \ + render_glyph_, \ + transform_glyph_, \ + get_glyph_cbox_, \ + set_mode_, \ + raster_class_ ) \ + FT_CALLBACK_TABLE_DEF \ + const FT_Renderer_Class class_ = \ + { \ + FT_DEFINE_ROOT_MODULE( flags_, \ + size_, \ + name_, \ + version_, \ + requires_, \ + interface_, \ + init_, \ + done_, \ + get_interface_ ) \ + glyph_format_, \ + \ + render_glyph_, \ + transform_glyph_, \ + get_glyph_cbox_, \ + set_mode_, \ + \ + raster_class_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DECLARE_RENDERER( class_ ) FT_DECLARE_MODULE( class_ ) + +#define FT_DEFINE_RENDERER( \ + class_, \ + flags_, \ + size_, \ + name_, \ + version_, \ + requires_, \ + interface_, \ + init_, \ + done_, \ + get_interface_, \ + glyph_format_, \ + render_glyph_, \ + transform_glyph_, \ + get_glyph_cbox_, \ + set_mode_, \ + raster_class_ ) \ + void \ + FT_Destroy_Class_ ## class_( FT_Library library, \ + FT_Module_Class* clazz ) \ + { \ + FT_Renderer_Class* rclazz = (FT_Renderer_Class*)clazz; \ + FT_Memory memory = library->memory; \ + \ + \ + class_ ## _pic_free( library ); \ + if ( rclazz ) \ + FT_FREE( rclazz ); \ + } \ + \ + \ + FT_Error \ + FT_Create_Class_ ## class_( FT_Library library, \ + FT_Module_Class** output_class ) \ + { \ + FT_Renderer_Class* clazz = NULL; \ + FT_Error error; \ + FT_Memory memory = library->memory; \ + \ + \ + if ( FT_ALLOC( clazz, sizeof ( *clazz ) ) ) \ + return error; \ + \ + error = class_ ## _pic_init( library ); \ + if ( error ) \ + { \ + FT_FREE( clazz ); \ + return error; \ + } \ + \ + FT_DEFINE_ROOT_MODULE( flags_, \ + size_, \ + name_, \ + version_, \ + requires_, \ + interface_, \ + init_, \ + done_, \ + get_interface_ ) \ + \ + clazz->glyph_format = glyph_format_; \ + \ + clazz->render_glyph = render_glyph_; \ + clazz->transform_glyph = transform_glyph_; \ + clazz->get_glyph_cbox = get_glyph_cbox_; \ + clazz->set_mode = set_mode_; \ + \ + clazz->raster_class = raster_class_; \ + \ + *output_class = (FT_Module_Class*)clazz; \ + \ + return FT_Err_Ok; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + + /* PIC support macros for ftmodapi.h **/ + + +#ifdef FT_CONFIG_OPTION_PIC + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Module_Creator */ + /* */ + /* <Description> */ + /* A function used to create (allocate) a new module class object. */ + /* The object's members are initialized, but the module itself is */ + /* not. */ + /* */ + /* <Input> */ + /* memory :: A handle to the memory manager. */ + /* output_class :: Initialized with the newly allocated class. */ + /* */ + typedef FT_Error + (*FT_Module_Creator)( FT_Memory memory, + FT_Module_Class** output_class ); + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* FT_Module_Destroyer */ + /* */ + /* <Description> */ + /* A function used to destroy (deallocate) a module class object. */ + /* */ + /* <Input> */ + /* memory :: A handle to the memory manager. */ + /* clazz :: Module class to destroy. */ + /* */ + typedef void + (*FT_Module_Destroyer)( FT_Memory memory, + FT_Module_Class* clazz ); + +#endif + + + /*************************************************************************/ + /* */ + /* <Macro> */ + /* FT_DECLARE_MODULE */ + /* */ + /* <Description> */ + /* Used to create a forward declaration of a */ + /* FT_Module_Class struct instance. */ + /* */ + /* <Macro> */ + /* FT_DEFINE_MODULE */ + /* */ + /* <Description> */ + /* Used to initialize an instance of an FT_Module_Class struct. */ + /* */ + /* When FT_CONFIG_OPTION_PIC is defined a `create' funtion needs to */ + /* be called with a pointer where the allocated structure is */ + /* returned. And when it is no longer needed a `destroy' function */ + /* needs to be called to release that allocation. */ + /* `fcinit.c' (ft_create_default_module_classes) already contains */ + /* a mechanism to call these functions for the default modules */ + /* described in `ftmodule.h'. */ + /* */ + /* Notice that the created `create' and `destroy' functions call */ + /* `pic_init' and `pic_free' to allow you to manually allocate and */ + /* initialize any additional global data, like a module specific */ + /* interface, and put them in the global pic container defined in */ + /* `ftpic.h'. If you don't need them just implement the functions as */ + /* empty to resolve the link error. Also the `pic_init' and */ + /* `pic_free' functions should be declared in `pic.h', to be referred */ + /* by the module definition calling `FT_DEFINE_MODULE' in the */ + /* following. */ + /* */ + /* When FT_CONFIG_OPTION_PIC is not defined the struct will be */ + /* allocated in the global scope (or the scope where the macro */ + /* is used). */ + /* */ + /* <Macro> */ + /* FT_DEFINE_ROOT_MODULE */ + /* */ + /* <Description> */ + /* Used to initialize an instance of an FT_Module_Class struct inside */ + /* another struct that contains it or in a function that initializes */ + /* that containing struct. */ + /* */ +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DECLARE_MODULE( class_ ) \ + FT_CALLBACK_TABLE \ + const FT_Module_Class class_; + +#define FT_DEFINE_ROOT_MODULE( \ + flags_, \ + size_, \ + name_, \ + version_, \ + requires_, \ + interface_, \ + init_, \ + done_, \ + get_interface_ ) \ + { \ + flags_, \ + size_, \ + \ + name_, \ + version_, \ + requires_, \ + \ + interface_, \ + \ + init_, \ + done_, \ + get_interface_, \ + }, + +#define FT_DEFINE_MODULE( \ + class_, \ + flags_, \ + size_, \ + name_, \ + version_, \ + requires_, \ + interface_, \ + init_, \ + done_, \ + get_interface_ ) \ + FT_CALLBACK_TABLE_DEF \ + const FT_Module_Class class_ = \ + { \ + flags_, \ + size_, \ + \ + name_, \ + version_, \ + requires_, \ + \ + interface_, \ + \ + init_, \ + done_, \ + get_interface_, \ + }; + + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DECLARE_MODULE( class_ ) \ + FT_Error \ + FT_Create_Class_ ## class_( FT_Library library, \ + FT_Module_Class** output_class ); \ + void \ + FT_Destroy_Class_ ## class_( FT_Library library, \ + FT_Module_Class* clazz ); + +#define FT_DEFINE_ROOT_MODULE( \ + flags_, \ + size_, \ + name_, \ + version_, \ + requires_, \ + interface_, \ + init_, \ + done_, \ + get_interface_ ) \ + clazz->root.module_flags = flags_; \ + clazz->root.module_size = size_; \ + clazz->root.module_name = name_; \ + clazz->root.module_version = version_; \ + clazz->root.module_requires = requires_; \ + \ + clazz->root.module_interface = interface_; \ + \ + clazz->root.module_init = init_; \ + clazz->root.module_done = done_; \ + clazz->root.get_interface = get_interface_; + +#define FT_DEFINE_MODULE( \ + class_, \ + flags_, \ + size_, \ + name_, \ + version_, \ + requires_, \ + interface_, \ + init_, \ + done_, \ + get_interface_ ) \ + void \ + FT_Destroy_Class_ ## class_( FT_Library library, \ + FT_Module_Class* clazz ) \ + { \ + FT_Memory memory = library->memory; \ + \ + \ + class_ ## _pic_free( library ); \ + if ( clazz ) \ + FT_FREE( clazz ); \ + } \ + \ + \ + FT_Error \ + FT_Create_Class_ ## class_( FT_Library library, \ + FT_Module_Class** output_class ) \ + { \ + FT_Memory memory = library->memory; \ + FT_Module_Class* clazz = NULL; \ + FT_Error error; \ + \ + \ + if ( FT_ALLOC( clazz, sizeof ( *clazz ) ) ) \ + return error; \ + error = class_ ## _pic_init( library ); \ + if ( error ) \ + { \ + FT_FREE( clazz ); \ + return error; \ + } \ + \ + clazz->module_flags = flags_; \ + clazz->module_size = size_; \ + clazz->module_name = name_; \ + clazz->module_version = version_; \ + clazz->module_requires = requires_; \ + \ + clazz->module_interface = interface_; \ + \ + clazz->module_init = init_; \ + clazz->module_done = done_; \ + clazz->get_interface = get_interface_; \ + \ + *output_class = clazz; \ + \ + return FT_Err_Ok; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + +FT_END_HEADER + +#endif /* __FTOBJS_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/ftpic.h b/win64/include/freetype/internal/ftpic.h new file mode 100644 index 00000000..485ce7a2 --- /dev/null +++ b/win64/include/freetype/internal/ftpic.h @@ -0,0 +1,71 @@ +/***************************************************************************/ +/* */ +/* ftpic.h */ +/* */ +/* The FreeType position independent code services (declaration). */ +/* */ +/* Copyright 2009, 2012 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. */ +/* */ +/***************************************************************************/ + + /*************************************************************************/ + /* */ + /* Modules that ordinarily have const global data that need address */ + /* can instead define pointers here. */ + /* */ + /*************************************************************************/ + + +#ifndef __FTPIC_H__ +#define __FTPIC_H__ + + +FT_BEGIN_HEADER + +#ifdef FT_CONFIG_OPTION_PIC + + typedef struct FT_PIC_Container_ + { + /* pic containers for base */ + void* base; + + /* pic containers for modules */ + void* autofit; + void* cff; + void* pshinter; + void* psnames; + void* raster; + void* sfnt; + void* smooth; + void* truetype; + + } FT_PIC_Container; + + + /* Initialize the various function tables, structs, etc. */ + /* stored in the container. */ + FT_BASE( FT_Error ) + ft_pic_container_init( FT_Library library ); + + + /* Destroy the contents of the container. */ + FT_BASE( void ) + ft_pic_container_destroy( FT_Library library ); + +#endif /* FT_CONFIG_OPTION_PIC */ + + /* */ + +FT_END_HEADER + +#endif /* __FTPIC_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/ftrfork.h b/win64/include/freetype/internal/ftrfork.h new file mode 100644 index 00000000..d750cbef --- /dev/null +++ b/win64/include/freetype/internal/ftrfork.h @@ -0,0 +1,266 @@ +/***************************************************************************/ +/* */ +/* ftrfork.h */ +/* */ +/* Embedded resource forks accessor (specification). */ +/* */ +/* Copyright 2004, 2006, 2007, 2012, 2013 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. */ +/* */ +/***************************************************************************/ + +/***************************************************************************/ +/* Development of the code in this file is support of */ +/* Information-technology Promotion Agency, Japan. */ +/***************************************************************************/ + + +#ifndef __FTRFORK_H__ +#define __FTRFORK_H__ + + +#include <ft2build.h> +#include FT_INTERNAL_OBJECTS_H + + +FT_BEGIN_HEADER + + + /* Number of guessing rules supported in `FT_Raccess_Guess'. */ + /* Don't forget to increment the number if you add a new guessing rule. */ +#define FT_RACCESS_N_RULES 9 + + + /* A structure to describe a reference in a resource by its resource ID */ + /* and internal offset. The `POST' resource expects to be concatenated */ + /* by the order of resource IDs instead of its appearance in the file. */ + + typedef struct FT_RFork_Ref_ + { + FT_UShort res_id; + FT_ULong offset; + + } FT_RFork_Ref; + +#ifdef FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK + typedef FT_Error + (*ft_raccess_guess_func)( FT_Library library, + FT_Stream stream, + char *base_file_name, + char **result_file_name, + FT_Long *result_offset ); + + typedef enum FT_RFork_Rule_ { + FT_RFork_Rule_invalid = -2, + FT_RFork_Rule_uknown, /* -1 */ + FT_RFork_Rule_apple_double, + FT_RFork_Rule_apple_single, + FT_RFork_Rule_darwin_ufs_export, + FT_RFork_Rule_darwin_newvfs, + FT_RFork_Rule_darwin_hfsplus, + FT_RFork_Rule_vfat, + FT_RFork_Rule_linux_cap, + FT_RFork_Rule_linux_double, + FT_RFork_Rule_linux_netatalk + } FT_RFork_Rule; + + /* For fast translation between rule index and rule type, + * the macros FT_RFORK_xxx should be kept consistent with + * the raccess_guess_funcs table + */ + typedef struct ft_raccess_guess_rec_ { + ft_raccess_guess_func func; + FT_RFork_Rule type; + } ft_raccess_guess_rec; + +#ifndef FT_CONFIG_OPTION_PIC + + /* this array is a storage in non-PIC mode, so ; is needed in END */ +#define CONST_FT_RFORK_RULE_ARRAY_BEGIN( name, type ) \ + const type name[] = { +#define CONST_FT_RFORK_RULE_ARRAY_ENTRY( func_suffix, type_suffix ) \ + { raccess_guess_ ## func_suffix, \ + FT_RFork_Rule_ ## type_suffix }, +#define CONST_FT_RFORK_RULE_ARRAY_END }; + +#else /* FT_CONFIG_OPTION_PIC */ + + /* this array is a function in PIC mode, so no ; is needed in END */ +#define CONST_FT_RFORK_RULE_ARRAY_BEGIN( name, type ) \ + void \ + FT_Init_Table_ ## name( type* storage ) \ + { \ + type* local = storage; \ + \ + \ + int i = 0; +#define CONST_FT_RFORK_RULE_ARRAY_ENTRY( func_suffix, type_suffix ) \ + local[i].func = raccess_guess_ ## func_suffix; \ + local[i].type = FT_RFork_Rule_ ## type_suffix; \ + i++; +#define CONST_FT_RFORK_RULE_ARRAY_END } + +#endif /* FT_CONFIG_OPTION_PIC */ + +#endif /* FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK */ + + + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Raccess_Guess */ + /* */ + /* <Description> */ + /* Guess a file name and offset where the actual resource fork is */ + /* stored. The macro FT_RACCESS_N_RULES holds the number of */ + /* guessing rules; the guessed result for the Nth rule is */ + /* represented as a triplet: a new file name (new_names[N]), a file */ + /* offset (offsets[N]), and an error code (errors[N]). */ + /* */ + /* <Input> */ + /* library :: */ + /* A FreeType library instance. */ + /* */ + /* stream :: */ + /* A file stream containing the resource fork. */ + /* */ + /* base_name :: */ + /* The (base) file name of the resource fork used for some */ + /* guessing rules. */ + /* */ + /* <Output> */ + /* new_names :: */ + /* An array of guessed file names in which the resource forks may */ + /* exist. If `new_names[N]' is NULL, the guessed file name is */ + /* equal to `base_name'. */ + /* */ + /* offsets :: */ + /* An array of guessed file offsets. `offsets[N]' holds the file */ + /* offset of the possible start of the resource fork in file */ + /* `new_names[N]'. */ + /* */ + /* errors :: */ + /* An array of FreeType error codes. `errors[N]' is the error */ + /* code of Nth guessing rule function. If `errors[N]' is not */ + /* FT_Err_Ok, `new_names[N]' and `offsets[N]' are meaningless. */ + /* */ + FT_BASE( void ) + FT_Raccess_Guess( FT_Library library, + FT_Stream stream, + char* base_name, + char** new_names, + FT_Long* offsets, + FT_Error* errors ); + + + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Raccess_Get_HeaderInfo */ + /* */ + /* <Description> */ + /* Get the information from the header of resource fork. The */ + /* information includes the file offset where the resource map */ + /* starts, and the file offset where the resource data starts. */ + /* `FT_Raccess_Get_DataOffsets' requires these two data. */ + /* */ + /* <Input> */ + /* library :: */ + /* A FreeType library instance. */ + /* */ + /* stream :: */ + /* A file stream containing the resource fork. */ + /* */ + /* rfork_offset :: */ + /* The file offset where the resource fork starts. */ + /* */ + /* <Output> */ + /* map_offset :: */ + /* The file offset where the resource map starts. */ + /* */ + /* rdata_pos :: */ + /* The file offset where the resource data starts. */ + /* */ + /* <Return> */ + /* FreeType error code. FT_Err_Ok means success. */ + /* */ + FT_BASE( FT_Error ) + FT_Raccess_Get_HeaderInfo( FT_Library library, + FT_Stream stream, + FT_Long rfork_offset, + FT_Long *map_offset, + FT_Long *rdata_pos ); + + + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Raccess_Get_DataOffsets */ + /* */ + /* <Description> */ + /* Get the data offsets for a tag in a resource fork. Offsets are */ + /* stored in an array because, in some cases, resources in a resource */ + /* fork have the same tag. */ + /* */ + /* <Input> */ + /* library :: */ + /* A FreeType library instance. */ + /* */ + /* stream :: */ + /* A file stream containing the resource fork. */ + /* */ + /* map_offset :: */ + /* The file offset where the resource map starts. */ + /* */ + /* rdata_pos :: */ + /* The file offset where the resource data starts. */ + /* */ + /* tag :: */ + /* The resource tag. */ + /* */ + /* sort_by_res_id :: */ + /* A Boolean to sort the fragmented resource by their ids. */ + /* The fragmented resources for `POST' resource should be sorted */ + /* to restore Type1 font properly. For `snft' resources, sorting */ + /* may induce a different order of the faces in comparison to that */ + /* by QuickDraw API. */ + /* */ + /* <Output> */ + /* offsets :: */ + /* The stream offsets for the resource data specified by `tag'. */ + /* This array is allocated by the function, so you have to call */ + /* @ft_mem_free after use. */ + /* */ + /* count :: */ + /* The length of offsets array. */ + /* */ + /* <Return> */ + /* FreeType error code. FT_Err_Ok means success. */ + /* */ + /* <Note> */ + /* Normally you should use `FT_Raccess_Get_HeaderInfo' to get the */ + /* value for `map_offset' and `rdata_pos'. */ + /* */ + FT_BASE( FT_Error ) + FT_Raccess_Get_DataOffsets( FT_Library library, + FT_Stream stream, + FT_Long map_offset, + FT_Long rdata_pos, + FT_Long tag, + FT_Bool sort_by_res_id, + FT_Long **offsets, + FT_Long *count ); + + +FT_END_HEADER + +#endif /* __FTRFORK_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/ftserv.h b/win64/include/freetype/internal/ftserv.h new file mode 100644 index 00000000..1203ec81 --- /dev/null +++ b/win64/include/freetype/internal/ftserv.h @@ -0,0 +1,763 @@ +/***************************************************************************/ +/* */ +/* ftserv.h */ +/* */ +/* The FreeType services (specification only). */ +/* */ +/* Copyright 2003-2007, 2009, 2012, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + + /*************************************************************************/ + /* */ + /* Each module can export one or more `services'. Each service is */ + /* identified by a constant string and modeled by a pointer; the latter */ + /* generally corresponds to a structure containing function pointers. */ + /* */ + /* Note that a service's data cannot be a mere function pointer because */ + /* in C it is possible that function pointers might be implemented */ + /* differently than data pointers (e.g. 48 bits instead of 32). */ + /* */ + /*************************************************************************/ + + +#ifndef __FTSERV_H__ +#define __FTSERV_H__ + + +FT_BEGIN_HEADER + + /* + * @macro: + * FT_FACE_FIND_SERVICE + * + * @description: + * This macro is used to look up a service from a face's driver module. + * + * @input: + * face :: + * The source face handle. + * + * id :: + * A string describing the service as defined in the service's + * header files (e.g. FT_SERVICE_ID_MULTI_MASTERS which expands to + * `multi-masters'). It is automatically prefixed with + * `FT_SERVICE_ID_'. + * + * @output: + * ptr :: + * A variable that receives the service pointer. Will be NULL + * if not found. + */ +#ifdef __cplusplus + +#define FT_FACE_FIND_SERVICE( face, ptr, id ) \ + FT_BEGIN_STMNT \ + FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ + FT_Pointer _tmp_ = NULL; \ + FT_Pointer* _pptr_ = (FT_Pointer*)&(ptr); \ + \ + \ + if ( module->clazz->get_interface ) \ + _tmp_ = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \ + *_pptr_ = _tmp_; \ + FT_END_STMNT + +#else /* !C++ */ + +#define FT_FACE_FIND_SERVICE( face, ptr, id ) \ + FT_BEGIN_STMNT \ + FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ + FT_Pointer _tmp_ = NULL; \ + \ + if ( module->clazz->get_interface ) \ + _tmp_ = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \ + ptr = _tmp_; \ + FT_END_STMNT + +#endif /* !C++ */ + + + /* + * @macro: + * FT_FACE_FIND_GLOBAL_SERVICE + * + * @description: + * This macro is used to look up a service from all modules. + * + * @input: + * face :: + * The source face handle. + * + * id :: + * A string describing the service as defined in the service's + * header files (e.g. FT_SERVICE_ID_MULTI_MASTERS which expands to + * `multi-masters'). It is automatically prefixed with + * `FT_SERVICE_ID_'. + * + * @output: + * ptr :: + * A variable that receives the service pointer. Will be NULL + * if not found. + */ +#ifdef __cplusplus + +#define FT_FACE_FIND_GLOBAL_SERVICE( face, ptr, id ) \ + FT_BEGIN_STMNT \ + FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ + FT_Pointer _tmp_; \ + FT_Pointer* _pptr_ = (FT_Pointer*)&(ptr); \ + \ + \ + _tmp_ = ft_module_get_service( module, FT_SERVICE_ID_ ## id ); \ + *_pptr_ = _tmp_; \ + FT_END_STMNT + +#else /* !C++ */ + +#define FT_FACE_FIND_GLOBAL_SERVICE( face, ptr, id ) \ + FT_BEGIN_STMNT \ + FT_Module module = FT_MODULE( FT_FACE( face )->driver ); \ + FT_Pointer _tmp_; \ + \ + \ + _tmp_ = ft_module_get_service( module, FT_SERVICE_ID_ ## id ); \ + ptr = _tmp_; \ + FT_END_STMNT + +#endif /* !C++ */ + + + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** S E R V I C E D E S C R I P T O R S *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + + /* + * The following structure is used to _describe_ a given service + * to the library. This is useful to build simple static service lists. + */ + typedef struct FT_ServiceDescRec_ + { + const char* serv_id; /* service name */ + const void* serv_data; /* service pointer/data */ + + } FT_ServiceDescRec; + + typedef const FT_ServiceDescRec* FT_ServiceDesc; + + + /*************************************************************************/ + /* */ + /* <Macro> */ + /* FT_DEFINE_SERVICEDESCREC1 */ + /* FT_DEFINE_SERVICEDESCREC2 */ + /* FT_DEFINE_SERVICEDESCREC3 */ + /* FT_DEFINE_SERVICEDESCREC4 */ + /* FT_DEFINE_SERVICEDESCREC5 */ + /* FT_DEFINE_SERVICEDESCREC6 */ + /* FT_DEFINE_SERVICEDESCREC7 */ + /* */ + /* <Description> */ + /* Used to initialize an array of FT_ServiceDescRec structures. */ + /* */ + /* When FT_CONFIG_OPTION_PIC is defined a `create' function needs to */ + /* be called with a pointer to return an allocated array. As soon as */ + /* it is no longer needed, a `destroy' function needs to be called to */ + /* release that allocation. */ + /* */ + /* These functions should be manually called from the `pic_init' and */ + /* `pic_free' functions of your module (see FT_DEFINE_MODULE). */ + /* */ + /* When FT_CONFIG_OPTION_PIC is not defined the array will be */ + /* allocated in the global scope (or the scope where the macro is */ + /* used). */ + /* */ +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_SERVICEDESCREC1( class_, \ + serv_id_1, serv_data_1 ) \ + static const FT_ServiceDescRec class_[] = \ + { \ + { serv_id_1, serv_data_1 }, \ + { NULL, NULL } \ + }; + +#define FT_DEFINE_SERVICEDESCREC2( class_, \ + serv_id_1, serv_data_1, \ + serv_id_2, serv_data_2 ) \ + static const FT_ServiceDescRec class_[] = \ + { \ + { serv_id_1, serv_data_1 }, \ + { serv_id_2, serv_data_2 }, \ + { NULL, NULL } \ + }; + +#define FT_DEFINE_SERVICEDESCREC3( class_, \ + serv_id_1, serv_data_1, \ + serv_id_2, serv_data_2, \ + serv_id_3, serv_data_3 ) \ + static const FT_ServiceDescRec class_[] = \ + { \ + { serv_id_1, serv_data_1 }, \ + { serv_id_2, serv_data_2 }, \ + { serv_id_3, serv_data_3 }, \ + { NULL, NULL } \ + }; + +#define FT_DEFINE_SERVICEDESCREC4( class_, \ + serv_id_1, serv_data_1, \ + serv_id_2, serv_data_2, \ + serv_id_3, serv_data_3, \ + serv_id_4, serv_data_4 ) \ + static const FT_ServiceDescRec class_[] = \ + { \ + { serv_id_1, serv_data_1 }, \ + { serv_id_2, serv_data_2 }, \ + { serv_id_3, serv_data_3 }, \ + { serv_id_4, serv_data_4 }, \ + { NULL, NULL } \ + }; + +#define FT_DEFINE_SERVICEDESCREC5( class_, \ + serv_id_1, serv_data_1, \ + serv_id_2, serv_data_2, \ + serv_id_3, serv_data_3, \ + serv_id_4, serv_data_4, \ + serv_id_5, serv_data_5 ) \ + static const FT_ServiceDescRec class_[] = \ + { \ + { serv_id_1, serv_data_1 }, \ + { serv_id_2, serv_data_2 }, \ + { serv_id_3, serv_data_3 }, \ + { serv_id_4, serv_data_4 }, \ + { serv_id_5, serv_data_5 }, \ + { NULL, NULL } \ + }; + +#define FT_DEFINE_SERVICEDESCREC6( class_, \ + serv_id_1, serv_data_1, \ + serv_id_2, serv_data_2, \ + serv_id_3, serv_data_3, \ + serv_id_4, serv_data_4, \ + serv_id_5, serv_data_5, \ + serv_id_6, serv_data_6 ) \ + static const FT_ServiceDescRec class_[] = \ + { \ + { serv_id_1, serv_data_1 }, \ + { serv_id_2, serv_data_2 }, \ + { serv_id_3, serv_data_3 }, \ + { serv_id_4, serv_data_4 }, \ + { serv_id_5, serv_data_5 }, \ + { serv_id_6, serv_data_6 }, \ + { NULL, NULL } \ + }; + +#define FT_DEFINE_SERVICEDESCREC7( class_, \ + serv_id_1, serv_data_1, \ + serv_id_2, serv_data_2, \ + serv_id_3, serv_data_3, \ + serv_id_4, serv_data_4, \ + serv_id_5, serv_data_5, \ + serv_id_6, serv_data_6, \ + serv_id_7, serv_data_7 ) \ + static const FT_ServiceDescRec class_[] = \ + { \ + { serv_id_1, serv_data_1 }, \ + { serv_id_2, serv_data_2 }, \ + { serv_id_3, serv_data_3 }, \ + { serv_id_4, serv_data_4 }, \ + { serv_id_5, serv_data_5 }, \ + { serv_id_6, serv_data_6 }, \ + { serv_id_7, serv_data_7 }, \ + { NULL, NULL } \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_SERVICEDESCREC1( class_, \ + serv_id_1, serv_data_1 ) \ + void \ + FT_Destroy_Class_ ## class_( FT_Library library, \ + FT_ServiceDescRec* clazz ) \ + { \ + FT_Memory memory = library->memory; \ + \ + \ + if ( clazz ) \ + FT_FREE( clazz ); \ + } \ + \ + FT_Error \ + FT_Create_Class_ ## class_( FT_Library library, \ + FT_ServiceDescRec** output_class ) \ + { \ + FT_ServiceDescRec* clazz = NULL; \ + FT_Error error; \ + FT_Memory memory = library->memory; \ + \ + \ + if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 2 ) ) \ + return error; \ + \ + clazz[0].serv_id = serv_id_1; \ + clazz[0].serv_data = serv_data_1; \ + clazz[1].serv_id = NULL; \ + clazz[1].serv_data = NULL; \ + \ + *output_class = clazz; \ + \ + return FT_Err_Ok; \ + } + +#define FT_DEFINE_SERVICEDESCREC2( class_, \ + serv_id_1, serv_data_1, \ + serv_id_2, serv_data_2 ) \ + void \ + FT_Destroy_Class_ ## class_( FT_Library library, \ + FT_ServiceDescRec* clazz ) \ + { \ + FT_Memory memory = library->memory; \ + \ + \ + if ( clazz ) \ + FT_FREE( clazz ); \ + } \ + \ + FT_Error \ + FT_Create_Class_ ## class_( FT_Library library, \ + FT_ServiceDescRec** output_class ) \ + { \ + FT_ServiceDescRec* clazz = NULL; \ + FT_Error error; \ + FT_Memory memory = library->memory; \ + \ + \ + if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 3 ) ) \ + return error; \ + \ + clazz[0].serv_id = serv_id_1; \ + clazz[0].serv_data = serv_data_1; \ + clazz[1].serv_id = serv_id_2; \ + clazz[1].serv_data = serv_data_2; \ + clazz[2].serv_id = NULL; \ + clazz[2].serv_data = NULL; \ + \ + *output_class = clazz; \ + \ + return FT_Err_Ok; \ + } + +#define FT_DEFINE_SERVICEDESCREC3( class_, \ + serv_id_1, serv_data_1, \ + serv_id_2, serv_data_2, \ + serv_id_3, serv_data_3 ) \ + void \ + FT_Destroy_Class_ ## class_( FT_Library library, \ + FT_ServiceDescRec* clazz ) \ + { \ + FT_Memory memory = library->memory; \ + \ + \ + if ( clazz ) \ + FT_FREE( clazz ); \ + } \ + \ + FT_Error \ + FT_Create_Class_ ## class_( FT_Library library, \ + FT_ServiceDescRec** output_class ) \ + { \ + FT_ServiceDescRec* clazz = NULL; \ + FT_Error error; \ + FT_Memory memory = library->memory; \ + \ + \ + if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 4 ) ) \ + return error; \ + \ + clazz[0].serv_id = serv_id_1; \ + clazz[0].serv_data = serv_data_1; \ + clazz[1].serv_id = serv_id_2; \ + clazz[1].serv_data = serv_data_2; \ + clazz[2].serv_id = serv_id_3; \ + clazz[2].serv_data = serv_data_3; \ + clazz[3].serv_id = NULL; \ + clazz[3].serv_data = NULL; \ + \ + *output_class = clazz; \ + \ + return FT_Err_Ok; \ + } + +#define FT_DEFINE_SERVICEDESCREC4( class_, \ + serv_id_1, serv_data_1, \ + serv_id_2, serv_data_2, \ + serv_id_3, serv_data_3, \ + serv_id_4, serv_data_4 ) \ + void \ + FT_Destroy_Class_ ## class_( FT_Library library, \ + FT_ServiceDescRec* clazz ) \ + { \ + FT_Memory memory = library->memory; \ + \ + \ + if ( clazz ) \ + FT_FREE( clazz ); \ + } \ + \ + FT_Error \ + FT_Create_Class_ ## class_( FT_Library library, \ + FT_ServiceDescRec** output_class ) \ + { \ + FT_ServiceDescRec* clazz = NULL; \ + FT_Error error; \ + FT_Memory memory = library->memory; \ + \ + \ + if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 5 ) ) \ + return error; \ + \ + clazz[0].serv_id = serv_id_1; \ + clazz[0].serv_data = serv_data_1; \ + clazz[1].serv_id = serv_id_2; \ + clazz[1].serv_data = serv_data_2; \ + clazz[2].serv_id = serv_id_3; \ + clazz[2].serv_data = serv_data_3; \ + clazz[3].serv_id = serv_id_4; \ + clazz[3].serv_data = serv_data_4; \ + clazz[4].serv_id = NULL; \ + clazz[4].serv_data = NULL; \ + \ + *output_class = clazz; \ + \ + return FT_Err_Ok; \ + } + +#define FT_DEFINE_SERVICEDESCREC5( class_, \ + serv_id_1, serv_data_1, \ + serv_id_2, serv_data_2, \ + serv_id_3, serv_data_3, \ + serv_id_4, serv_data_4, \ + serv_id_5, serv_data_5 ) \ + void \ + FT_Destroy_Class_ ## class_( FT_Library library, \ + FT_ServiceDescRec* clazz ) \ + { \ + FT_Memory memory = library->memory; \ + \ + \ + if ( clazz ) \ + FT_FREE( clazz ); \ + } \ + \ + FT_Error \ + FT_Create_Class_ ## class_( FT_Library library, \ + FT_ServiceDescRec** output_class ) \ + { \ + FT_ServiceDescRec* clazz = NULL; \ + FT_Error error; \ + FT_Memory memory = library->memory; \ + \ + \ + if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 6 ) ) \ + return error; \ + \ + clazz[0].serv_id = serv_id_1; \ + clazz[0].serv_data = serv_data_1; \ + clazz[1].serv_id = serv_id_2; \ + clazz[1].serv_data = serv_data_2; \ + clazz[2].serv_id = serv_id_3; \ + clazz[2].serv_data = serv_data_3; \ + clazz[3].serv_id = serv_id_4; \ + clazz[3].serv_data = serv_data_4; \ + clazz[4].serv_id = serv_id_5; \ + clazz[4].serv_data = serv_data_5; \ + clazz[5].serv_id = NULL; \ + clazz[5].serv_data = NULL; \ + \ + *output_class = clazz; \ + \ + return FT_Err_Ok; \ + } + +#define FT_DEFINE_SERVICEDESCREC6( class_, \ + serv_id_1, serv_data_1, \ + serv_id_2, serv_data_2, \ + serv_id_3, serv_data_3, \ + serv_id_4, serv_data_4, \ + serv_id_5, serv_data_5, \ + serv_id_6, serv_data_6 ) \ + void \ + FT_Destroy_Class_ ## class_( FT_Library library, \ + FT_ServiceDescRec* clazz ) \ + { \ + FT_Memory memory = library->memory; \ + \ + \ + if ( clazz ) \ + FT_FREE( clazz ); \ + } \ + \ + FT_Error \ + FT_Create_Class_ ## class_( FT_Library library, \ + FT_ServiceDescRec** output_class) \ + { \ + FT_ServiceDescRec* clazz = NULL; \ + FT_Error error; \ + FT_Memory memory = library->memory; \ + \ + \ + if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 7 ) ) \ + return error; \ + \ + clazz[0].serv_id = serv_id_1; \ + clazz[0].serv_data = serv_data_1; \ + clazz[1].serv_id = serv_id_2; \ + clazz[1].serv_data = serv_data_2; \ + clazz[2].serv_id = serv_id_3; \ + clazz[2].serv_data = serv_data_3; \ + clazz[3].serv_id = serv_id_4; \ + clazz[3].serv_data = serv_data_4; \ + clazz[4].serv_id = serv_id_5; \ + clazz[4].serv_data = serv_data_5; \ + clazz[5].serv_id = serv_id_6; \ + clazz[5].serv_data = serv_data_6; \ + clazz[6].serv_id = NULL; \ + clazz[6].serv_data = NULL; \ + \ + *output_class = clazz; \ + \ + return FT_Err_Ok; \ + } + +#define FT_DEFINE_SERVICEDESCREC7( class_, \ + serv_id_1, serv_data_1, \ + serv_id_2, serv_data_2, \ + serv_id_3, serv_data_3, \ + serv_id_4, serv_data_4, \ + serv_id_5, serv_data_5, \ + serv_id_6, serv_data_6, \ + serv_id_7, serv_data_7 ) \ + void \ + FT_Destroy_Class_ ## class_( FT_Library library, \ + FT_ServiceDescRec* clazz ) \ + { \ + FT_Memory memory = library->memory; \ + \ + \ + if ( clazz ) \ + FT_FREE( clazz ); \ + } \ + \ + FT_Error \ + FT_Create_Class_ ## class_( FT_Library library, \ + FT_ServiceDescRec** output_class) \ + { \ + FT_ServiceDescRec* clazz = NULL; \ + FT_Error error; \ + FT_Memory memory = library->memory; \ + \ + \ + if ( FT_ALLOC( clazz, sizeof ( *clazz ) * 8 ) ) \ + return error; \ + \ + clazz[0].serv_id = serv_id_1; \ + clazz[0].serv_data = serv_data_1; \ + clazz[1].serv_id = serv_id_2; \ + clazz[1].serv_data = serv_data_2; \ + clazz[2].serv_id = serv_id_3; \ + clazz[2].serv_data = serv_data_3; \ + clazz[3].serv_id = serv_id_4; \ + clazz[3].serv_data = serv_data_4; \ + clazz[4].serv_id = serv_id_5; \ + clazz[4].serv_data = serv_data_5; \ + clazz[5].serv_id = serv_id_6; \ + clazz[5].serv_data = serv_data_6; \ + clazz[6].serv_id = serv_id_7; \ + clazz[6].serv_data = serv_data_7; \ + clazz[7].serv_id = NULL; \ + clazz[7].serv_data = NULL; \ + \ + *output_class = clazz; \ + \ + return FT_Err_Ok; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + + /* + * Parse a list of FT_ServiceDescRec descriptors and look for + * a specific service by ID. Note that the last element in the + * array must be { NULL, NULL }, and that the function should + * return NULL if the service isn't available. + * + * This function can be used by modules to implement their + * `get_service' method. + */ + FT_BASE( FT_Pointer ) + ft_service_list_lookup( FT_ServiceDesc service_descriptors, + const char* service_id ); + + + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** S E R V I C E S C A C H E *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + + /* + * This structure is used to store a cache for several frequently used + * services. It is the type of `face->internal->services'. You + * should only use FT_FACE_LOOKUP_SERVICE to access it. + * + * All fields should have the type FT_Pointer to relax compilation + * dependencies. We assume the developer isn't completely stupid. + * + * Each field must be named `service_XXXX' where `XXX' corresponds to + * the correct FT_SERVICE_ID_XXXX macro. See the definition of + * FT_FACE_LOOKUP_SERVICE below how this is implemented. + * + */ + typedef struct FT_ServiceCacheRec_ + { + FT_Pointer service_POSTSCRIPT_FONT_NAME; + FT_Pointer service_MULTI_MASTERS; + FT_Pointer service_GLYPH_DICT; + FT_Pointer service_PFR_METRICS; + FT_Pointer service_WINFNT; + + } FT_ServiceCacheRec, *FT_ServiceCache; + + + /* + * A magic number used within the services cache. + */ + + /* ensure that value `1' has the same width as a pointer */ +#define FT_SERVICE_UNAVAILABLE ((FT_Pointer)~(FT_PtrDist)1) + + + /* + * @macro: + * FT_FACE_LOOKUP_SERVICE + * + * @description: + * This macro is used to lookup a service from a face's driver module + * using its cache. + * + * @input: + * face:: + * The source face handle containing the cache. + * + * field :: + * The field name in the cache. + * + * id :: + * The service ID. + * + * @output: + * ptr :: + * A variable receiving the service data. NULL if not available. + */ +#ifdef __cplusplus + +#define FT_FACE_LOOKUP_SERVICE( face, ptr, id ) \ + FT_BEGIN_STMNT \ + FT_Pointer svc; \ + FT_Pointer* Pptr = (FT_Pointer*)&(ptr); \ + \ + \ + svc = FT_FACE( face )->internal->services. service_ ## id; \ + if ( svc == FT_SERVICE_UNAVAILABLE ) \ + svc = NULL; \ + else if ( svc == NULL ) \ + { \ + FT_FACE_FIND_SERVICE( face, svc, id ); \ + \ + FT_FACE( face )->internal->services. service_ ## id = \ + (FT_Pointer)( svc != NULL ? svc \ + : FT_SERVICE_UNAVAILABLE ); \ + } \ + *Pptr = svc; \ + FT_END_STMNT + +#else /* !C++ */ + +#define FT_FACE_LOOKUP_SERVICE( face, ptr, id ) \ + FT_BEGIN_STMNT \ + FT_Pointer svc; \ + \ + \ + svc = FT_FACE( face )->internal->services. service_ ## id; \ + if ( svc == FT_SERVICE_UNAVAILABLE ) \ + svc = NULL; \ + else if ( svc == NULL ) \ + { \ + FT_FACE_FIND_SERVICE( face, svc, id ); \ + \ + FT_FACE( face )->internal->services. service_ ## id = \ + (FT_Pointer)( svc != NULL ? svc \ + : FT_SERVICE_UNAVAILABLE ); \ + } \ + ptr = svc; \ + FT_END_STMNT + +#endif /* !C++ */ + + /* + * A macro used to define new service structure types. + */ + +#define FT_DEFINE_SERVICE( name ) \ + typedef struct FT_Service_ ## name ## Rec_ \ + FT_Service_ ## name ## Rec ; \ + typedef struct FT_Service_ ## name ## Rec_ \ + const * FT_Service_ ## name ; \ + struct FT_Service_ ## name ## Rec_ + + /* */ + + /* + * The header files containing the services. + */ + +#define FT_SERVICE_BDF_H <internal/services/svbdf.h> +#define FT_SERVICE_CID_H <internal/services/svcid.h> +#define FT_SERVICE_GLYPH_DICT_H <internal/services/svgldict.h> +#define FT_SERVICE_GX_VALIDATE_H <internal/services/svgxval.h> +#define FT_SERVICE_KERNING_H <internal/services/svkern.h> +#define FT_SERVICE_MULTIPLE_MASTERS_H <internal/services/svmm.h> +#define FT_SERVICE_OPENTYPE_VALIDATE_H <internal/services/svotval.h> +#define FT_SERVICE_PFR_H <internal/services/svpfr.h> +#define FT_SERVICE_POSTSCRIPT_CMAPS_H <internal/services/svpscmap.h> +#define FT_SERVICE_POSTSCRIPT_INFO_H <internal/services/svpsinfo.h> +#define FT_SERVICE_POSTSCRIPT_NAME_H <internal/services/svpostnm.h> +#define FT_SERVICE_PROPERTIES_H <internal/services/svprop.h> +#define FT_SERVICE_SFNT_H <internal/services/svsfnt.h> +#define FT_SERVICE_TRUETYPE_ENGINE_H <internal/services/svtteng.h> +#define FT_SERVICE_TT_CMAP_H <internal/services/svttcmap.h> +#define FT_SERVICE_WINFNT_H <internal/services/svwinfnt.h> +#define FT_SERVICE_XFREE86_NAME_H <internal/services/svxf86nm.h> +#define FT_SERVICE_TRUETYPE_GLYF_H <internal/services/svttglyf.h> + + /* */ + +FT_END_HEADER + +#endif /* __FTSERV_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/ftstream.h b/win64/include/freetype/internal/ftstream.h new file mode 100644 index 00000000..26618583 --- /dev/null +++ b/win64/include/freetype/internal/ftstream.h @@ -0,0 +1,536 @@ +/***************************************************************************/ +/* */ +/* ftstream.h */ +/* */ +/* Stream handling (specification). */ +/* */ +/* Copyright 1996-2002, 2004-2006, 2011, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __FTSTREAM_H__ +#define __FTSTREAM_H__ + + +#include <ft2build.h> +#include FT_SYSTEM_H +#include FT_INTERNAL_OBJECTS_H + + +FT_BEGIN_HEADER + + + /* format of an 8-bit frame_op value: */ + /* */ + /* bit 76543210 */ + /* xxxxxxes */ + /* */ + /* s is set to 1 if the value is signed. */ + /* e is set to 1 if the value is little-endian. */ + /* xxx is a command. */ + +#define FT_FRAME_OP_SHIFT 2 +#define FT_FRAME_OP_SIGNED 1 +#define FT_FRAME_OP_LITTLE 2 +#define FT_FRAME_OP_COMMAND( x ) ( x >> FT_FRAME_OP_SHIFT ) + +#define FT_MAKE_FRAME_OP( command, little, sign ) \ + ( ( command << FT_FRAME_OP_SHIFT ) | ( little << 1 ) | sign ) + +#define FT_FRAME_OP_END 0 +#define FT_FRAME_OP_START 1 /* start a new frame */ +#define FT_FRAME_OP_BYTE 2 /* read 1-byte value */ +#define FT_FRAME_OP_SHORT 3 /* read 2-byte value */ +#define FT_FRAME_OP_LONG 4 /* read 4-byte value */ +#define FT_FRAME_OP_OFF3 5 /* read 3-byte value */ +#define FT_FRAME_OP_BYTES 6 /* read a bytes sequence */ + + + typedef enum FT_Frame_Op_ + { + ft_frame_end = 0, + ft_frame_start = FT_MAKE_FRAME_OP( FT_FRAME_OP_START, 0, 0 ), + + ft_frame_byte = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTE, 0, 0 ), + ft_frame_schar = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTE, 0, 1 ), + + ft_frame_ushort_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 0, 0 ), + ft_frame_short_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 0, 1 ), + ft_frame_ushort_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 1, 0 ), + ft_frame_short_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 1, 1 ), + + ft_frame_ulong_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 0, 0 ), + ft_frame_long_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 0, 1 ), + ft_frame_ulong_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 1, 0 ), + ft_frame_long_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 1, 1 ), + + ft_frame_uoff3_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 0, 0 ), + ft_frame_off3_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 0, 1 ), + ft_frame_uoff3_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 1, 0 ), + ft_frame_off3_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 1, 1 ), + + ft_frame_bytes = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTES, 0, 0 ), + ft_frame_skip = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTES, 0, 1 ) + + } FT_Frame_Op; + + + typedef struct FT_Frame_Field_ + { + FT_Byte value; + FT_Byte size; + FT_UShort offset; + + } FT_Frame_Field; + + + /* Construct an FT_Frame_Field out of a structure type and a field name. */ + /* The structure type must be set in the FT_STRUCTURE macro before */ + /* calling the FT_FRAME_START() macro. */ + /* */ +#define FT_FIELD_SIZE( f ) \ + (FT_Byte)sizeof ( ((FT_STRUCTURE*)0)->f ) + +#define FT_FIELD_SIZE_DELTA( f ) \ + (FT_Byte)sizeof ( ((FT_STRUCTURE*)0)->f[0] ) + +#define FT_FIELD_OFFSET( f ) \ + (FT_UShort)( offsetof( FT_STRUCTURE, f ) ) + +#define FT_FRAME_FIELD( frame_op, field ) \ + { \ + frame_op, \ + FT_FIELD_SIZE( field ), \ + FT_FIELD_OFFSET( field ) \ + } + +#define FT_MAKE_EMPTY_FIELD( frame_op ) { frame_op, 0, 0 } + +#define FT_FRAME_START( size ) { ft_frame_start, 0, size } +#define FT_FRAME_END { ft_frame_end, 0, 0 } + +#define FT_FRAME_LONG( f ) FT_FRAME_FIELD( ft_frame_long_be, f ) +#define FT_FRAME_ULONG( f ) FT_FRAME_FIELD( ft_frame_ulong_be, f ) +#define FT_FRAME_SHORT( f ) FT_FRAME_FIELD( ft_frame_short_be, f ) +#define FT_FRAME_USHORT( f ) FT_FRAME_FIELD( ft_frame_ushort_be, f ) +#define FT_FRAME_OFF3( f ) FT_FRAME_FIELD( ft_frame_off3_be, f ) +#define FT_FRAME_UOFF3( f ) FT_FRAME_FIELD( ft_frame_uoff3_be, f ) +#define FT_FRAME_BYTE( f ) FT_FRAME_FIELD( ft_frame_byte, f ) +#define FT_FRAME_CHAR( f ) FT_FRAME_FIELD( ft_frame_schar, f ) + +#define FT_FRAME_LONG_LE( f ) FT_FRAME_FIELD( ft_frame_long_le, f ) +#define FT_FRAME_ULONG_LE( f ) FT_FRAME_FIELD( ft_frame_ulong_le, f ) +#define FT_FRAME_SHORT_LE( f ) FT_FRAME_FIELD( ft_frame_short_le, f ) +#define FT_FRAME_USHORT_LE( f ) FT_FRAME_FIELD( ft_frame_ushort_le, f ) +#define FT_FRAME_OFF3_LE( f ) FT_FRAME_FIELD( ft_frame_off3_le, f ) +#define FT_FRAME_UOFF3_LE( f ) FT_FRAME_FIELD( ft_frame_uoff3_le, f ) + +#define FT_FRAME_SKIP_LONG { ft_frame_long_be, 0, 0 } +#define FT_FRAME_SKIP_SHORT { ft_frame_short_be, 0, 0 } +#define FT_FRAME_SKIP_BYTE { ft_frame_byte, 0, 0 } + +#define FT_FRAME_BYTES( field, count ) \ + { \ + ft_frame_bytes, \ + count, \ + FT_FIELD_OFFSET( field ) \ + } + +#define FT_FRAME_SKIP_BYTES( count ) { ft_frame_skip, count, 0 } + + + /*************************************************************************/ + /* */ + /* Integer extraction macros -- the `buffer' parameter must ALWAYS be of */ + /* type `char*' or equivalent (1-byte elements). */ + /* */ + +#define FT_BYTE_( p, i ) ( ((const FT_Byte*)(p))[(i)] ) + +#define FT_INT16( x ) ( (FT_Int16)(x) ) +#define FT_UINT16( x ) ( (FT_UInt16)(x) ) +#define FT_INT32( x ) ( (FT_Int32)(x) ) +#define FT_UINT32( x ) ( (FT_UInt32)(x) ) + + +#define FT_BYTE_U16( p, i, s ) ( FT_UINT16( FT_BYTE_( p, i ) ) << (s) ) +#define FT_BYTE_U32( p, i, s ) ( FT_UINT32( FT_BYTE_( p, i ) ) << (s) ) + + +#define FT_PEEK_SHORT( p ) FT_INT16( FT_BYTE_U16( p, 0, 8) | \ + FT_BYTE_U16( p, 1, 0) ) + +#define FT_PEEK_USHORT( p ) FT_UINT16( FT_BYTE_U16( p, 0, 8 ) | \ + FT_BYTE_U16( p, 1, 0 ) ) + +#define FT_PEEK_LONG( p ) FT_INT32( FT_BYTE_U32( p, 0, 24 ) | \ + FT_BYTE_U32( p, 1, 16 ) | \ + FT_BYTE_U32( p, 2, 8 ) | \ + FT_BYTE_U32( p, 3, 0 ) ) + +#define FT_PEEK_ULONG( p ) FT_UINT32( FT_BYTE_U32( p, 0, 24 ) | \ + FT_BYTE_U32( p, 1, 16 ) | \ + FT_BYTE_U32( p, 2, 8 ) | \ + FT_BYTE_U32( p, 3, 0 ) ) + +#define FT_PEEK_OFF3( p ) FT_INT32( FT_BYTE_U32( p, 0, 16 ) | \ + FT_BYTE_U32( p, 1, 8 ) | \ + FT_BYTE_U32( p, 2, 0 ) ) + +#define FT_PEEK_UOFF3( p ) FT_UINT32( FT_BYTE_U32( p, 0, 16 ) | \ + FT_BYTE_U32( p, 1, 8 ) | \ + FT_BYTE_U32( p, 2, 0 ) ) + +#define FT_PEEK_SHORT_LE( p ) FT_INT16( FT_BYTE_U16( p, 1, 8 ) | \ + FT_BYTE_U16( p, 0, 0 ) ) + +#define FT_PEEK_USHORT_LE( p ) FT_UINT16( FT_BYTE_U16( p, 1, 8 ) | \ + FT_BYTE_U16( p, 0, 0 ) ) + +#define FT_PEEK_LONG_LE( p ) FT_INT32( FT_BYTE_U32( p, 3, 24 ) | \ + FT_BYTE_U32( p, 2, 16 ) | \ + FT_BYTE_U32( p, 1, 8 ) | \ + FT_BYTE_U32( p, 0, 0 ) ) + +#define FT_PEEK_ULONG_LE( p ) FT_UINT32( FT_BYTE_U32( p, 3, 24 ) | \ + FT_BYTE_U32( p, 2, 16 ) | \ + FT_BYTE_U32( p, 1, 8 ) | \ + FT_BYTE_U32( p, 0, 0 ) ) + +#define FT_PEEK_OFF3_LE( p ) FT_INT32( FT_BYTE_U32( p, 2, 16 ) | \ + FT_BYTE_U32( p, 1, 8 ) | \ + FT_BYTE_U32( p, 0, 0 ) ) + +#define FT_PEEK_UOFF3_LE( p ) FT_UINT32( FT_BYTE_U32( p, 2, 16 ) | \ + FT_BYTE_U32( p, 1, 8 ) | \ + FT_BYTE_U32( p, 0, 0 ) ) + + +#define FT_NEXT_CHAR( buffer ) \ + ( (signed char)*buffer++ ) + +#define FT_NEXT_BYTE( buffer ) \ + ( (unsigned char)*buffer++ ) + +#define FT_NEXT_SHORT( buffer ) \ + ( (short)( buffer += 2, FT_PEEK_SHORT( buffer - 2 ) ) ) + +#define FT_NEXT_USHORT( buffer ) \ + ( (unsigned short)( buffer += 2, FT_PEEK_USHORT( buffer - 2 ) ) ) + +#define FT_NEXT_OFF3( buffer ) \ + ( (long)( buffer += 3, FT_PEEK_OFF3( buffer - 3 ) ) ) + +#define FT_NEXT_UOFF3( buffer ) \ + ( (unsigned long)( buffer += 3, FT_PEEK_UOFF3( buffer - 3 ) ) ) + +#define FT_NEXT_LONG( buffer ) \ + ( (long)( buffer += 4, FT_PEEK_LONG( buffer - 4 ) ) ) + +#define FT_NEXT_ULONG( buffer ) \ + ( (unsigned long)( buffer += 4, FT_PEEK_ULONG( buffer - 4 ) ) ) + + +#define FT_NEXT_SHORT_LE( buffer ) \ + ( (short)( buffer += 2, FT_PEEK_SHORT_LE( buffer - 2 ) ) ) + +#define FT_NEXT_USHORT_LE( buffer ) \ + ( (unsigned short)( buffer += 2, FT_PEEK_USHORT_LE( buffer - 2 ) ) ) + +#define FT_NEXT_OFF3_LE( buffer ) \ + ( (long)( buffer += 3, FT_PEEK_OFF3_LE( buffer - 3 ) ) ) + +#define FT_NEXT_UOFF3_LE( buffer ) \ + ( (unsigned long)( buffer += 3, FT_PEEK_UOFF3_LE( buffer - 3 ) ) ) + +#define FT_NEXT_LONG_LE( buffer ) \ + ( (long)( buffer += 4, FT_PEEK_LONG_LE( buffer - 4 ) ) ) + +#define FT_NEXT_ULONG_LE( buffer ) \ + ( (unsigned long)( buffer += 4, FT_PEEK_ULONG_LE( buffer - 4 ) ) ) + + + /*************************************************************************/ + /* */ + /* Each GET_xxxx() macro uses an implicit `stream' variable. */ + /* */ +#if 0 +#define FT_GET_MACRO( type ) FT_NEXT_ ## type ( stream->cursor ) + +#define FT_GET_CHAR() FT_GET_MACRO( CHAR ) +#define FT_GET_BYTE() FT_GET_MACRO( BYTE ) +#define FT_GET_SHORT() FT_GET_MACRO( SHORT ) +#define FT_GET_USHORT() FT_GET_MACRO( USHORT ) +#define FT_GET_OFF3() FT_GET_MACRO( OFF3 ) +#define FT_GET_UOFF3() FT_GET_MACRO( UOFF3 ) +#define FT_GET_LONG() FT_GET_MACRO( LONG ) +#define FT_GET_ULONG() FT_GET_MACRO( ULONG ) +#define FT_GET_TAG4() FT_GET_MACRO( ULONG ) + +#define FT_GET_SHORT_LE() FT_GET_MACRO( SHORT_LE ) +#define FT_GET_USHORT_LE() FT_GET_MACRO( USHORT_LE ) +#define FT_GET_LONG_LE() FT_GET_MACRO( LONG_LE ) +#define FT_GET_ULONG_LE() FT_GET_MACRO( ULONG_LE ) + +#else +#define FT_GET_MACRO( func, type ) ( (type)func( stream ) ) + +#define FT_GET_CHAR() FT_GET_MACRO( FT_Stream_GetChar, FT_Char ) +#define FT_GET_BYTE() FT_GET_MACRO( FT_Stream_GetChar, FT_Byte ) +#define FT_GET_SHORT() FT_GET_MACRO( FT_Stream_GetUShort, FT_Short ) +#define FT_GET_USHORT() FT_GET_MACRO( FT_Stream_GetUShort, FT_UShort ) +#define FT_GET_OFF3() FT_GET_MACRO( FT_Stream_GetUOffset, FT_Long ) +#define FT_GET_UOFF3() FT_GET_MACRO( FT_Stream_GetUOffset, FT_ULong ) +#define FT_GET_LONG() FT_GET_MACRO( FT_Stream_GetULong, FT_Long ) +#define FT_GET_ULONG() FT_GET_MACRO( FT_Stream_GetULong, FT_ULong ) +#define FT_GET_TAG4() FT_GET_MACRO( FT_Stream_GetULong, FT_ULong ) + +#define FT_GET_SHORT_LE() FT_GET_MACRO( FT_Stream_GetUShortLE, FT_Short ) +#define FT_GET_USHORT_LE() FT_GET_MACRO( FT_Stream_GetUShortLE, FT_UShort ) +#define FT_GET_LONG_LE() FT_GET_MACRO( FT_Stream_GetULongLE, FT_Long ) +#define FT_GET_ULONG_LE() FT_GET_MACRO( FT_Stream_GetULongLE, FT_ULong ) +#endif + +#define FT_READ_MACRO( func, type, var ) \ + ( var = (type)func( stream, &error ), \ + error != FT_Err_Ok ) + +#define FT_READ_BYTE( var ) FT_READ_MACRO( FT_Stream_ReadChar, FT_Byte, var ) +#define FT_READ_CHAR( var ) FT_READ_MACRO( FT_Stream_ReadChar, FT_Char, var ) +#define FT_READ_SHORT( var ) FT_READ_MACRO( FT_Stream_ReadUShort, FT_Short, var ) +#define FT_READ_USHORT( var ) FT_READ_MACRO( FT_Stream_ReadUShort, FT_UShort, var ) +#define FT_READ_OFF3( var ) FT_READ_MACRO( FT_Stream_ReadUOffset, FT_Long, var ) +#define FT_READ_UOFF3( var ) FT_READ_MACRO( FT_Stream_ReadUOffset, FT_ULong, var ) +#define FT_READ_LONG( var ) FT_READ_MACRO( FT_Stream_ReadULong, FT_Long, var ) +#define FT_READ_ULONG( var ) FT_READ_MACRO( FT_Stream_ReadULong, FT_ULong, var ) + +#define FT_READ_SHORT_LE( var ) FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_Short, var ) +#define FT_READ_USHORT_LE( var ) FT_READ_MACRO( FT_Stream_ReadUShortLE, FT_UShort, var ) +#define FT_READ_LONG_LE( var ) FT_READ_MACRO( FT_Stream_ReadULongLE, FT_Long, var ) +#define FT_READ_ULONG_LE( var ) FT_READ_MACRO( FT_Stream_ReadULongLE, FT_ULong, var ) + + +#ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM + + /* initialize a stream for reading a regular system stream */ + FT_BASE( FT_Error ) + FT_Stream_Open( FT_Stream stream, + const char* filepathname ); + +#endif /* FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM */ + + + /* create a new (input) stream from an FT_Open_Args structure */ + FT_BASE( FT_Error ) + FT_Stream_New( FT_Library library, + const FT_Open_Args* args, + FT_Stream *astream ); + + /* free a stream */ + FT_BASE( void ) + FT_Stream_Free( FT_Stream stream, + FT_Int external ); + + /* initialize a stream for reading in-memory data */ + FT_BASE( void ) + FT_Stream_OpenMemory( FT_Stream stream, + const FT_Byte* base, + FT_ULong size ); + + /* close a stream (does not destroy the stream structure) */ + FT_BASE( void ) + FT_Stream_Close( FT_Stream stream ); + + + /* seek within a stream. position is relative to start of stream */ + FT_BASE( FT_Error ) + FT_Stream_Seek( FT_Stream stream, + FT_ULong pos ); + + /* skip bytes in a stream */ + FT_BASE( FT_Error ) + FT_Stream_Skip( FT_Stream stream, + FT_Long distance ); + + /* return current stream position */ + FT_BASE( FT_Long ) + FT_Stream_Pos( FT_Stream stream ); + + /* read bytes from a stream into a user-allocated buffer, returns an */ + /* error if not all bytes could be read. */ + FT_BASE( FT_Error ) + FT_Stream_Read( FT_Stream stream, + FT_Byte* buffer, + FT_ULong count ); + + /* read bytes from a stream at a given position */ + FT_BASE( FT_Error ) + FT_Stream_ReadAt( FT_Stream stream, + FT_ULong pos, + FT_Byte* buffer, + FT_ULong count ); + + /* try to read bytes at the end of a stream; return number of bytes */ + /* really available */ + FT_BASE( FT_ULong ) + FT_Stream_TryRead( FT_Stream stream, + FT_Byte* buffer, + FT_ULong count ); + + /* Enter a frame of `count' consecutive bytes in a stream. Returns an */ + /* error if the frame could not be read/accessed. The caller can use */ + /* the FT_Stream_Get_XXX functions to retrieve frame data without */ + /* error checks. */ + /* */ + /* You must _always_ call FT_Stream_ExitFrame() once you have entered */ + /* a stream frame! */ + /* */ + FT_BASE( FT_Error ) + FT_Stream_EnterFrame( FT_Stream stream, + FT_ULong count ); + + /* exit a stream frame */ + FT_BASE( void ) + FT_Stream_ExitFrame( FT_Stream stream ); + + /* Extract a stream frame. If the stream is disk-based, a heap block */ + /* is allocated and the frame bytes are read into it. If the stream */ + /* is memory-based, this function simply set a pointer to the data. */ + /* */ + /* Useful to optimize access to memory-based streams transparently. */ + /* */ + /* All extracted frames must be `freed' with a call to the function */ + /* FT_Stream_ReleaseFrame(). */ + /* */ + FT_BASE( FT_Error ) + FT_Stream_ExtractFrame( FT_Stream stream, + FT_ULong count, + FT_Byte** pbytes ); + + /* release an extract frame (see FT_Stream_ExtractFrame) */ + FT_BASE( void ) + FT_Stream_ReleaseFrame( FT_Stream stream, + FT_Byte** pbytes ); + + /* read a byte from an entered frame */ + FT_BASE( FT_Char ) + FT_Stream_GetChar( FT_Stream stream ); + + /* read a 16-bit big-endian unsigned integer from an entered frame */ + FT_BASE( FT_UShort ) + FT_Stream_GetUShort( FT_Stream stream ); + + /* read a 24-bit big-endian unsigned integer from an entered frame */ + FT_BASE( FT_ULong ) + FT_Stream_GetUOffset( FT_Stream stream ); + + /* read a 32-bit big-endian unsigned integer from an entered frame */ + FT_BASE( FT_ULong ) + FT_Stream_GetULong( FT_Stream stream ); + + /* read a 16-bit little-endian unsigned integer from an entered frame */ + FT_BASE( FT_UShort ) + FT_Stream_GetUShortLE( FT_Stream stream ); + + /* read a 32-bit little-endian unsigned integer from an entered frame */ + FT_BASE( FT_ULong ) + FT_Stream_GetULongLE( FT_Stream stream ); + + + /* read a byte from a stream */ + FT_BASE( FT_Char ) + FT_Stream_ReadChar( FT_Stream stream, + FT_Error* error ); + + /* read a 16-bit big-endian unsigned integer from a stream */ + FT_BASE( FT_UShort ) + FT_Stream_ReadUShort( FT_Stream stream, + FT_Error* error ); + + /* read a 24-bit big-endian unsigned integer from a stream */ + FT_BASE( FT_ULong ) + FT_Stream_ReadUOffset( FT_Stream stream, + FT_Error* error ); + + /* read a 32-bit big-endian integer from a stream */ + FT_BASE( FT_ULong ) + FT_Stream_ReadULong( FT_Stream stream, + FT_Error* error ); + + /* read a 16-bit little-endian unsigned integer from a stream */ + FT_BASE( FT_UShort ) + FT_Stream_ReadUShortLE( FT_Stream stream, + FT_Error* error ); + + /* read a 32-bit little-endian unsigned integer from a stream */ + FT_BASE( FT_ULong ) + FT_Stream_ReadULongLE( FT_Stream stream, + FT_Error* error ); + + /* Read a structure from a stream. The structure must be described */ + /* by an array of FT_Frame_Field records. */ + FT_BASE( FT_Error ) + FT_Stream_ReadFields( FT_Stream stream, + const FT_Frame_Field* fields, + void* structure ); + + +#define FT_STREAM_POS() \ + FT_Stream_Pos( stream ) + +#define FT_STREAM_SEEK( position ) \ + FT_SET_ERROR( FT_Stream_Seek( stream, \ + (FT_ULong)(position) ) ) + +#define FT_STREAM_SKIP( distance ) \ + FT_SET_ERROR( FT_Stream_Skip( stream, \ + (FT_Long)(distance) ) ) + +#define FT_STREAM_READ( buffer, count ) \ + FT_SET_ERROR( FT_Stream_Read( stream, \ + (FT_Byte*)(buffer), \ + (FT_ULong)(count) ) ) + +#define FT_STREAM_READ_AT( position, buffer, count ) \ + FT_SET_ERROR( FT_Stream_ReadAt( stream, \ + (FT_ULong)(position), \ + (FT_Byte*)buffer, \ + (FT_ULong)(count) ) ) + +#define FT_STREAM_READ_FIELDS( fields, object ) \ + FT_SET_ERROR( FT_Stream_ReadFields( stream, fields, object ) ) + + +#define FT_FRAME_ENTER( size ) \ + FT_SET_ERROR( \ + FT_DEBUG_INNER( FT_Stream_EnterFrame( stream, \ + (FT_ULong)(size) ) ) ) + +#define FT_FRAME_EXIT() \ + FT_DEBUG_INNER( FT_Stream_ExitFrame( stream ) ) + +#define FT_FRAME_EXTRACT( size, bytes ) \ + FT_SET_ERROR( \ + FT_DEBUG_INNER( FT_Stream_ExtractFrame( stream, \ + (FT_ULong)(size), \ + (FT_Byte**)&(bytes) ) ) ) + +#define FT_FRAME_RELEASE( bytes ) \ + FT_DEBUG_INNER( FT_Stream_ReleaseFrame( stream, \ + (FT_Byte**)&(bytes) ) ) + + +FT_END_HEADER + +#endif /* __FTSTREAM_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/fttrace.h b/win64/include/freetype/internal/fttrace.h new file mode 100644 index 00000000..d5253db7 --- /dev/null +++ b/win64/include/freetype/internal/fttrace.h @@ -0,0 +1,154 @@ +/***************************************************************************/ +/* */ +/* fttrace.h */ +/* */ +/* Tracing handling (specification only). */ +/* */ +/* Copyright 2002, 2004-2007, 2009, 2011-2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + + + /* definitions of trace levels for FreeType 2 */ + + /* the first level must always be `trace_any' */ +FT_TRACE_DEF( any ) + + /* base components */ +FT_TRACE_DEF( calc ) /* calculations (ftcalc.c) */ +FT_TRACE_DEF( memory ) /* memory manager (ftobjs.c) */ +FT_TRACE_DEF( stream ) /* stream manager (ftstream.c) */ +FT_TRACE_DEF( io ) /* i/o interface (ftsystem.c) */ +FT_TRACE_DEF( list ) /* list management (ftlist.c) */ +FT_TRACE_DEF( init ) /* initialization (ftinit.c) */ +FT_TRACE_DEF( objs ) /* base objects (ftobjs.c) */ +FT_TRACE_DEF( outline ) /* outline management (ftoutln.c) */ +FT_TRACE_DEF( glyph ) /* glyph management (ftglyph.c) */ +FT_TRACE_DEF( gloader ) /* glyph loader (ftgloadr.c) */ + +FT_TRACE_DEF( raster ) /* monochrome rasterizer (ftraster.c) */ +FT_TRACE_DEF( smooth ) /* anti-aliasing raster (ftgrays.c) */ +FT_TRACE_DEF( mm ) /* MM interface (ftmm.c) */ +FT_TRACE_DEF( raccess ) /* resource fork accessor (ftrfork.c) */ +FT_TRACE_DEF( synth ) /* bold/slant synthesizer (ftsynth.c) */ +FT_TRACE_DEF( bitmap ) /* bitmap checksum (ftobjs.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( ttcmap ) /* charmap handler (ttcmap.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) */ +FT_TRACE_DEF( ttbdf ) /* TrueType embedded BDF (ttbdf.c) */ + + /* TrueType driver components */ +FT_TRACE_DEF( ttdriver ) /* TT font driver (ttdriver.c) */ +FT_TRACE_DEF( ttgload ) /* TT glyph loader (ttgload.c) */ +FT_TRACE_DEF( ttinterp ) /* bytecode interpreter (ttinterp.c) */ +FT_TRACE_DEF( ttobjs ) /* TT objects manager (ttobjs.c) */ +FT_TRACE_DEF( ttpload ) /* TT data/program loader (ttpload.c) */ +FT_TRACE_DEF( ttgxvar ) /* TrueType GX var handler (ttgxvar.c) */ + + /* Type 1 driver components */ +FT_TRACE_DEF( t1afm ) +FT_TRACE_DEF( t1driver ) +FT_TRACE_DEF( t1gload ) +FT_TRACE_DEF( t1hint ) +FT_TRACE_DEF( t1load ) +FT_TRACE_DEF( t1objs ) +FT_TRACE_DEF( t1parse ) + + /* PostScript helper module `psaux' */ +FT_TRACE_DEF( t1decode ) +FT_TRACE_DEF( psobjs ) +FT_TRACE_DEF( psconv ) + + /* PostScript hinting module `pshinter' */ +FT_TRACE_DEF( pshrec ) +FT_TRACE_DEF( pshalgo1 ) +FT_TRACE_DEF( pshalgo2 ) + + /* Type 2 driver components */ +FT_TRACE_DEF( cffdriver ) +FT_TRACE_DEF( cffgload ) +FT_TRACE_DEF( cffload ) +FT_TRACE_DEF( cffobjs ) +FT_TRACE_DEF( cffparse ) + +FT_TRACE_DEF( cf2blues ) +FT_TRACE_DEF( cf2hints ) +FT_TRACE_DEF( cf2interp ) + + /* Type 42 driver component */ +FT_TRACE_DEF( t42 ) + + /* CID driver components */ +FT_TRACE_DEF( cidafm ) +FT_TRACE_DEF( ciddriver ) +FT_TRACE_DEF( cidgload ) +FT_TRACE_DEF( cidload ) +FT_TRACE_DEF( cidobjs ) +FT_TRACE_DEF( cidparse ) + + /* Windows font component */ +FT_TRACE_DEF( winfnt ) + + /* PCF font components */ +FT_TRACE_DEF( pcfdriver ) +FT_TRACE_DEF( pcfread ) + + /* BDF font components */ +FT_TRACE_DEF( bdfdriver ) +FT_TRACE_DEF( bdflib ) + + /* PFR font component */ +FT_TRACE_DEF( pfr ) + + /* OpenType validation components */ +FT_TRACE_DEF( otvmodule ) +FT_TRACE_DEF( otvcommon ) +FT_TRACE_DEF( otvbase ) +FT_TRACE_DEF( otvgdef ) +FT_TRACE_DEF( otvgpos ) +FT_TRACE_DEF( otvgsub ) +FT_TRACE_DEF( otvjstf ) +FT_TRACE_DEF( otvmath ) + + /* TrueTypeGX/AAT validation components */ +FT_TRACE_DEF( gxvmodule ) +FT_TRACE_DEF( gxvcommon ) +FT_TRACE_DEF( gxvfeat ) +FT_TRACE_DEF( gxvmort ) +FT_TRACE_DEF( gxvmorx ) +FT_TRACE_DEF( gxvbsln ) +FT_TRACE_DEF( gxvjust ) +FT_TRACE_DEF( gxvkern ) +FT_TRACE_DEF( gxvopbd ) +FT_TRACE_DEF( gxvtrak ) +FT_TRACE_DEF( gxvprop ) +FT_TRACE_DEF( gxvlcar ) + + /* autofit components */ +FT_TRACE_DEF( afmodule ) +FT_TRACE_DEF( afhints ) +FT_TRACE_DEF( afcjk ) +FT_TRACE_DEF( aflatin ) +FT_TRACE_DEF( aflatin2 ) +FT_TRACE_DEF( afwarp ) +FT_TRACE_DEF( afharfbuzz ) +FT_TRACE_DEF( afglobal ) + +/* END */ diff --git a/win64/include/freetype/internal/ftvalid.h b/win64/include/freetype/internal/ftvalid.h new file mode 100644 index 00000000..c281b142 --- /dev/null +++ b/win64/include/freetype/internal/ftvalid.h @@ -0,0 +1,159 @@ +/***************************************************************************/ +/* */ +/* ftvalid.h */ +/* */ +/* FreeType validation support (specification). */ +/* */ +/* Copyright 2004, 2013, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __FTVALID_H__ +#define __FTVALID_H__ + +#include <ft2build.h> +#include FT_CONFIG_STANDARD_LIBRARY_H /* for ft_setjmp and ft_longjmp */ + + +FT_BEGIN_HEADER + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /**** ****/ + /**** ****/ + /**** V A L I D A T I O N ****/ + /**** ****/ + /**** ****/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + /* handle to a validation object */ + typedef struct FT_ValidatorRec_ volatile* FT_Validator; + + + /*************************************************************************/ + /* */ + /* There are three distinct validation levels defined here: */ + /* */ + /* FT_VALIDATE_DEFAULT :: */ + /* A table that passes this validation level can be used reliably by */ + /* FreeType. It generally means that all offsets have been checked to */ + /* prevent out-of-bound reads, that array counts are correct, etc. */ + /* */ + /* FT_VALIDATE_TIGHT :: */ + /* A table that passes this validation level can be used reliably and */ + /* doesn't contain invalid data. For example, a charmap table that */ + /* returns invalid glyph indices will not pass, even though it can */ + /* be used with FreeType in default mode (the library will simply */ + /* return an error later when trying to load the glyph). */ + /* */ + /* It also checks that fields which must be a multiple of 2, 4, or 8, */ + /* don't have incorrect values, etc. */ + /* */ + /* FT_VALIDATE_PARANOID :: */ + /* Only for font debugging. Checks that a table follows the */ + /* specification by 100%. Very few fonts will be able to pass this */ + /* level anyway but it can be useful for certain tools like font */ + /* editors/converters. */ + /* */ + typedef enum FT_ValidationLevel_ + { + FT_VALIDATE_DEFAULT = 0, + FT_VALIDATE_TIGHT, + FT_VALIDATE_PARANOID + + } FT_ValidationLevel; + + +#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */ + /* We disable the warning `structure was padded due to */ + /* __declspec(align())' in order to compile cleanly with */ + /* the maximum level of warnings. */ +#pragma warning( push ) +#pragma warning( disable : 4324 ) +#endif /* _MSC_VER */ + + /* validator structure */ + typedef struct FT_ValidatorRec_ + { + ft_jmp_buf jump_buffer; /* used for exception handling */ + + const FT_Byte* base; /* address of table in memory */ + const FT_Byte* limit; /* `base' + sizeof(table) in memory */ + FT_ValidationLevel level; /* validation level */ + FT_Error error; /* error returned. 0 means success */ + + } FT_ValidatorRec; + +#if defined( _MSC_VER ) +#pragma warning( pop ) +#endif + +#define FT_VALIDATOR( x ) ( (FT_Validator)( x ) ) + + + FT_BASE( void ) + ft_validator_init( FT_Validator valid, + const FT_Byte* base, + const FT_Byte* limit, + FT_ValidationLevel level ); + + /* Do not use this. It's broken and will cause your validator to crash */ + /* if you run it on an invalid font. */ + FT_BASE( FT_Int ) + ft_validator_run( FT_Validator valid ); + + /* Sets the error field in a validator, then calls `longjmp' to return */ + /* to high-level caller. Using `setjmp/longjmp' avoids many stupid */ + /* error checks within the validation routines. */ + /* */ + FT_BASE( void ) + ft_validator_error( FT_Validator valid, + FT_Error error ); + + + /* Calls ft_validate_error. Assumes that the `valid' local variable */ + /* holds a pointer to the current validator object. */ + /* */ +#define FT_INVALID( _error ) FT_INVALID_( _error ) +#define FT_INVALID_( _error ) \ + ft_validator_error( valid, FT_THROW( _error ) ) + + /* called when a broken table is detected */ +#define FT_INVALID_TOO_SHORT \ + FT_INVALID( Invalid_Table ) + + /* called when an invalid offset is detected */ +#define FT_INVALID_OFFSET \ + FT_INVALID( Invalid_Offset ) + + /* called when an invalid format/value is detected */ +#define FT_INVALID_FORMAT \ + FT_INVALID( Invalid_Table ) + + /* called when an invalid glyph index is detected */ +#define FT_INVALID_GLYPH_ID \ + FT_INVALID( Invalid_Glyph_Index ) + + /* called when an invalid field value is detected */ +#define FT_INVALID_DATA \ + FT_INVALID( Invalid_Table ) + + +FT_END_HEADER + +#endif /* __FTVALID_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/internal.h b/win64/include/freetype/internal/internal.h new file mode 100644 index 00000000..e0ddb06b --- /dev/null +++ b/win64/include/freetype/internal/internal.h @@ -0,0 +1,63 @@ +/***************************************************************************/ +/* */ +/* internal.h */ +/* */ +/* Internal header files (specification only). */ +/* */ +/* Copyright 1996-2004, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + + + /*************************************************************************/ + /* */ + /* This file is automatically included by `ft2build.h'. */ + /* Do not include it manually! */ + /* */ + /*************************************************************************/ + + +#define FT_INTERNAL_OBJECTS_H <internal/ftobjs.h> +#define FT_INTERNAL_PIC_H <internal/ftpic.h> +#define FT_INTERNAL_STREAM_H <internal/ftstream.h> +#define FT_INTERNAL_MEMORY_H <internal/ftmemory.h> +#define FT_INTERNAL_DEBUG_H <internal/ftdebug.h> +#define FT_INTERNAL_CALC_H <internal/ftcalc.h> +#define FT_INTERNAL_DRIVER_H <internal/ftdriver.h> +#define FT_INTERNAL_TRACE_H <internal/fttrace.h> +#define FT_INTERNAL_GLYPH_LOADER_H <internal/ftgloadr.h> +#define FT_INTERNAL_SFNT_H <internal/sfnt.h> +#define FT_INTERNAL_SERVICE_H <internal/ftserv.h> +#define FT_INTERNAL_RFORK_H <internal/ftrfork.h> +#define FT_INTERNAL_VALIDATE_H <internal/ftvalid.h> + +#define FT_INTERNAL_TRUETYPE_TYPES_H <internal/tttypes.h> +#define FT_INTERNAL_TYPE1_TYPES_H <internal/t1types.h> + +#define FT_INTERNAL_POSTSCRIPT_AUX_H <internal/psaux.h> +#define FT_INTERNAL_POSTSCRIPT_HINTS_H <internal/pshints.h> +#define FT_INTERNAL_POSTSCRIPT_GLOBALS_H <internal/psglobal.h> + +#define FT_INTERNAL_AUTOHINT_H <internal/autohint.h> + + +#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */ + + /* We disable the warning `conditional expression is constant' here */ + /* in order to compile cleanly with the maximum level of warnings. */ + /* In particular, the warning complains about stuff like `while(0)' */ + /* which is very useful in macro definitions. There is no benefit */ + /* in having it enabled. */ +#pragma warning( disable : 4127 ) + +#endif /* _MSC_VER */ + + +/* END */ diff --git a/win64/include/freetype/internal/psaux.h b/win64/include/freetype/internal/psaux.h new file mode 100644 index 00000000..e903114f --- /dev/null +++ b/win64/include/freetype/internal/psaux.h @@ -0,0 +1,877 @@ +/***************************************************************************/ +/* */ +/* psaux.h */ +/* */ +/* Auxiliary functions and data structures related to PostScript fonts */ +/* (specification). */ +/* */ +/* Copyright 1996-2004, 2006, 2008, 2009, 2012 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __PSAUX_H__ +#define __PSAUX_H__ + + +#include <ft2build.h> +#include FT_INTERNAL_OBJECTS_H +#include FT_INTERNAL_TYPE1_TYPES_H +#include FT_SERVICE_POSTSCRIPT_CMAPS_H + + +FT_BEGIN_HEADER + + + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** T1_TABLE *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + + + typedef struct PS_TableRec_* PS_Table; + typedef const struct PS_Table_FuncsRec_* PS_Table_Funcs; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* PS_Table_FuncsRec */ + /* */ + /* <Description> */ + /* A set of function pointers to manage PS_Table objects. */ + /* */ + /* <Fields> */ + /* table_init :: Used to initialize a table. */ + /* */ + /* table_done :: Finalizes resp. destroy a given table. */ + /* */ + /* table_add :: Adds a new object to a table. */ + /* */ + /* table_release :: Releases table data, then finalizes it. */ + /* */ + typedef struct PS_Table_FuncsRec_ + { + FT_Error + (*init)( PS_Table table, + FT_Int count, + FT_Memory memory ); + + void + (*done)( PS_Table table ); + + FT_Error + (*add)( PS_Table table, + FT_Int idx, + void* object, + FT_PtrDist length ); + + void + (*release)( PS_Table table ); + + } PS_Table_FuncsRec; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* PS_TableRec */ + /* */ + /* <Description> */ + /* A PS_Table is a simple object used to store an array of objects in */ + /* a single memory block. */ + /* */ + /* <Fields> */ + /* block :: The address in memory of the growheap's block. This */ + /* can change between two object adds, due to */ + /* reallocation. */ + /* */ + /* cursor :: The current top of the grow heap within its block. */ + /* */ + /* capacity :: The current size of the heap block. Increments by */ + /* 1kByte chunks. */ + /* */ + /* init :: Set to 0xDEADBEEF if `elements' and `lengths' have */ + /* been allocated. */ + /* */ + /* max_elems :: The maximum number of elements in table. */ + /* */ + /* num_elems :: The current number of elements in table. */ + /* */ + /* elements :: A table of element addresses within the block. */ + /* */ + /* lengths :: A table of element sizes within the block. */ + /* */ + /* memory :: The object used for memory operations */ + /* (alloc/realloc). */ + /* */ + /* funcs :: A table of method pointers for this object. */ + /* */ + typedef struct PS_TableRec_ + { + FT_Byte* block; /* current memory block */ + FT_Offset cursor; /* current cursor in memory block */ + FT_Offset capacity; /* current size of memory block */ + FT_Long init; + + FT_Int max_elems; + FT_Int num_elems; + FT_Byte** elements; /* addresses of table elements */ + FT_PtrDist* lengths; /* lengths of table elements */ + + FT_Memory memory; + PS_Table_FuncsRec funcs; + + } PS_TableRec; + + + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** T1 FIELDS & TOKENS *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + + typedef struct PS_ParserRec_* PS_Parser; + + typedef struct T1_TokenRec_* T1_Token; + + typedef struct T1_FieldRec_* T1_Field; + + + /* simple enumeration type used to identify token types */ + typedef enum T1_TokenType_ + { + T1_TOKEN_TYPE_NONE = 0, + T1_TOKEN_TYPE_ANY, + T1_TOKEN_TYPE_STRING, + T1_TOKEN_TYPE_ARRAY, + T1_TOKEN_TYPE_KEY, /* aka `name' */ + + /* do not remove */ + T1_TOKEN_TYPE_MAX + + } T1_TokenType; + + + /* a simple structure used to identify tokens */ + typedef struct T1_TokenRec_ + { + FT_Byte* start; /* first character of token in input stream */ + FT_Byte* limit; /* first character after the token */ + T1_TokenType type; /* type of token */ + + } T1_TokenRec; + + + /* enumeration type used to identify object fields */ + typedef enum T1_FieldType_ + { + T1_FIELD_TYPE_NONE = 0, + T1_FIELD_TYPE_BOOL, + T1_FIELD_TYPE_INTEGER, + T1_FIELD_TYPE_FIXED, + T1_FIELD_TYPE_FIXED_1000, + T1_FIELD_TYPE_STRING, + T1_FIELD_TYPE_KEY, + T1_FIELD_TYPE_BBOX, + T1_FIELD_TYPE_MM_BBOX, + T1_FIELD_TYPE_INTEGER_ARRAY, + T1_FIELD_TYPE_FIXED_ARRAY, + T1_FIELD_TYPE_CALLBACK, + + /* do not remove */ + T1_FIELD_TYPE_MAX + + } T1_FieldType; + + + typedef enum T1_FieldLocation_ + { + T1_FIELD_LOCATION_CID_INFO, + T1_FIELD_LOCATION_FONT_DICT, + T1_FIELD_LOCATION_FONT_EXTRA, + T1_FIELD_LOCATION_FONT_INFO, + T1_FIELD_LOCATION_PRIVATE, + T1_FIELD_LOCATION_BBOX, + T1_FIELD_LOCATION_LOADER, + T1_FIELD_LOCATION_FACE, + T1_FIELD_LOCATION_BLEND, + + /* do not remove */ + T1_FIELD_LOCATION_MAX + + } T1_FieldLocation; + + + typedef void + (*T1_Field_ParseFunc)( FT_Face face, + FT_Pointer parser ); + + + /* structure type used to model object fields */ + typedef struct T1_FieldRec_ + { + const char* ident; /* field identifier */ + T1_FieldLocation location; + T1_FieldType type; /* type of field */ + T1_Field_ParseFunc reader; + FT_UInt offset; /* offset of field in object */ + FT_Byte size; /* size of field in bytes */ + FT_UInt array_max; /* maximum number of elements for */ + /* array */ + FT_UInt count_offset; /* offset of element count for */ + /* arrays; must not be zero if in */ + /* use -- in other words, a */ + /* `num_FOO' element must not */ + /* start the used structure if we */ + /* parse a `FOO' array */ + FT_UInt dict; /* where we expect it */ + } T1_FieldRec; + +#define T1_FIELD_DICT_FONTDICT ( 1 << 0 ) /* also FontInfo and FDArray */ +#define T1_FIELD_DICT_PRIVATE ( 1 << 1 ) + + + +#define T1_NEW_SIMPLE_FIELD( _ident, _type, _fname, _dict ) \ + { \ + _ident, T1CODE, _type, \ + 0, \ + FT_FIELD_OFFSET( _fname ), \ + FT_FIELD_SIZE( _fname ), \ + 0, 0, \ + _dict \ + }, + +#define T1_NEW_CALLBACK_FIELD( _ident, _reader, _dict ) \ + { \ + _ident, T1CODE, T1_FIELD_TYPE_CALLBACK, \ + (T1_Field_ParseFunc)_reader, \ + 0, 0, \ + 0, 0, \ + _dict \ + }, + +#define T1_NEW_TABLE_FIELD( _ident, _type, _fname, _max, _dict ) \ + { \ + _ident, T1CODE, _type, \ + 0, \ + FT_FIELD_OFFSET( _fname ), \ + FT_FIELD_SIZE_DELTA( _fname ), \ + _max, \ + FT_FIELD_OFFSET( num_ ## _fname ), \ + _dict \ + }, + +#define T1_NEW_TABLE_FIELD2( _ident, _type, _fname, _max, _dict ) \ + { \ + _ident, T1CODE, _type, \ + 0, \ + FT_FIELD_OFFSET( _fname ), \ + FT_FIELD_SIZE_DELTA( _fname ), \ + _max, 0, \ + _dict \ + }, + + +#define T1_FIELD_BOOL( _ident, _fname, _dict ) \ + T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_BOOL, _fname, _dict ) + +#define T1_FIELD_NUM( _ident, _fname, _dict ) \ + T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_INTEGER, _fname, _dict ) + +#define T1_FIELD_FIXED( _ident, _fname, _dict ) \ + T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_FIXED, _fname, _dict ) + +#define T1_FIELD_FIXED_1000( _ident, _fname, _dict ) \ + T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_FIXED_1000, _fname, \ + _dict ) + +#define T1_FIELD_STRING( _ident, _fname, _dict ) \ + T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_STRING, _fname, _dict ) + +#define T1_FIELD_KEY( _ident, _fname, _dict ) \ + T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_KEY, _fname, _dict ) + +#define T1_FIELD_BBOX( _ident, _fname, _dict ) \ + T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_BBOX, _fname, _dict ) + + +#define T1_FIELD_NUM_TABLE( _ident, _fname, _fmax, _dict ) \ + T1_NEW_TABLE_FIELD( _ident, T1_FIELD_TYPE_INTEGER_ARRAY, \ + _fname, _fmax, _dict ) + +#define T1_FIELD_FIXED_TABLE( _ident, _fname, _fmax, _dict ) \ + T1_NEW_TABLE_FIELD( _ident, T1_FIELD_TYPE_FIXED_ARRAY, \ + _fname, _fmax, _dict ) + +#define T1_FIELD_NUM_TABLE2( _ident, _fname, _fmax, _dict ) \ + T1_NEW_TABLE_FIELD2( _ident, T1_FIELD_TYPE_INTEGER_ARRAY, \ + _fname, _fmax, _dict ) + +#define T1_FIELD_FIXED_TABLE2( _ident, _fname, _fmax, _dict ) \ + T1_NEW_TABLE_FIELD2( _ident, T1_FIELD_TYPE_FIXED_ARRAY, \ + _fname, _fmax, _dict ) + +#define T1_FIELD_CALLBACK( _ident, _name, _dict ) \ + T1_NEW_CALLBACK_FIELD( _ident, _name, _dict ) + + + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** T1 PARSER *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + + typedef const struct PS_Parser_FuncsRec_* PS_Parser_Funcs; + + typedef struct PS_Parser_FuncsRec_ + { + void + (*init)( PS_Parser parser, + FT_Byte* base, + FT_Byte* limit, + FT_Memory memory ); + + void + (*done)( PS_Parser parser ); + + void + (*skip_spaces)( PS_Parser parser ); + void + (*skip_PS_token)( PS_Parser parser ); + + FT_Long + (*to_int)( PS_Parser parser ); + FT_Fixed + (*to_fixed)( PS_Parser parser, + FT_Int power_ten ); + + FT_Error + (*to_bytes)( PS_Parser parser, + FT_Byte* bytes, + FT_Offset max_bytes, + FT_Long* pnum_bytes, + FT_Bool delimiters ); + + FT_Int + (*to_coord_array)( PS_Parser parser, + FT_Int max_coords, + FT_Short* coords ); + FT_Int + (*to_fixed_array)( PS_Parser parser, + FT_Int max_values, + FT_Fixed* values, + FT_Int power_ten ); + + void + (*to_token)( PS_Parser parser, + T1_Token token ); + void + (*to_token_array)( PS_Parser parser, + T1_Token tokens, + FT_UInt max_tokens, + FT_Int* pnum_tokens ); + + FT_Error + (*load_field)( PS_Parser parser, + const T1_Field field, + void** objects, + FT_UInt max_objects, + FT_ULong* pflags ); + + FT_Error + (*load_field_table)( PS_Parser parser, + const T1_Field field, + void** objects, + FT_UInt max_objects, + FT_ULong* pflags ); + + } PS_Parser_FuncsRec; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* PS_ParserRec */ + /* */ + /* <Description> */ + /* A PS_Parser is an object used to parse a Type 1 font very quickly. */ + /* */ + /* <Fields> */ + /* cursor :: The current position in the text. */ + /* */ + /* base :: Start of the processed text. */ + /* */ + /* limit :: End of the processed text. */ + /* */ + /* error :: The last error returned. */ + /* */ + /* memory :: The object used for memory operations (alloc/realloc). */ + /* */ + /* funcs :: A table of functions for the parser. */ + /* */ + typedef struct PS_ParserRec_ + { + FT_Byte* cursor; + FT_Byte* base; + FT_Byte* limit; + FT_Error error; + FT_Memory memory; + + PS_Parser_FuncsRec funcs; + + } PS_ParserRec; + + + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** T1 BUILDER *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + + + typedef struct T1_BuilderRec_* T1_Builder; + + + typedef FT_Error + (*T1_Builder_Check_Points_Func)( T1_Builder builder, + FT_Int count ); + + typedef void + (*T1_Builder_Add_Point_Func)( T1_Builder builder, + FT_Pos x, + FT_Pos y, + FT_Byte flag ); + + typedef FT_Error + (*T1_Builder_Add_Point1_Func)( T1_Builder builder, + FT_Pos x, + FT_Pos y ); + + typedef FT_Error + (*T1_Builder_Add_Contour_Func)( T1_Builder builder ); + + typedef FT_Error + (*T1_Builder_Start_Point_Func)( T1_Builder builder, + FT_Pos x, + FT_Pos y ); + + typedef void + (*T1_Builder_Close_Contour_Func)( T1_Builder builder ); + + + typedef const struct T1_Builder_FuncsRec_* T1_Builder_Funcs; + + typedef struct T1_Builder_FuncsRec_ + { + void + (*init)( T1_Builder builder, + FT_Face face, + FT_Size size, + FT_GlyphSlot slot, + FT_Bool hinting ); + + void + (*done)( T1_Builder builder ); + + T1_Builder_Check_Points_Func check_points; + T1_Builder_Add_Point_Func add_point; + T1_Builder_Add_Point1_Func add_point1; + T1_Builder_Add_Contour_Func add_contour; + T1_Builder_Start_Point_Func start_point; + T1_Builder_Close_Contour_Func close_contour; + + } T1_Builder_FuncsRec; + + + /* an enumeration type to handle charstring parsing states */ + typedef enum T1_ParseState_ + { + T1_Parse_Start, + T1_Parse_Have_Width, + T1_Parse_Have_Moveto, + T1_Parse_Have_Path + + } T1_ParseState; + + + /*************************************************************************/ + /* */ + /* <Structure> */ + /* T1_BuilderRec */ + /* */ + /* <Description> */ + /* A structure used during glyph loading to store its outline. */ + /* */ + /* <Fields> */ + /* memory :: The current memory object. */ + /* */ + /* face :: The current face object. */ + /* */ + /* glyph :: The current glyph slot. */ + /* */ + /* loader :: XXX */ + /* */ + /* base :: The base glyph outline. */ + /* */ + /* current :: The current glyph outline. */ + /* */ + /* max_points :: maximum points in builder outline */ + /* */ + /* max_contours :: Maximum number of contours in builder outline. */ + /* */ + /* pos_x :: The horizontal translation (if composite glyph). */ + /* */ + /* pos_y :: The vertical translation (if composite glyph). */ + /* */ + /* left_bearing :: The left side bearing point. */ + /* */ + /* advance :: The horizontal advance vector. */ + /* */ + /* bbox :: Unused. */ + /* */ + /* parse_state :: An enumeration which controls the charstring */ + /* parsing state. */ + /* */ + /* load_points :: If this flag is not set, no points are loaded. */ + /* */ + /* no_recurse :: Set but not used. */ + /* */ + /* metrics_only :: A boolean indicating that we only want to compute */ + /* the metrics of a given glyph, not load all of its */ + /* points. */ + /* */ + /* funcs :: An array of function pointers for the builder. */ + /* */ + typedef struct T1_BuilderRec_ + { + FT_Memory memory; + FT_Face face; + FT_GlyphSlot glyph; + FT_GlyphLoader loader; + FT_Outline* base; + FT_Outline* current; + + FT_Pos pos_x; + FT_Pos pos_y; + + FT_Vector left_bearing; + FT_Vector advance; + + FT_BBox bbox; /* bounding box */ + T1_ParseState parse_state; + FT_Bool load_points; + FT_Bool no_recurse; + + FT_Bool metrics_only; + + void* hints_funcs; /* hinter-specific */ + void* hints_globals; /* hinter-specific */ + + T1_Builder_FuncsRec funcs; + + } T1_BuilderRec; + + + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** T1 DECODER *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + +#if 0 + + /*************************************************************************/ + /* */ + /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */ + /* calls during glyph loading. */ + /* */ +#define T1_MAX_SUBRS_CALLS 8 + + + /*************************************************************************/ + /* */ + /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */ + /* minimum of 16 is required. */ + /* */ +#define T1_MAX_CHARSTRINGS_OPERANDS 32 + +#endif /* 0 */ + + + typedef struct T1_Decoder_ZoneRec_ + { + FT_Byte* cursor; + FT_Byte* base; + FT_Byte* limit; + + } T1_Decoder_ZoneRec, *T1_Decoder_Zone; + + + typedef struct T1_DecoderRec_* T1_Decoder; + typedef const struct T1_Decoder_FuncsRec_* T1_Decoder_Funcs; + + + typedef FT_Error + (*T1_Decoder_Callback)( T1_Decoder decoder, + FT_UInt glyph_index ); + + + typedef struct T1_Decoder_FuncsRec_ + { + FT_Error + (*init)( T1_Decoder decoder, + FT_Face face, + FT_Size size, + FT_GlyphSlot slot, + FT_Byte** glyph_names, + PS_Blend blend, + FT_Bool hinting, + FT_Render_Mode hint_mode, + T1_Decoder_Callback callback ); + + void + (*done)( T1_Decoder decoder ); + + FT_Error + (*parse_charstrings)( T1_Decoder decoder, + FT_Byte* base, + FT_UInt len ); + + } T1_Decoder_FuncsRec; + + + typedef struct T1_DecoderRec_ + { + T1_BuilderRec builder; + + FT_Long stack[T1_MAX_CHARSTRINGS_OPERANDS]; + FT_Long* top; + + T1_Decoder_ZoneRec zones[T1_MAX_SUBRS_CALLS + 1]; + T1_Decoder_Zone zone; + + FT_Service_PsCMaps psnames; /* for seac */ + FT_UInt num_glyphs; + FT_Byte** glyph_names; + + FT_Int lenIV; /* internal for sub routine calls */ + FT_UInt num_subrs; + FT_Byte** subrs; + FT_PtrDist* subrs_len; /* array of subrs length (optional) */ + + FT_Matrix font_matrix; + FT_Vector font_offset; + + FT_Int flex_state; + FT_Int num_flex_vectors; + FT_Vector flex_vectors[7]; + + PS_Blend blend; /* for multiple master support */ + + FT_Render_Mode hint_mode; + + T1_Decoder_Callback parse_callback; + T1_Decoder_FuncsRec funcs; + + FT_Long* buildchar; + FT_UInt len_buildchar; + + FT_Bool seac; + + } T1_DecoderRec; + + + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** AFM PARSER *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + + typedef struct AFM_ParserRec_* AFM_Parser; + + typedef struct AFM_Parser_FuncsRec_ + { + FT_Error + (*init)( AFM_Parser parser, + FT_Memory memory, + FT_Byte* base, + FT_Byte* limit ); + + void + (*done)( AFM_Parser parser ); + + FT_Error + (*parse)( AFM_Parser parser ); + + } AFM_Parser_FuncsRec; + + + typedef struct AFM_StreamRec_* AFM_Stream; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* AFM_ParserRec */ + /* */ + /* <Description> */ + /* An AFM_Parser is a parser for the AFM files. */ + /* */ + /* <Fields> */ + /* memory :: The object used for memory operations (alloc and */ + /* realloc). */ + /* */ + /* stream :: This is an opaque object. */ + /* */ + /* FontInfo :: The result will be stored here. */ + /* */ + /* get_index :: A user provided function to get a glyph index by its */ + /* name. */ + /* */ + typedef struct AFM_ParserRec_ + { + FT_Memory memory; + AFM_Stream stream; + + AFM_FontInfo FontInfo; + + FT_Int + (*get_index)( const char* name, + FT_Offset len, + void* user_data ); + + void* user_data; + + } AFM_ParserRec; + + + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** TYPE1 CHARMAPS *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + + typedef const struct T1_CMap_ClassesRec_* T1_CMap_Classes; + + typedef struct T1_CMap_ClassesRec_ + { + FT_CMap_Class standard; + FT_CMap_Class expert; + FT_CMap_Class custom; + FT_CMap_Class unicode; + + } T1_CMap_ClassesRec; + + + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** PSAux Module Interface *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + + typedef struct PSAux_ServiceRec_ + { + /* don't use `PS_Table_Funcs' and friends to avoid compiler warnings */ + const PS_Table_FuncsRec* ps_table_funcs; + const PS_Parser_FuncsRec* ps_parser_funcs; + const T1_Builder_FuncsRec* t1_builder_funcs; + const T1_Decoder_FuncsRec* t1_decoder_funcs; + + void + (*t1_decrypt)( FT_Byte* buffer, + FT_Offset length, + FT_UShort seed ); + + T1_CMap_Classes t1_cmap_classes; + + /* fields after this comment line were added after version 2.1.10 */ + const AFM_Parser_FuncsRec* afm_parser_funcs; + + } PSAux_ServiceRec, *PSAux_Service; + + /* backwards-compatible type definition */ + typedef PSAux_ServiceRec PSAux_Interface; + + + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** Some convenience functions *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + +#define IS_PS_NEWLINE( ch ) \ + ( (ch) == '\r' || \ + (ch) == '\n' ) + +#define IS_PS_SPACE( ch ) \ + ( (ch) == ' ' || \ + IS_PS_NEWLINE( ch ) || \ + (ch) == '\t' || \ + (ch) == '\f' || \ + (ch) == '\0' ) + +#define IS_PS_SPECIAL( ch ) \ + ( (ch) == '/' || \ + (ch) == '(' || (ch) == ')' || \ + (ch) == '<' || (ch) == '>' || \ + (ch) == '[' || (ch) == ']' || \ + (ch) == '{' || (ch) == '}' || \ + (ch) == '%' ) + +#define IS_PS_DELIM( ch ) \ + ( IS_PS_SPACE( ch ) || \ + IS_PS_SPECIAL( ch ) ) + +#define IS_PS_DIGIT( ch ) \ + ( (ch) >= '0' && (ch) <= '9' ) + +#define IS_PS_XDIGIT( ch ) \ + ( IS_PS_DIGIT( ch ) || \ + ( (ch) >= 'A' && (ch) <= 'F' ) || \ + ( (ch) >= 'a' && (ch) <= 'f' ) ) + +#define IS_PS_BASE85( ch ) \ + ( (ch) >= '!' && (ch) <= 'u' ) + +#define IS_PS_TOKEN( cur, limit, token ) \ + ( (char)(cur)[0] == (token)[0] && \ + ( (cur) + sizeof ( (token) ) == (limit) || \ + ( (cur) + sizeof( (token) ) < (limit) && \ + IS_PS_DELIM( (cur)[sizeof ( (token) ) - 1] ) ) ) && \ + ft_strncmp( (char*)(cur), (token), sizeof ( (token) ) - 1 ) == 0 ) + + +FT_END_HEADER + +#endif /* __PSAUX_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/pshints.h b/win64/include/freetype/internal/pshints.h new file mode 100644 index 00000000..f05ea686 --- /dev/null +++ b/win64/include/freetype/internal/pshints.h @@ -0,0 +1,722 @@ +/***************************************************************************/ +/* */ +/* 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 2001-2003, 2005-2007, 2009, 2012, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __PSHINTS_H__ +#define __PSHINTS_H__ + + +#include <ft2build.h> +#include FT_FREETYPE_H +#include FT_TYPE1_TABLES_H + + +FT_BEGIN_HEADER + + + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** INTERNAL REPRESENTATION OF GLOBALS *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + + typedef struct PSH_GlobalsRec_* PSH_Globals; + + typedef FT_Error + (*PSH_Globals_NewFunc)( FT_Memory memory, + T1_Private* private_dict, + PSH_Globals* aglobals ); + + typedef void + (*PSH_Globals_SetScaleFunc)( PSH_Globals globals, + FT_Fixed x_scale, + FT_Fixed y_scale, + FT_Fixed x_delta, + FT_Fixed y_delta ); + + typedef void + (*PSH_Globals_DestroyFunc)( PSH_Globals globals ); + + + typedef struct PSH_Globals_FuncsRec_ + { + PSH_Globals_NewFunc create; + PSH_Globals_SetScaleFunc set_scale; + PSH_Globals_DestroyFunc destroy; + + } PSH_Globals_FuncsRec, *PSH_Globals_Funcs; + + + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** PUBLIC TYPE 1 HINTS RECORDER *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + + /************************************************************************* + * + * @type: + * T1_Hints + * + * @description: + * This is a handle to an opaque structure used to record glyph hints + * from a Type 1 character glyph character string. + * + * The methods used to operate on this object are defined by the + * @T1_Hints_FuncsRec structure. Recording glyph hints is normally + * achieved through the following scheme: + * + * - Open a new hint recording session by calling the `open' method. + * This rewinds the recorder and prepare it for new input. + * + * - For each hint found in the glyph charstring, call the corresponding + * method (`stem', `stem3', or `reset'). Note that these functions do + * not return an error code. + * + * - Close the recording session by calling the `close' method. It + * returns an error code if the hints were invalid or something + * strange happened (e.g., memory shortage). + * + * The hints accumulated in the object can later be used by the + * PostScript hinter. + * + */ + typedef struct T1_HintsRec_* T1_Hints; + + + /************************************************************************* + * + * @type: + * T1_Hints_Funcs + * + * @description: + * A pointer to the @T1_Hints_FuncsRec structure that defines the API of + * a given @T1_Hints object. + * + */ + typedef const struct T1_Hints_FuncsRec_* T1_Hints_Funcs; + + + /************************************************************************* + * + * @functype: + * T1_Hints_OpenFunc + * + * @description: + * A method of the @T1_Hints class used to prepare it for a new Type 1 + * hints recording session. + * + * @input: + * hints :: + * A handle to the Type 1 hints recorder. + * + * @note: + * You should always call the @T1_Hints_CloseFunc method in order to + * close an opened recording session. + * + */ + typedef void + (*T1_Hints_OpenFunc)( T1_Hints hints ); + + + /************************************************************************* + * + * @functype: + * T1_Hints_SetStemFunc + * + * @description: + * A method of the @T1_Hints class used to record a new horizontal or + * vertical stem. This corresponds to the Type 1 `hstem' and `vstem' + * operators. + * + * @input: + * hints :: + * A handle to the Type 1 hints recorder. + * + * dimension :: + * 0 for horizontal stems (hstem), 1 for vertical ones (vstem). + * + * coords :: + * Array of 2 coordinates in 16.16 format, used as (position,length) + * stem descriptor. + * + * @note: + * Use vertical coordinates (y) for horizontal stems (dim=0). Use + * horizontal coordinates (x) for vertical stems (dim=1). + * + * `coords[0]' is the absolute stem position (lowest coordinate); + * `coords[1]' is the length. + * + * The length can be negative, in which case it must be either -20 or + * -21. It is interpreted as a `ghost' stem, according to the Type 1 + * specification. + * + * If the length is -21 (corresponding to a bottom ghost stem), then + * the real stem position is `coords[0]+coords[1]'. + * + */ + typedef void + (*T1_Hints_SetStemFunc)( T1_Hints hints, + FT_UInt dimension, + FT_Fixed* coords ); + + + /************************************************************************* + * + * @functype: + * T1_Hints_SetStem3Func + * + * @description: + * A method of the @T1_Hints class used to record three + * counter-controlled horizontal or vertical stems at once. + * + * @input: + * hints :: + * A handle to the Type 1 hints recorder. + * + * dimension :: + * 0 for horizontal stems, 1 for vertical ones. + * + * coords :: + * An array of 6 values in 16.16 format, holding 3 (position,length) + * pairs for the counter-controlled stems. + * + * @note: + * Use vertical coordinates (y) for horizontal stems (dim=0). Use + * horizontal coordinates (x) for vertical stems (dim=1). + * + * The lengths cannot be negative (ghost stems are never + * counter-controlled). + * + */ + typedef void + (*T1_Hints_SetStem3Func)( T1_Hints hints, + FT_UInt dimension, + FT_Fixed* coords ); + + + /************************************************************************* + * + * @functype: + * T1_Hints_ResetFunc + * + * @description: + * A method of the @T1_Hints class used to reset the stems hints in a + * recording session. + * + * @input: + * hints :: + * A handle to the Type 1 hints recorder. + * + * end_point :: + * The index of the last point in the input glyph in which the + * previously defined hints apply. + * + */ + typedef void + (*T1_Hints_ResetFunc)( T1_Hints hints, + FT_UInt end_point ); + + + /************************************************************************* + * + * @functype: + * T1_Hints_CloseFunc + * + * @description: + * A method of the @T1_Hints class used to close a hint recording + * session. + * + * @input: + * hints :: + * A handle to the Type 1 hints recorder. + * + * end_point :: + * The index of the last point in the input glyph. + * + * @return: + * FreeType error code. 0 means success. + * + * @note: + * The error code is set to indicate that an error occurred during the + * recording session. + * + */ + typedef FT_Error + (*T1_Hints_CloseFunc)( T1_Hints hints, + FT_UInt end_point ); + + + /************************************************************************* + * + * @functype: + * T1_Hints_ApplyFunc + * + * @description: + * A method of the @T1_Hints class used to apply hints to the + * corresponding glyph outline. Must be called once all hints have been + * recorded. + * + * @input: + * hints :: + * A handle to the Type 1 hints recorder. + * + * outline :: + * A pointer to the target outline descriptor. + * + * globals :: + * The hinter globals for this font. + * + * hint_mode :: + * Hinting information. + * + * @return: + * FreeType error code. 0 means success. + * + * @note: + * On input, all points within the outline are in font coordinates. On + * output, they are in 1/64th of pixels. + * + * The scaling transformation is taken from the `globals' object which + * must correspond to the same font as the glyph. + * + */ + typedef FT_Error + (*T1_Hints_ApplyFunc)( T1_Hints hints, + FT_Outline* outline, + PSH_Globals globals, + FT_Render_Mode hint_mode ); + + + /************************************************************************* + * + * @struct: + * T1_Hints_FuncsRec + * + * @description: + * The structure used to provide the API to @T1_Hints objects. + * + * @fields: + * hints :: + * A handle to the T1 Hints recorder. + * + * open :: + * The function to open a recording session. + * + * close :: + * The function to close a recording session. + * + * stem :: + * The function to set a simple stem. + * + * stem3 :: + * The function to set counter-controlled stems. + * + * reset :: + * The function to reset stem hints. + * + * apply :: + * The function to apply the hints to the corresponding glyph outline. + * + */ + typedef struct T1_Hints_FuncsRec_ + { + T1_Hints hints; + T1_Hints_OpenFunc open; + T1_Hints_CloseFunc close; + T1_Hints_SetStemFunc stem; + T1_Hints_SetStem3Func stem3; + T1_Hints_ResetFunc reset; + T1_Hints_ApplyFunc apply; + + } T1_Hints_FuncsRec; + + + /*************************************************************************/ + /*************************************************************************/ + /***** *****/ + /***** PUBLIC TYPE 2 HINTS RECORDER *****/ + /***** *****/ + /*************************************************************************/ + /*************************************************************************/ + + /************************************************************************* + * + * @type: + * T2_Hints + * + * @description: + * This is a handle to an opaque structure used to record glyph hints + * from a Type 2 character glyph character string. + * + * The methods used to operate on this object are defined by the + * @T2_Hints_FuncsRec structure. Recording glyph hints is normally + * achieved through the following scheme: + * + * - Open a new hint recording session by calling the `open' method. + * This rewinds the recorder and prepare it for new input. + * + * - For each hint found in the glyph charstring, call the corresponding + * method (`stems', `hintmask', `counters'). Note that these + * functions do not return an error code. + * + * - Close the recording session by calling the `close' method. It + * returns an error code if the hints were invalid or something + * strange happened (e.g., memory shortage). + * + * The hints accumulated in the object can later be used by the + * Postscript hinter. + * + */ + typedef struct T2_HintsRec_* T2_Hints; + + + /************************************************************************* + * + * @type: + * T2_Hints_Funcs + * + * @description: + * A pointer to the @T2_Hints_FuncsRec structure that defines the API of + * a given @T2_Hints object. + * + */ + typedef const struct T2_Hints_FuncsRec_* T2_Hints_Funcs; + + + /************************************************************************* + * + * @functype: + * T2_Hints_OpenFunc + * + * @description: + * A method of the @T2_Hints class used to prepare it for a new Type 2 + * hints recording session. + * + * @input: + * hints :: + * A handle to the Type 2 hints recorder. + * + * @note: + * You should always call the @T2_Hints_CloseFunc method in order to + * close an opened recording session. + * + */ + typedef void + (*T2_Hints_OpenFunc)( T2_Hints hints ); + + + /************************************************************************* + * + * @functype: + * T2_Hints_StemsFunc + * + * @description: + * A method of the @T2_Hints class used to set the table of stems in + * either the vertical or horizontal dimension. Equivalent to the + * `hstem', `vstem', `hstemhm', and `vstemhm' Type 2 operators. + * + * @input: + * hints :: + * A handle to the Type 2 hints recorder. + * + * dimension :: + * 0 for horizontal stems (hstem), 1 for vertical ones (vstem). + * + * count :: + * The number of stems. + * + * coords :: + * An array of `count' (position,length) pairs in 16.16 format. + * + * @note: + * Use vertical coordinates (y) for horizontal stems (dim=0). Use + * horizontal coordinates (x) for vertical stems (dim=1). + * + * There are `2*count' elements in the `coords' array. Each even + * element is an absolute position in font units, each odd element is a + * length in font units. + * + * A length can be negative, in which case it must be either -20 or + * -21. It is interpreted as a `ghost' stem, according to the Type 1 + * specification. + * + */ + typedef void + (*T2_Hints_StemsFunc)( T2_Hints hints, + FT_UInt dimension, + FT_UInt count, + FT_Fixed* coordinates ); + + + /************************************************************************* + * + * @functype: + * T2_Hints_MaskFunc + * + * @description: + * A method of the @T2_Hints class used to set a given hintmask (this + * corresponds to the `hintmask' Type 2 operator). + * + * @input: + * hints :: + * A handle to the Type 2 hints recorder. + * + * end_point :: + * The glyph index of the last point to which the previously defined + * or activated hints apply. + * + * bit_count :: + * The number of bits in the hint mask. + * + * bytes :: + * An array of bytes modelling the hint mask. + * + * @note: + * If the hintmask starts the charstring (before any glyph point + * definition), the value of `end_point' should be 0. + * + * `bit_count' is the number of meaningful bits in the `bytes' array; it + * must be equal to the total number of hints defined so far (i.e., + * horizontal+verticals). + * + * The `bytes' array can come directly from the Type 2 charstring and + * respects the same format. + * + */ + typedef void + (*T2_Hints_MaskFunc)( T2_Hints hints, + FT_UInt end_point, + FT_UInt bit_count, + const FT_Byte* bytes ); + + + /************************************************************************* + * + * @functype: + * T2_Hints_CounterFunc + * + * @description: + * A method of the @T2_Hints class used to set a given counter mask + * (this corresponds to the `hintmask' Type 2 operator). + * + * @input: + * hints :: + * A handle to the Type 2 hints recorder. + * + * end_point :: + * A glyph index of the last point to which the previously defined or + * active hints apply. + * + * bit_count :: + * The number of bits in the hint mask. + * + * bytes :: + * An array of bytes modelling the hint mask. + * + * @note: + * If the hintmask starts the charstring (before any glyph point + * definition), the value of `end_point' should be 0. + * + * `bit_count' is the number of meaningful bits in the `bytes' array; it + * must be equal to the total number of hints defined so far (i.e., + * horizontal+verticals). + * + * The `bytes' array can come directly from the Type 2 charstring and + * respects the same format. + * + */ + typedef void + (*T2_Hints_CounterFunc)( T2_Hints hints, + FT_UInt bit_count, + const FT_Byte* bytes ); + + + /************************************************************************* + * + * @functype: + * T2_Hints_CloseFunc + * + * @description: + * A method of the @T2_Hints class used to close a hint recording + * session. + * + * @input: + * hints :: + * A handle to the Type 2 hints recorder. + * + * end_point :: + * The index of the last point in the input glyph. + * + * @return: + * FreeType error code. 0 means success. + * + * @note: + * The error code is set to indicate that an error occurred during the + * recording session. + * + */ + typedef FT_Error + (*T2_Hints_CloseFunc)( T2_Hints hints, + FT_UInt end_point ); + + + /************************************************************************* + * + * @functype: + * T2_Hints_ApplyFunc + * + * @description: + * A method of the @T2_Hints class used to apply hints to the + * corresponding glyph outline. Must be called after the `close' + * method. + * + * @input: + * hints :: + * A handle to the Type 2 hints recorder. + * + * outline :: + * A pointer to the target outline descriptor. + * + * globals :: + * The hinter globals for this font. + * + * hint_mode :: + * Hinting information. + * + * @return: + * FreeType error code. 0 means success. + * + * @note: + * On input, all points within the outline are in font coordinates. On + * output, they are in 1/64th of pixels. + * + * The scaling transformation is taken from the `globals' object which + * must correspond to the same font than the glyph. + * + */ + typedef FT_Error + (*T2_Hints_ApplyFunc)( T2_Hints hints, + FT_Outline* outline, + PSH_Globals globals, + FT_Render_Mode hint_mode ); + + + /************************************************************************* + * + * @struct: + * T2_Hints_FuncsRec + * + * @description: + * The structure used to provide the API to @T2_Hints objects. + * + * @fields: + * hints :: + * A handle to the T2 hints recorder object. + * + * open :: + * The function to open a recording session. + * + * close :: + * The function to close a recording session. + * + * stems :: + * The function to set the dimension's stems table. + * + * hintmask :: + * The function to set hint masks. + * + * counter :: + * The function to set counter masks. + * + * apply :: + * The function to apply the hints on the corresponding glyph outline. + * + */ + typedef struct T2_Hints_FuncsRec_ + { + T2_Hints hints; + T2_Hints_OpenFunc open; + T2_Hints_CloseFunc close; + T2_Hints_StemsFunc stems; + T2_Hints_MaskFunc hintmask; + T2_Hints_CounterFunc counter; + T2_Hints_ApplyFunc apply; + + } T2_Hints_FuncsRec; + + + /* */ + + + typedef struct PSHinter_Interface_ + { + PSH_Globals_Funcs (*get_globals_funcs)( FT_Module module ); + T1_Hints_Funcs (*get_t1_funcs) ( FT_Module module ); + T2_Hints_Funcs (*get_t2_funcs) ( FT_Module module ); + + } PSHinter_Interface; + + typedef PSHinter_Interface* PSHinter_Service; + + +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_PSHINTER_INTERFACE( \ + class_, \ + get_globals_funcs_, \ + get_t1_funcs_, \ + get_t2_funcs_ ) \ + static const PSHinter_Interface class_ = \ + { \ + get_globals_funcs_, \ + get_t1_funcs_, \ + get_t2_funcs_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_PSHINTER_INTERFACE( \ + class_, \ + get_globals_funcs_, \ + get_t1_funcs_, \ + get_t2_funcs_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Library library, \ + PSHinter_Interface* clazz ) \ + { \ + FT_UNUSED( library ); \ + \ + clazz->get_globals_funcs = get_globals_funcs_; \ + clazz->get_t1_funcs = get_t1_funcs_; \ + clazz->get_t2_funcs = get_t2_funcs_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + +FT_END_HEADER + +#endif /* __PSHINTS_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svbdf.h b/win64/include/freetype/internal/services/svbdf.h new file mode 100644 index 00000000..0974752a --- /dev/null +++ b/win64/include/freetype/internal/services/svbdf.h @@ -0,0 +1,82 @@ +/***************************************************************************/ +/* */ +/* svbdf.h */ +/* */ +/* The FreeType BDF services (specification). */ +/* */ +/* Copyright 2003, 2009, 2012 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __SVBDF_H__ +#define __SVBDF_H__ + +#include FT_BDF_H +#include FT_INTERNAL_SERVICE_H + + +FT_BEGIN_HEADER + + +#define FT_SERVICE_ID_BDF "bdf" + + typedef FT_Error + (*FT_BDF_GetCharsetIdFunc)( FT_Face face, + const char* *acharset_encoding, + const char* *acharset_registry ); + + typedef FT_Error + (*FT_BDF_GetPropertyFunc)( FT_Face face, + const char* prop_name, + BDF_PropertyRec *aproperty ); + + + FT_DEFINE_SERVICE( BDF ) + { + FT_BDF_GetCharsetIdFunc get_charset_id; + FT_BDF_GetPropertyFunc get_property; + }; + + +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_SERVICE_BDFRec( class_, \ + get_charset_id_, \ + get_property_ ) \ + static const FT_Service_BDFRec class_ = \ + { \ + get_charset_id_, get_property_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_SERVICE_BDFRec( class_, \ + get_charset_id_, \ + get_property_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Service_BDFRec* clazz ) \ + { \ + clazz->get_charset_id = get_charset_id_; \ + clazz->get_property = get_property_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + /* */ + + +FT_END_HEADER + + +#endif /* __SVBDF_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svcid.h b/win64/include/freetype/internal/services/svcid.h new file mode 100644 index 00000000..6be3f937 --- /dev/null +++ b/win64/include/freetype/internal/services/svcid.h @@ -0,0 +1,89 @@ +/***************************************************************************/ +/* */ +/* svcid.h */ +/* */ +/* The FreeType CID font services (specification). */ +/* */ +/* Copyright 2007, 2009, 2012 by Derek Clegg, 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. */ +/* */ +/***************************************************************************/ + + +#ifndef __SVCID_H__ +#define __SVCID_H__ + +#include FT_INTERNAL_SERVICE_H + + +FT_BEGIN_HEADER + + +#define FT_SERVICE_ID_CID "CID" + + typedef FT_Error + (*FT_CID_GetRegistryOrderingSupplementFunc)( FT_Face face, + const char* *registry, + const char* *ordering, + FT_Int *supplement ); + typedef FT_Error + (*FT_CID_GetIsInternallyCIDKeyedFunc)( FT_Face face, + FT_Bool *is_cid ); + typedef FT_Error + (*FT_CID_GetCIDFromGlyphIndexFunc)( FT_Face face, + FT_UInt glyph_index, + FT_UInt *cid ); + + FT_DEFINE_SERVICE( CID ) + { + FT_CID_GetRegistryOrderingSupplementFunc get_ros; + FT_CID_GetIsInternallyCIDKeyedFunc get_is_cid; + FT_CID_GetCIDFromGlyphIndexFunc get_cid_from_glyph_index; + }; + + +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_SERVICE_CIDREC( class_, \ + get_ros_, \ + get_is_cid_, \ + get_cid_from_glyph_index_ ) \ + static const FT_Service_CIDRec class_ = \ + { \ + get_ros_, get_is_cid_, get_cid_from_glyph_index_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_SERVICE_CIDREC( class_, \ + get_ros_, \ + get_is_cid_, \ + get_cid_from_glyph_index_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Library library, \ + FT_Service_CIDRec* clazz ) \ + { \ + FT_UNUSED( library ); \ + \ + clazz->get_ros = get_ros_; \ + clazz->get_is_cid = get_is_cid_; \ + clazz->get_cid_from_glyph_index = get_cid_from_glyph_index_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + /* */ + + +FT_END_HEADER + + +#endif /* __SVCID_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svgldict.h b/win64/include/freetype/internal/services/svgldict.h new file mode 100644 index 00000000..1d125347 --- /dev/null +++ b/win64/include/freetype/internal/services/svgldict.h @@ -0,0 +1,88 @@ +/***************************************************************************/ +/* */ +/* svgldict.h */ +/* */ +/* The FreeType glyph dictionary services (specification). */ +/* */ +/* Copyright 2003, 2009, 2012 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __SVGLDICT_H__ +#define __SVGLDICT_H__ + +#include FT_INTERNAL_SERVICE_H + + +FT_BEGIN_HEADER + + + /* + * A service used to retrieve glyph names, as well as to find the + * index of a given glyph name in a font. + * + */ + +#define FT_SERVICE_ID_GLYPH_DICT "glyph-dict" + + + typedef FT_Error + (*FT_GlyphDict_GetNameFunc)( FT_Face face, + FT_UInt glyph_index, + FT_Pointer buffer, + FT_UInt buffer_max ); + + typedef FT_UInt + (*FT_GlyphDict_NameIndexFunc)( FT_Face face, + FT_String* glyph_name ); + + + FT_DEFINE_SERVICE( GlyphDict ) + { + FT_GlyphDict_GetNameFunc get_name; + FT_GlyphDict_NameIndexFunc name_index; /* optional */ + }; + + +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_SERVICE_GLYPHDICTREC( class_, \ + get_name_, \ + name_index_) \ + static const FT_Service_GlyphDictRec class_ = \ + { \ + get_name_, name_index_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_SERVICE_GLYPHDICTREC( class_, \ + get_name_, \ + name_index_) \ + void \ + FT_Init_Class_ ## class_( FT_Library library, \ + FT_Service_GlyphDictRec* clazz ) \ + { \ + FT_UNUSED( library ); \ + \ + clazz->get_name = get_name_; \ + clazz->name_index = name_index_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + /* */ + + +FT_END_HEADER + + +#endif /* __SVGLDICT_H__ */ diff --git a/win64/include/freetype/internal/services/svgxval.h b/win64/include/freetype/internal/services/svgxval.h new file mode 100644 index 00000000..2cdab506 --- /dev/null +++ b/win64/include/freetype/internal/services/svgxval.h @@ -0,0 +1,72 @@ +/***************************************************************************/ +/* */ +/* svgxval.h */ +/* */ +/* FreeType API for validating TrueTypeGX/AAT tables (specification). */ +/* */ +/* Copyright 2004, 2005 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 */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + +/***************************************************************************/ +/* */ +/* gxvalid is derived from both gxlayout module and otvalid module. */ +/* Development of gxlayout is supported by the Information-technology */ +/* Promotion Agency(IPA), Japan. */ +/* */ +/***************************************************************************/ + + +#ifndef __SVGXVAL_H__ +#define __SVGXVAL_H__ + +#include FT_GX_VALIDATE_H +#include FT_INTERNAL_VALIDATE_H + +FT_BEGIN_HEADER + + +#define FT_SERVICE_ID_GX_VALIDATE "truetypegx-validate" +#define FT_SERVICE_ID_CLASSICKERN_VALIDATE "classickern-validate" + + typedef FT_Error + (*gxv_validate_func)( FT_Face face, + FT_UInt gx_flags, + FT_Bytes tables[FT_VALIDATE_GX_LENGTH], + FT_UInt table_length ); + + + typedef FT_Error + (*ckern_validate_func)( FT_Face face, + FT_UInt ckern_flags, + FT_Bytes *ckern_table ); + + + FT_DEFINE_SERVICE( GXvalidate ) + { + gxv_validate_func validate; + }; + + FT_DEFINE_SERVICE( CKERNvalidate ) + { + ckern_validate_func validate; + }; + + /* */ + + +FT_END_HEADER + + +#endif /* __SVGXVAL_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svkern.h b/win64/include/freetype/internal/services/svkern.h new file mode 100644 index 00000000..1488adf4 --- /dev/null +++ b/win64/include/freetype/internal/services/svkern.h @@ -0,0 +1,51 @@ +/***************************************************************************/ +/* */ +/* svkern.h */ +/* */ +/* The FreeType Kerning service (specification). */ +/* */ +/* Copyright 2006 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __SVKERN_H__ +#define __SVKERN_H__ + +#include FT_INTERNAL_SERVICE_H +#include FT_TRUETYPE_TABLES_H + + +FT_BEGIN_HEADER + +#define FT_SERVICE_ID_KERNING "kerning" + + + typedef FT_Error + (*FT_Kerning_TrackGetFunc)( FT_Face face, + FT_Fixed point_size, + FT_Int degree, + FT_Fixed* akerning ); + + FT_DEFINE_SERVICE( Kerning ) + { + FT_Kerning_TrackGetFunc get_track; + }; + + /* */ + + +FT_END_HEADER + + +#endif /* __SVKERN_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svmm.h b/win64/include/freetype/internal/services/svmm.h new file mode 100644 index 00000000..b08a663d --- /dev/null +++ b/win64/include/freetype/internal/services/svmm.h @@ -0,0 +1,113 @@ +/***************************************************************************/ +/* */ +/* svmm.h */ +/* */ +/* The FreeType Multiple Masters and GX var services (specification). */ +/* */ +/* Copyright 2003, 2004, 2009, 2012 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __SVMM_H__ +#define __SVMM_H__ + +#include FT_INTERNAL_SERVICE_H + + +FT_BEGIN_HEADER + + + /* + * A service used to manage multiple-masters data in a given face. + * + * See the related APIs in `ftmm.h' (FT_MULTIPLE_MASTERS_H). + * + */ + +#define FT_SERVICE_ID_MULTI_MASTERS "multi-masters" + + + typedef FT_Error + (*FT_Get_MM_Func)( FT_Face face, + FT_Multi_Master* master ); + + typedef FT_Error + (*FT_Get_MM_Var_Func)( FT_Face face, + FT_MM_Var* *master ); + + typedef FT_Error + (*FT_Set_MM_Design_Func)( FT_Face face, + FT_UInt num_coords, + FT_Long* coords ); + + typedef FT_Error + (*FT_Set_Var_Design_Func)( FT_Face face, + FT_UInt num_coords, + FT_Fixed* coords ); + + typedef FT_Error + (*FT_Set_MM_Blend_Func)( FT_Face face, + FT_UInt num_coords, + FT_Long* coords ); + + + FT_DEFINE_SERVICE( MultiMasters ) + { + FT_Get_MM_Func get_mm; + FT_Set_MM_Design_Func set_mm_design; + FT_Set_MM_Blend_Func set_mm_blend; + FT_Get_MM_Var_Func get_mm_var; + FT_Set_Var_Design_Func set_var_design; + }; + + +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \ + get_mm_, \ + set_mm_design_, \ + set_mm_blend_, \ + get_mm_var_, \ + set_var_design_ ) \ + static const FT_Service_MultiMastersRec class_ = \ + { \ + get_mm_, set_mm_design_, set_mm_blend_, get_mm_var_, set_var_design_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_, \ + get_mm_, \ + set_mm_design_, \ + set_mm_blend_, \ + get_mm_var_, \ + set_var_design_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Service_MultiMastersRec* clazz ) \ + { \ + clazz->get_mm = get_mm_; \ + clazz->set_mm_design = set_mm_design_; \ + clazz->set_mm_blend = set_mm_blend_; \ + clazz->get_mm_var = get_mm_var_; \ + clazz->set_var_design = set_var_design_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + /* */ + + +FT_END_HEADER + +#endif /* __SVMM_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svotval.h b/win64/include/freetype/internal/services/svotval.h new file mode 100644 index 00000000..970bbd57 --- /dev/null +++ b/win64/include/freetype/internal/services/svotval.h @@ -0,0 +1,55 @@ +/***************************************************************************/ +/* */ +/* svotval.h */ +/* */ +/* The FreeType OpenType validation service (specification). */ +/* */ +/* Copyright 2004, 2006 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __SVOTVAL_H__ +#define __SVOTVAL_H__ + +#include FT_OPENTYPE_VALIDATE_H +#include FT_INTERNAL_VALIDATE_H + +FT_BEGIN_HEADER + + +#define FT_SERVICE_ID_OPENTYPE_VALIDATE "opentype-validate" + + + typedef FT_Error + (*otv_validate_func)( FT_Face volatile face, + FT_UInt ot_flags, + FT_Bytes *base, + FT_Bytes *gdef, + FT_Bytes *gpos, + FT_Bytes *gsub, + FT_Bytes *jstf ); + + + FT_DEFINE_SERVICE( OTvalidate ) + { + otv_validate_func validate; + }; + + /* */ + + +FT_END_HEADER + + +#endif /* __SVOTVAL_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svpfr.h b/win64/include/freetype/internal/services/svpfr.h new file mode 100644 index 00000000..462786f9 --- /dev/null +++ b/win64/include/freetype/internal/services/svpfr.h @@ -0,0 +1,66 @@ +/***************************************************************************/ +/* */ +/* svpfr.h */ +/* */ +/* Internal PFR service functions (specification). */ +/* */ +/* Copyright 2003, 2006 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __SVPFR_H__ +#define __SVPFR_H__ + +#include FT_PFR_H +#include FT_INTERNAL_SERVICE_H + + +FT_BEGIN_HEADER + + +#define FT_SERVICE_ID_PFR_METRICS "pfr-metrics" + + + typedef FT_Error + (*FT_PFR_GetMetricsFunc)( FT_Face face, + FT_UInt *aoutline, + FT_UInt *ametrics, + FT_Fixed *ax_scale, + FT_Fixed *ay_scale ); + + typedef FT_Error + (*FT_PFR_GetKerningFunc)( FT_Face face, + FT_UInt left, + FT_UInt right, + FT_Vector *avector ); + + typedef FT_Error + (*FT_PFR_GetAdvanceFunc)( FT_Face face, + FT_UInt gindex, + FT_Pos *aadvance ); + + + FT_DEFINE_SERVICE( PfrMetrics ) + { + FT_PFR_GetMetricsFunc get_metrics; + FT_PFR_GetKerningFunc get_kerning; + FT_PFR_GetAdvanceFunc get_advance; + + }; + + /* */ + +FT_END_HEADER + +#endif /* __SVPFR_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svpostnm.h b/win64/include/freetype/internal/services/svpostnm.h new file mode 100644 index 00000000..a76b4fe0 --- /dev/null +++ b/win64/include/freetype/internal/services/svpostnm.h @@ -0,0 +1,81 @@ +/***************************************************************************/ +/* */ +/* svpostnm.h */ +/* */ +/* The FreeType PostScript name services (specification). */ +/* */ +/* Copyright 2003, 2007, 2009, 2012 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __SVPOSTNM_H__ +#define __SVPOSTNM_H__ + +#include FT_INTERNAL_SERVICE_H + + +FT_BEGIN_HEADER + + /* + * A trivial service used to retrieve the PostScript name of a given + * font when available. The `get_name' field should never be NULL. + * + * The corresponding function can return NULL to indicate that the + * PostScript name is not available. + * + * The name is owned by the face and will be destroyed with it. + */ + +#define FT_SERVICE_ID_POSTSCRIPT_FONT_NAME "postscript-font-name" + + + typedef const char* + (*FT_PsName_GetFunc)( FT_Face face ); + + + FT_DEFINE_SERVICE( PsFontName ) + { + FT_PsName_GetFunc get_ps_font_name; + }; + + +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_SERVICE_PSFONTNAMEREC( class_, get_ps_font_name_ ) \ + static const FT_Service_PsFontNameRec class_ = \ + { \ + get_ps_font_name_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_SERVICE_PSFONTNAMEREC( class_, get_ps_font_name_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Library library, \ + FT_Service_PsFontNameRec* clazz ) \ + { \ + FT_UNUSED( library ); \ + \ + clazz->get_ps_font_name = get_ps_font_name_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + /* */ + + +FT_END_HEADER + + +#endif /* __SVPOSTNM_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svprop.h b/win64/include/freetype/internal/services/svprop.h new file mode 100644 index 00000000..22da0bbc --- /dev/null +++ b/win64/include/freetype/internal/services/svprop.h @@ -0,0 +1,81 @@ +/***************************************************************************/ +/* */ +/* svprop.h */ +/* */ +/* The FreeType property service (specification). */ +/* */ +/* Copyright 2012 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __SVPROP_H__ +#define __SVPROP_H__ + + +FT_BEGIN_HEADER + + +#define FT_SERVICE_ID_PROPERTIES "properties" + + + typedef FT_Error + (*FT_Properties_SetFunc)( FT_Module module, + const char* property_name, + const void* value ); + + typedef FT_Error + (*FT_Properties_GetFunc)( FT_Module module, + const char* property_name, + void* value ); + + + FT_DEFINE_SERVICE( Properties ) + { + FT_Properties_SetFunc set_property; + FT_Properties_GetFunc get_property; + }; + + +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \ + set_property_, \ + get_property_ ) \ + static const FT_Service_PropertiesRec class_ = \ + { \ + set_property_, \ + get_property_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_SERVICE_PROPERTIESREC( class_, \ + set_property_, \ + get_property_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Service_PropertiesRec* clazz ) \ + { \ + clazz->set_property = set_property_; \ + clazz->get_property = get_property_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + /* */ + + +FT_END_HEADER + + +#endif /* __SVPROP_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svpscmap.h b/win64/include/freetype/internal/services/svpscmap.h new file mode 100644 index 00000000..030948ea --- /dev/null +++ b/win64/include/freetype/internal/services/svpscmap.h @@ -0,0 +1,177 @@ +/***************************************************************************/ +/* */ +/* svpscmap.h */ +/* */ +/* The FreeType PostScript charmap service (specification). */ +/* */ +/* Copyright 2003, 2006, 2009, 2012 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __SVPSCMAP_H__ +#define __SVPSCMAP_H__ + +#include FT_INTERNAL_OBJECTS_H + + +FT_BEGIN_HEADER + + +#define FT_SERVICE_ID_POSTSCRIPT_CMAPS "postscript-cmaps" + + + /* + * Adobe glyph name to unicode value. + */ + typedef FT_UInt32 + (*PS_Unicode_ValueFunc)( const char* glyph_name ); + + /* + * Macintosh name id to glyph name. NULL if invalid index. + */ + typedef const char* + (*PS_Macintosh_NameFunc)( FT_UInt name_index ); + + /* + * Adobe standard string ID to glyph name. NULL if invalid index. + */ + typedef const char* + (*PS_Adobe_Std_StringsFunc)( FT_UInt string_index ); + + + /* + * Simple unicode -> glyph index charmap built from font glyph names + * table. + */ + typedef struct PS_UniMap_ + { + FT_UInt32 unicode; /* bit 31 set: is glyph variant */ + FT_UInt glyph_index; + + } PS_UniMap; + + + typedef struct PS_UnicodesRec_* PS_Unicodes; + + typedef struct PS_UnicodesRec_ + { + FT_CMapRec cmap; + FT_UInt num_maps; + PS_UniMap* maps; + + } PS_UnicodesRec; + + + /* + * A function which returns a glyph name for a given index. Returns + * NULL if invalid index. + */ + typedef const char* + (*PS_GetGlyphNameFunc)( FT_Pointer data, + FT_UInt string_index ); + + /* + * A function used to release the glyph name returned by + * PS_GetGlyphNameFunc, when needed + */ + typedef void + (*PS_FreeGlyphNameFunc)( FT_Pointer data, + const char* name ); + + typedef FT_Error + (*PS_Unicodes_InitFunc)( FT_Memory memory, + PS_Unicodes unicodes, + FT_UInt num_glyphs, + PS_GetGlyphNameFunc get_glyph_name, + PS_FreeGlyphNameFunc free_glyph_name, + FT_Pointer glyph_data ); + + typedef FT_UInt + (*PS_Unicodes_CharIndexFunc)( PS_Unicodes unicodes, + FT_UInt32 unicode ); + + typedef FT_UInt32 + (*PS_Unicodes_CharNextFunc)( PS_Unicodes unicodes, + FT_UInt32 *unicode ); + + + FT_DEFINE_SERVICE( PsCMaps ) + { + PS_Unicode_ValueFunc unicode_value; + + PS_Unicodes_InitFunc unicodes_init; + PS_Unicodes_CharIndexFunc unicodes_char_index; + PS_Unicodes_CharNextFunc unicodes_char_next; + + PS_Macintosh_NameFunc macintosh_name; + PS_Adobe_Std_StringsFunc adobe_std_strings; + const unsigned short* adobe_std_encoding; + const unsigned short* adobe_expert_encoding; + }; + + +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_SERVICE_PSCMAPSREC( class_, \ + unicode_value_, \ + unicodes_init_, \ + unicodes_char_index_, \ + unicodes_char_next_, \ + macintosh_name_, \ + adobe_std_strings_, \ + adobe_std_encoding_, \ + adobe_expert_encoding_ ) \ + static const FT_Service_PsCMapsRec class_ = \ + { \ + unicode_value_, unicodes_init_, \ + unicodes_char_index_, unicodes_char_next_, macintosh_name_, \ + adobe_std_strings_, adobe_std_encoding_, adobe_expert_encoding_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_SERVICE_PSCMAPSREC( class_, \ + unicode_value_, \ + unicodes_init_, \ + unicodes_char_index_, \ + unicodes_char_next_, \ + macintosh_name_, \ + adobe_std_strings_, \ + adobe_std_encoding_, \ + adobe_expert_encoding_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Library library, \ + FT_Service_PsCMapsRec* clazz ) \ + { \ + FT_UNUSED( library ); \ + \ + clazz->unicode_value = unicode_value_; \ + clazz->unicodes_init = unicodes_init_; \ + clazz->unicodes_char_index = unicodes_char_index_; \ + clazz->unicodes_char_next = unicodes_char_next_; \ + clazz->macintosh_name = macintosh_name_; \ + clazz->adobe_std_strings = adobe_std_strings_; \ + clazz->adobe_std_encoding = adobe_std_encoding_; \ + clazz->adobe_expert_encoding = adobe_expert_encoding_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + /* */ + + +FT_END_HEADER + + +#endif /* __SVPSCMAP_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svpsinfo.h b/win64/include/freetype/internal/services/svpsinfo.h new file mode 100644 index 00000000..4bfb5067 --- /dev/null +++ b/win64/include/freetype/internal/services/svpsinfo.h @@ -0,0 +1,111 @@ +/***************************************************************************/ +/* */ +/* svpsinfo.h */ +/* */ +/* The FreeType PostScript info service (specification). */ +/* */ +/* Copyright 2003, 2004, 2009, 2011, 2012 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __SVPSINFO_H__ +#define __SVPSINFO_H__ + +#include FT_INTERNAL_SERVICE_H +#include FT_INTERNAL_TYPE1_TYPES_H + + +FT_BEGIN_HEADER + + +#define FT_SERVICE_ID_POSTSCRIPT_INFO "postscript-info" + + + typedef FT_Error + (*PS_GetFontInfoFunc)( FT_Face face, + PS_FontInfoRec* afont_info ); + + typedef FT_Error + (*PS_GetFontExtraFunc)( FT_Face face, + PS_FontExtraRec* afont_extra ); + + typedef FT_Int + (*PS_HasGlyphNamesFunc)( FT_Face face ); + + typedef FT_Error + (*PS_GetFontPrivateFunc)( FT_Face face, + PS_PrivateRec* afont_private ); + + typedef FT_Long + (*PS_GetFontValueFunc)( FT_Face face, + PS_Dict_Keys key, + FT_UInt idx, + void *value, + FT_Long value_len ); + + + FT_DEFINE_SERVICE( PsInfo ) + { + PS_GetFontInfoFunc ps_get_font_info; + PS_GetFontExtraFunc ps_get_font_extra; + PS_HasGlyphNamesFunc ps_has_glyph_names; + PS_GetFontPrivateFunc ps_get_font_private; + PS_GetFontValueFunc ps_get_font_value; + }; + + +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_SERVICE_PSINFOREC( class_, \ + get_font_info_, \ + ps_get_font_extra_, \ + has_glyph_names_, \ + get_font_private_, \ + get_font_value_ ) \ + static const FT_Service_PsInfoRec class_ = \ + { \ + get_font_info_, ps_get_font_extra_, has_glyph_names_, \ + get_font_private_, get_font_value_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_SERVICE_PSINFOREC( class_, \ + get_font_info_, \ + ps_get_font_extra_, \ + has_glyph_names_, \ + get_font_private_, \ + get_font_value_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Library library, \ + FT_Service_PsInfoRec* clazz ) \ + { \ + FT_UNUSED( library ); \ + \ + clazz->ps_get_font_info = get_font_info_; \ + clazz->ps_get_font_extra = ps_get_font_extra_; \ + clazz->ps_has_glyph_names = has_glyph_names_; \ + clazz->ps_get_font_private = get_font_private_; \ + clazz->ps_get_font_value = get_font_value_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + /* */ + + +FT_END_HEADER + + +#endif /* __SVPSINFO_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svsfnt.h b/win64/include/freetype/internal/services/svsfnt.h new file mode 100644 index 00000000..d3835aa1 --- /dev/null +++ b/win64/include/freetype/internal/services/svsfnt.h @@ -0,0 +1,103 @@ +/***************************************************************************/ +/* */ +/* svsfnt.h */ +/* */ +/* The FreeType SFNT table loading service (specification). */ +/* */ +/* Copyright 2003, 2004, 2009, 2012 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __SVSFNT_H__ +#define __SVSFNT_H__ + +#include FT_INTERNAL_SERVICE_H +#include FT_TRUETYPE_TABLES_H + + +FT_BEGIN_HEADER + + + /* + * SFNT table loading service. + */ + +#define FT_SERVICE_ID_SFNT_TABLE "sfnt-table" + + + /* + * Used to implement FT_Load_Sfnt_Table(). + */ + typedef FT_Error + (*FT_SFNT_TableLoadFunc)( FT_Face face, + FT_ULong tag, + FT_Long offset, + FT_Byte* buffer, + FT_ULong* length ); + + /* + * Used to implement FT_Get_Sfnt_Table(). + */ + typedef void* + (*FT_SFNT_TableGetFunc)( FT_Face face, + FT_Sfnt_Tag tag ); + + + /* + * Used to implement FT_Sfnt_Table_Info(). + */ + typedef FT_Error + (*FT_SFNT_TableInfoFunc)( FT_Face face, + FT_UInt idx, + FT_ULong *tag, + FT_ULong *offset, + FT_ULong *length ); + + + FT_DEFINE_SERVICE( SFNT_Table ) + { + FT_SFNT_TableLoadFunc load_table; + FT_SFNT_TableGetFunc get_table; + FT_SFNT_TableInfoFunc table_info; + }; + + +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \ + static const FT_Service_SFNT_TableRec class_ = \ + { \ + load_, get_, info_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Service_SFNT_TableRec* clazz ) \ + { \ + clazz->load_table = load_; \ + clazz->get_table = get_; \ + clazz->table_info = info_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + /* */ + + +FT_END_HEADER + + +#endif /* __SVSFNT_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svttcmap.h b/win64/include/freetype/internal/services/svttcmap.h new file mode 100644 index 00000000..4370f4c2 --- /dev/null +++ b/win64/include/freetype/internal/services/svttcmap.h @@ -0,0 +1,107 @@ +/***************************************************************************/ +/* */ +/* svttcmap.h */ +/* */ +/* The FreeType TrueType/sfnt cmap extra information service. */ +/* */ +/* Copyright 2003 by */ +/* Masatake YAMATO, Redhat K.K. */ +/* */ +/* Copyright 2003, 2008, 2009, 2012, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + +/* Development of this service is support of + Information-technology Promotion Agency, Japan. */ + +#ifndef __SVTTCMAP_H__ +#define __SVTTCMAP_H__ + +#include FT_INTERNAL_SERVICE_H +#include FT_TRUETYPE_TABLES_H + + +FT_BEGIN_HEADER + + +#define FT_SERVICE_ID_TT_CMAP "tt-cmaps" + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_CMapInfo */ + /* */ + /* <Description> */ + /* A structure used to store TrueType/sfnt specific cmap information */ + /* which is not covered by the generic @FT_CharMap structure. This */ + /* structure can be accessed with the @FT_Get_TT_CMap_Info function. */ + /* */ + /* <Fields> */ + /* language :: */ + /* The language ID used in Mac fonts. Definitions of values are in */ + /* `ttnameid.h'. */ + /* */ + /* format :: */ + /* The cmap format. OpenType 1.5 defines the formats 0 (byte */ + /* encoding table), 2~(high-byte mapping through table), 4~(segment */ + /* mapping to delta values), 6~(trimmed table mapping), 8~(mixed */ + /* 16-bit and 32-bit coverage), 10~(trimmed array), 12~(segmented */ + /* coverage), and 14 (Unicode Variation Sequences). */ + /* */ + typedef struct TT_CMapInfo_ + { + FT_ULong language; + FT_Long format; + + } TT_CMapInfo; + + + typedef FT_Error + (*TT_CMap_Info_GetFunc)( FT_CharMap charmap, + TT_CMapInfo *cmap_info ); + + + FT_DEFINE_SERVICE( TTCMaps ) + { + TT_CMap_Info_GetFunc get_cmap_info; + }; + +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \ + static const FT_Service_TTCMapsRec class_ = \ + { \ + get_cmap_info_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_SERVICE_TTCMAPSREC( class_, get_cmap_info_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Library library, \ + FT_Service_TTCMapsRec* clazz ) \ + { \ + FT_UNUSED( library ); \ + \ + clazz->get_cmap_info = get_cmap_info_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + /* */ + + +FT_END_HEADER + +#endif /* __SVTTCMAP_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svtteng.h b/win64/include/freetype/internal/services/svtteng.h new file mode 100644 index 00000000..58e02a6f --- /dev/null +++ b/win64/include/freetype/internal/services/svtteng.h @@ -0,0 +1,53 @@ +/***************************************************************************/ +/* */ +/* svtteng.h */ +/* */ +/* The FreeType TrueType engine query service (specification). */ +/* */ +/* Copyright 2006 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __SVTTENG_H__ +#define __SVTTENG_H__ + +#include FT_INTERNAL_SERVICE_H +#include FT_MODULE_H + + +FT_BEGIN_HEADER + + + /* + * SFNT table loading service. + */ + +#define FT_SERVICE_ID_TRUETYPE_ENGINE "truetype-engine" + + /* + * Used to implement FT_Get_TrueType_Engine_Type + */ + + FT_DEFINE_SERVICE( TrueTypeEngine ) + { + FT_TrueTypeEngineType engine_type; + }; + + /* */ + + +FT_END_HEADER + + +#endif /* __SVTTENG_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svttglyf.h b/win64/include/freetype/internal/services/svttglyf.h new file mode 100644 index 00000000..369eb842 --- /dev/null +++ b/win64/include/freetype/internal/services/svttglyf.h @@ -0,0 +1,68 @@ +/***************************************************************************/ +/* */ +/* svttglyf.h */ +/* */ +/* The FreeType TrueType glyph service. */ +/* */ +/* Copyright 2007, 2009, 2012 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. */ +/* */ +/***************************************************************************/ + +#ifndef __SVTTGLYF_H__ +#define __SVTTGLYF_H__ + +#include FT_INTERNAL_SERVICE_H +#include FT_TRUETYPE_TABLES_H + + +FT_BEGIN_HEADER + + +#define FT_SERVICE_ID_TT_GLYF "tt-glyf" + + + typedef FT_ULong + (*TT_Glyf_GetLocationFunc)( FT_Face face, + FT_UInt gindex, + FT_ULong *psize ); + + FT_DEFINE_SERVICE( TTGlyf ) + { + TT_Glyf_GetLocationFunc get_location; + }; + + +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_SERVICE_TTGLYFREC( class_, get_location_ ) \ + static const FT_Service_TTGlyfRec class_ = \ + { \ + get_location_ \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_DEFINE_SERVICE_TTGLYFREC( class_, get_location_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Service_TTGlyfRec* clazz ) \ + { \ + clazz->get_location = get_location_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + + /* */ + + +FT_END_HEADER + +#endif /* __SVTTGLYF_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svwinfnt.h b/win64/include/freetype/internal/services/svwinfnt.h new file mode 100644 index 00000000..57f7765d --- /dev/null +++ b/win64/include/freetype/internal/services/svwinfnt.h @@ -0,0 +1,50 @@ +/***************************************************************************/ +/* */ +/* svwinfnt.h */ +/* */ +/* The FreeType Windows FNT/FONT service (specification). */ +/* */ +/* Copyright 2003 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __SVWINFNT_H__ +#define __SVWINFNT_H__ + +#include FT_INTERNAL_SERVICE_H +#include FT_WINFONTS_H + + +FT_BEGIN_HEADER + + +#define FT_SERVICE_ID_WINFNT "winfonts" + + typedef FT_Error + (*FT_WinFnt_GetHeaderFunc)( FT_Face face, + FT_WinFNT_HeaderRec *aheader ); + + + FT_DEFINE_SERVICE( WinFnt ) + { + FT_WinFnt_GetHeaderFunc get_header; + }; + + /* */ + + +FT_END_HEADER + + +#endif /* __SVWINFNT_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/services/svxf86nm.h b/win64/include/freetype/internal/services/svxf86nm.h new file mode 100644 index 00000000..ca5d884a --- /dev/null +++ b/win64/include/freetype/internal/services/svxf86nm.h @@ -0,0 +1,55 @@ +/***************************************************************************/ +/* */ +/* svxf86nm.h */ +/* */ +/* The FreeType XFree86 services (specification only). */ +/* */ +/* Copyright 2003 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __SVXF86NM_H__ +#define __SVXF86NM_H__ + +#include FT_INTERNAL_SERVICE_H + + +FT_BEGIN_HEADER + + + /* + * A trivial service used to return the name of a face's font driver, + * according to the XFree86 nomenclature. Note that the service data + * is a simple constant string pointer. + */ + +#define FT_SERVICE_ID_XF86_NAME "xf86-driver-name" + +#define FT_XF86_FORMAT_TRUETYPE "TrueType" +#define FT_XF86_FORMAT_TYPE_1 "Type 1" +#define FT_XF86_FORMAT_BDF "BDF" +#define FT_XF86_FORMAT_PCF "PCF" +#define FT_XF86_FORMAT_TYPE_42 "Type 42" +#define FT_XF86_FORMAT_CID "CID Type 1" +#define FT_XF86_FORMAT_CFF "CFF" +#define FT_XF86_FORMAT_PFR "PFR" +#define FT_XF86_FORMAT_WINFNT "Windows FNT" + + /* */ + + +FT_END_HEADER + + +#endif /* __SVXF86NM_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/sfnt.h b/win64/include/freetype/internal/sfnt.h new file mode 100644 index 00000000..d558e869 --- /dev/null +++ b/win64/include/freetype/internal/sfnt.h @@ -0,0 +1,711 @@ +/***************************************************************************/ +/* */ +/* sfnt.h */ +/* */ +/* High-level `sfnt' driver interface (specification). */ +/* */ +/* Copyright 1996-2006, 2009, 2012-2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __SFNT_H__ +#define __SFNT_H__ + + +#include <ft2build.h> +#include FT_INTERNAL_DRIVER_H +#include FT_INTERNAL_TRUETYPE_TYPES_H + + +FT_BEGIN_HEADER + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Init_Face_Func */ + /* */ + /* <Description> */ + /* First part of the SFNT face object initialization. This finds */ + /* the face in a SFNT file or collection, and load its format tag in */ + /* face->format_tag. */ + /* */ + /* <Input> */ + /* stream :: The input stream. */ + /* */ + /* face :: A handle to the target face object. */ + /* */ + /* face_index :: The index of the TrueType font, if we are opening a */ + /* collection. */ + /* */ + /* num_params :: The number of additional parameters. */ + /* */ + /* params :: Optional additional parameters. */ + /* */ + /* <Return> */ + /* FreeType error code. 0 means success. */ + /* */ + /* <Note> */ + /* The stream cursor must be at the font file's origin. */ + /* */ + /* This function recognizes fonts embedded in a `TrueType */ + /* collection'. */ + /* */ + /* Once the format tag has been validated by the font driver, it */ + /* should then call the TT_Load_Face_Func() callback to read the rest */ + /* of the SFNT tables in the object. */ + /* */ + typedef FT_Error + (*TT_Init_Face_Func)( FT_Stream stream, + TT_Face face, + FT_Int face_index, + FT_Int num_params, + FT_Parameter* params ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Load_Face_Func */ + /* */ + /* <Description> */ + /* Second part of the SFNT face object initialization. This loads */ + /* the common SFNT tables (head, OS/2, maxp, metrics, etc.) in the */ + /* face object. */ + /* */ + /* <Input> */ + /* stream :: The input stream. */ + /* */ + /* face :: A handle to the target face object. */ + /* */ + /* face_index :: The index of the TrueType font, if we are opening a */ + /* collection. */ + /* */ + /* num_params :: The number of additional parameters. */ + /* */ + /* params :: Optional additional parameters. */ + /* */ + /* <Return> */ + /* FreeType error code. 0 means success. */ + /* */ + /* <Note> */ + /* This function must be called after TT_Init_Face_Func(). */ + /* */ + typedef FT_Error + (*TT_Load_Face_Func)( FT_Stream stream, + TT_Face face, + FT_Int face_index, + FT_Int num_params, + FT_Parameter* params ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Done_Face_Func */ + /* */ + /* <Description> */ + /* A callback used to delete the common SFNT data from a face. */ + /* */ + /* <Input> */ + /* face :: A handle to the target face object. */ + /* */ + /* <Note> */ + /* This function does NOT destroy the face object. */ + /* */ + typedef void + (*TT_Done_Face_Func)( TT_Face face ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Load_Any_Func */ + /* */ + /* <Description> */ + /* Load any font table into client memory. */ + /* */ + /* <Input> */ + /* face :: The face object to look for. */ + /* */ + /* tag :: The tag of table to load. Use the value 0 if you want */ + /* to access the whole font file, else set this parameter */ + /* to a valid TrueType table tag that you can forge with */ + /* the MAKE_TT_TAG macro. */ + /* */ + /* offset :: The starting offset in the table (or the file if */ + /* tag == 0). */ + /* */ + /* length :: The address of the decision variable: */ + /* */ + /* If length == NULL: */ + /* Loads the whole table. Returns an error if */ + /* `offset' == 0! */ + /* */ + /* If *length == 0: */ + /* Exits immediately; returning the length of the given */ + /* table or of the font file, depending on the value of */ + /* `tag'. */ + /* */ + /* If *length != 0: */ + /* Loads the next `length' bytes of table or font, */ + /* starting at offset `offset' (in table or font too). */ + /* */ + /* <Output> */ + /* buffer :: The address of target buffer. */ + /* */ + /* <Return> */ + /* TrueType error code. 0 means success. */ + /* */ + typedef FT_Error + (*TT_Load_Any_Func)( TT_Face face, + FT_ULong tag, + FT_Long offset, + FT_Byte *buffer, + FT_ULong* length ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Find_SBit_Image_Func */ + /* */ + /* <Description> */ + /* Check whether an embedded bitmap (an `sbit') exists for a given */ + /* glyph, at a given strike. */ + /* */ + /* <Input> */ + /* face :: The target face object. */ + /* */ + /* glyph_index :: The glyph index. */ + /* */ + /* strike_index :: The current strike index. */ + /* */ + /* <Output> */ + /* arange :: The SBit range containing the glyph index. */ + /* */ + /* astrike :: The SBit strike containing the glyph index. */ + /* */ + /* aglyph_offset :: The offset of the glyph data in `EBDT' table. */ + /* */ + /* <Return> */ + /* FreeType error code. 0 means success. Returns */ + /* SFNT_Err_Invalid_Argument if no sbit exists for the requested */ + /* glyph. */ + /* */ + typedef FT_Error + (*TT_Find_SBit_Image_Func)( TT_Face face, + FT_UInt glyph_index, + FT_ULong strike_index, + TT_SBit_Range *arange, + TT_SBit_Strike *astrike, + FT_ULong *aglyph_offset ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Load_SBit_Metrics_Func */ + /* */ + /* <Description> */ + /* Get the big metrics for a given embedded bitmap. */ + /* */ + /* <Input> */ + /* stream :: The input stream. */ + /* */ + /* range :: The SBit range containing the glyph. */ + /* */ + /* <Output> */ + /* big_metrics :: A big SBit metrics structure for the glyph. */ + /* */ + /* <Return> */ + /* FreeType error code. 0 means success. */ + /* */ + /* <Note> */ + /* The stream cursor must be positioned at the glyph's offset within */ + /* the `EBDT' table before the call. */ + /* */ + /* If the image format uses variable metrics, the stream cursor is */ + /* positioned just after the metrics header in the `EBDT' table on */ + /* function exit. */ + /* */ + typedef FT_Error + (*TT_Load_SBit_Metrics_Func)( FT_Stream stream, + TT_SBit_Range range, + TT_SBit_Metrics metrics ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Load_SBit_Image_Func */ + /* */ + /* <Description> */ + /* Load a given glyph sbit image from the font resource. This also */ + /* returns its metrics. */ + /* */ + /* <Input> */ + /* face :: */ + /* The target face object. */ + /* */ + /* strike_index :: */ + /* The strike index. */ + /* */ + /* glyph_index :: */ + /* The current glyph index. */ + /* */ + /* load_flags :: */ + /* The current load flags. */ + /* */ + /* stream :: */ + /* The input stream. */ + /* */ + /* <Output> */ + /* amap :: */ + /* The target pixmap. */ + /* */ + /* ametrics :: */ + /* A big sbit metrics structure for the glyph image. */ + /* */ + /* <Return> */ + /* FreeType error code. 0 means success. Returns an error if no */ + /* glyph sbit exists for the index. */ + /* */ + /* <Note> */ + /* The `map.buffer' field is always freed before the glyph is loaded. */ + /* */ + typedef FT_Error + (*TT_Load_SBit_Image_Func)( TT_Face face, + 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> */ + /* Select an sbit strike for a given size request. */ + /* */ + /* <Input> */ + /* face :: The target face object. */ + /* */ + /* req :: The size request. */ + /* */ + /* <Output> */ + /* astrike_index :: The index of the sbit strike. */ + /* */ + /* <Return> */ + /* FreeType error code. 0 means success. Returns an error if no */ + /* sbit strike exists for the selected ppem values. */ + /* */ + typedef FT_Error + (*TT_Set_SBit_Strike_Func)( TT_Face face, + FT_Size_Request req, + FT_ULong* astrike_index ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Load_Strike_Metrics_Func */ + /* */ + /* <Description> */ + /* Load the metrics of a given strike. */ + /* */ + /* <Input> */ + /* face :: The target face object. */ + /* */ + /* strike_index :: The strike index. */ + /* */ + /* <Output> */ + /* metrics :: the metrics of the strike. */ + /* */ + /* <Return> */ + /* FreeType error code. 0 means success. Returns an error if no */ + /* such sbit strike exists. */ + /* */ + typedef FT_Error + (*TT_Load_Strike_Metrics_Func)( TT_Face face, + FT_ULong strike_index, + FT_Size_Metrics* metrics ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Get_PS_Name_Func */ + /* */ + /* <Description> */ + /* Get the PostScript glyph name of a glyph. */ + /* */ + /* <Input> */ + /* idx :: The glyph index. */ + /* */ + /* PSname :: The address of a string pointer. Will be NULL in case */ + /* of error, otherwise it is a pointer to the glyph name. */ + /* */ + /* You must not modify the returned string! */ + /* */ + /* <Output> */ + /* FreeType error code. 0 means success. */ + /* */ + typedef FT_Error + (*TT_Get_PS_Name_Func)( TT_Face face, + FT_UInt idx, + FT_String** PSname ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Load_Metrics_Func */ + /* */ + /* <Description> */ + /* Load a metrics table, which is a table with a horizontal and a */ + /* vertical version. */ + /* */ + /* <Input> */ + /* face :: A handle to the target face object. */ + /* */ + /* stream :: The input stream. */ + /* */ + /* vertical :: A boolean flag. If set, load the vertical one. */ + /* */ + /* <Return> */ + /* FreeType error code. 0 means success. */ + /* */ + typedef FT_Error + (*TT_Load_Metrics_Func)( TT_Face face, + FT_Stream stream, + FT_Bool vertical ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Get_Metrics_Func */ + /* */ + /* <Description> */ + /* Load the horizontal or vertical header in a face object. */ + /* */ + /* <Input> */ + /* face :: A handle to the target face object. */ + /* */ + /* vertical :: A boolean flag. If set, load vertical metrics. */ + /* */ + /* gindex :: The glyph index. */ + /* */ + /* <Output> */ + /* abearing :: The horizontal (or vertical) bearing. Set to zero in */ + /* case of error. */ + /* */ + /* aadvance :: The horizontal (or vertical) advance. Set to zero in */ + /* case of error. */ + /* */ + typedef void + (*TT_Get_Metrics_Func)( TT_Face face, + FT_Bool vertical, + FT_UInt gindex, + FT_Short* abearing, + FT_UShort* aadvance ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Load_Table_Func */ + /* */ + /* <Description> */ + /* Load a given TrueType table. */ + /* */ + /* <Input> */ + /* face :: A handle to the target face object. */ + /* */ + /* stream :: The input stream. */ + /* */ + /* <Return> */ + /* FreeType error code. 0 means success. */ + /* */ + /* <Note> */ + /* The function uses `face->goto_table' to seek the stream to the */ + /* start of the table, except while loading the font directory. */ + /* */ + typedef FT_Error + (*TT_Load_Table_Func)( TT_Face face, + FT_Stream stream ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Free_Table_Func */ + /* */ + /* <Description> */ + /* Free a given TrueType table. */ + /* */ + /* <Input> */ + /* face :: A handle to the target face object. */ + /* */ + typedef void + (*TT_Free_Table_Func)( TT_Face face ); + + + /* + * @functype: + * TT_Face_GetKerningFunc + * + * @description: + * Return the horizontal kerning value between two glyphs. + * + * @input: + * face :: A handle to the source face object. + * left_glyph :: The left glyph index. + * right_glyph :: The right glyph index. + * + * @return: + * The kerning value in font units. + */ + typedef FT_Int + (*TT_Face_GetKerningFunc)( TT_Face face, + FT_UInt left_glyph, + FT_UInt right_glyph ); + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* SFNT_Interface */ + /* */ + /* <Description> */ + /* This structure holds pointers to the functions used to load and */ + /* free the basic tables that are required in a `sfnt' font file. */ + /* */ + /* <Fields> */ + /* Check the various xxx_Func() descriptions for details. */ + /* */ + typedef struct SFNT_Interface_ + { + TT_Loader_GotoTableFunc goto_table; + + TT_Init_Face_Func init_face; + TT_Load_Face_Func load_face; + TT_Done_Face_Func done_face; + FT_Module_Requester get_interface; + + TT_Load_Any_Func load_any; + + /* these functions are called by `load_face' but they can also */ + /* be called from external modules, if there is a need to do so */ + TT_Load_Table_Func load_head; + TT_Load_Metrics_Func load_hhea; + TT_Load_Table_Func load_cmap; + TT_Load_Table_Func load_maxp; + TT_Load_Table_Func load_os2; + TT_Load_Table_Func load_post; + + TT_Load_Table_Func load_name; + TT_Free_Table_Func free_name; + + /* this field was called `load_kerning' up to version 2.1.10 */ + TT_Load_Table_Func load_kern; + + TT_Load_Table_Func load_gasp; + TT_Load_Table_Func load_pclt; + + /* see `ttload.h'; this field was called `load_bitmap_header' up to */ + /* version 2.1.10 */ + TT_Load_Table_Func load_bhed; + + TT_Load_SBit_Image_Func load_sbit_image; + + /* see `ttpost.h' */ + TT_Get_PS_Name_Func get_psname; + TT_Free_Table_Func free_psnames; + + /* starting here, the structure differs from version 2.1.7 */ + + /* this field was introduced in version 2.1.8, named `get_psname' */ + TT_Face_GetKerningFunc get_kerning; + + /* new elements introduced after version 2.1.10 */ + + /* load the font directory, i.e., the offset table and */ + /* the table directory */ + TT_Load_Table_Func load_font_dir; + TT_Load_Metrics_Func load_hmtx; + + TT_Load_Table_Func load_eblc; + TT_Free_Table_Func free_eblc; + + TT_Set_SBit_Strike_Func set_sbit_strike; + TT_Load_Strike_Metrics_Func load_strike_metrics; + + TT_Get_Metrics_Func get_metrics; + + } SFNT_Interface; + + + /* transitional */ + typedef SFNT_Interface* SFNT_Service; + +#ifndef FT_CONFIG_OPTION_PIC + +#define FT_DEFINE_SFNT_INTERFACE( \ + class_, \ + goto_table_, \ + init_face_, \ + load_face_, \ + done_face_, \ + get_interface_, \ + load_any_, \ + load_head_, \ + load_hhea_, \ + load_cmap_, \ + load_maxp_, \ + load_os2_, \ + load_post_, \ + load_name_, \ + free_name_, \ + load_kern_, \ + load_gasp_, \ + load_pclt_, \ + load_bhed_, \ + load_sbit_image_, \ + get_psname_, \ + free_psnames_, \ + get_kerning_, \ + load_font_dir_, \ + load_hmtx_, \ + load_eblc_, \ + free_eblc_, \ + set_sbit_strike_, \ + load_strike_metrics_, \ + get_metrics_ ) \ + static const SFNT_Interface class_ = \ + { \ + goto_table_, \ + init_face_, \ + load_face_, \ + done_face_, \ + get_interface_, \ + load_any_, \ + load_head_, \ + load_hhea_, \ + load_cmap_, \ + load_maxp_, \ + load_os2_, \ + load_post_, \ + load_name_, \ + free_name_, \ + load_kern_, \ + load_gasp_, \ + load_pclt_, \ + load_bhed_, \ + load_sbit_image_, \ + get_psname_, \ + free_psnames_, \ + get_kerning_, \ + load_font_dir_, \ + load_hmtx_, \ + load_eblc_, \ + free_eblc_, \ + set_sbit_strike_, \ + load_strike_metrics_, \ + get_metrics_, \ + }; + +#else /* FT_CONFIG_OPTION_PIC */ + +#define FT_INTERNAL( a, a_ ) \ + clazz->a = a_; + +#define FT_DEFINE_SFNT_INTERFACE( \ + class_, \ + goto_table_, \ + init_face_, \ + load_face_, \ + done_face_, \ + get_interface_, \ + load_any_, \ + load_head_, \ + load_hhea_, \ + load_cmap_, \ + load_maxp_, \ + load_os2_, \ + load_post_, \ + load_name_, \ + free_name_, \ + load_kern_, \ + load_gasp_, \ + load_pclt_, \ + load_bhed_, \ + load_sbit_image_, \ + get_psname_, \ + free_psnames_, \ + get_kerning_, \ + load_font_dir_, \ + load_hmtx_, \ + load_eblc_, \ + free_eblc_, \ + set_sbit_strike_, \ + load_strike_metrics_, \ + get_metrics_ ) \ + void \ + FT_Init_Class_ ## class_( FT_Library library, \ + SFNT_Interface* clazz ) \ + { \ + FT_UNUSED( library ); \ + \ + clazz->goto_table = goto_table_; \ + clazz->init_face = init_face_; \ + clazz->load_face = load_face_; \ + clazz->done_face = done_face_; \ + clazz->get_interface = get_interface_; \ + clazz->load_any = load_any_; \ + clazz->load_head = load_head_; \ + clazz->load_hhea = load_hhea_; \ + clazz->load_cmap = load_cmap_; \ + clazz->load_maxp = load_maxp_; \ + clazz->load_os2 = load_os2_; \ + clazz->load_post = load_post_; \ + clazz->load_name = load_name_; \ + clazz->free_name = free_name_; \ + clazz->load_kern = load_kern_; \ + clazz->load_gasp = load_gasp_; \ + clazz->load_pclt = load_pclt_; \ + clazz->load_bhed = load_bhed_; \ + clazz->load_sbit_image = load_sbit_image_; \ + clazz->get_psname = get_psname_; \ + clazz->free_psnames = free_psnames_; \ + clazz->get_kerning = get_kerning_; \ + clazz->load_font_dir = load_font_dir_; \ + clazz->load_hmtx = load_hmtx_; \ + clazz->load_eblc = load_eblc_; \ + clazz->free_eblc = free_eblc_; \ + clazz->set_sbit_strike = set_sbit_strike_; \ + clazz->load_strike_metrics = load_strike_metrics_; \ + clazz->get_metrics = get_metrics_; \ + } + +#endif /* FT_CONFIG_OPTION_PIC */ + +FT_END_HEADER + +#endif /* __SFNT_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/t1types.h b/win64/include/freetype/internal/t1types.h new file mode 100644 index 00000000..e20237c1 --- /dev/null +++ b/win64/include/freetype/internal/t1types.h @@ -0,0 +1,255 @@ +/***************************************************************************/ +/* */ +/* t1types.h */ +/* */ +/* Basic Type1/Type2 type definitions and interface (specification */ +/* only). */ +/* */ +/* Copyright 1996-2004, 2006, 2008, 2009, 2011, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __T1TYPES_H__ +#define __T1TYPES_H__ + + +#include <ft2build.h> +#include FT_TYPE1_TABLES_H +#include FT_INTERNAL_POSTSCRIPT_HINTS_H +#include FT_INTERNAL_SERVICE_H +#include FT_SERVICE_POSTSCRIPT_CMAPS_H + + +FT_BEGIN_HEADER + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /*** ***/ + /*** ***/ + /*** REQUIRED TYPE1/TYPE2 TABLES DEFINITIONS ***/ + /*** ***/ + /*** ***/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* T1_EncodingRec */ + /* */ + /* <Description> */ + /* A structure modeling a custom encoding. */ + /* */ + /* <Fields> */ + /* num_chars :: The number of character codes in the encoding. */ + /* Usually 256. */ + /* */ + /* code_first :: The lowest valid character code in the encoding. */ + /* */ + /* code_last :: The highest valid character code in the encoding */ + /* + 1. When equal to code_first there are no valid */ + /* character codes. */ + /* */ + /* char_index :: An array of corresponding glyph indices. */ + /* */ + /* char_name :: An array of corresponding glyph names. */ + /* */ + typedef struct T1_EncodingRecRec_ + { + FT_Int num_chars; + FT_Int code_first; + FT_Int code_last; + + FT_UShort* char_index; + FT_String** char_name; + + } T1_EncodingRec, *T1_Encoding; + + + /* used to hold extra data of PS_FontInfoRec that + * cannot be stored in the publicly defined structure. + * + * Note these can't be blended with multiple-masters. + */ + typedef struct PS_FontExtraRec_ + { + FT_UShort fs_type; + + } PS_FontExtraRec; + + + typedef struct T1_FontRec_ + { + PS_FontInfoRec font_info; /* font info dictionary */ + PS_FontExtraRec font_extra; /* font info extra fields */ + PS_PrivateRec private_dict; /* private dictionary */ + FT_String* font_name; /* top-level dictionary */ + + T1_EncodingType encoding_type; + T1_EncodingRec encoding; + + FT_Byte* subrs_block; + FT_Byte* charstrings_block; + FT_Byte* glyph_names_block; + + FT_Int num_subrs; + FT_Byte** subrs; + FT_PtrDist* subrs_len; + + FT_Int num_glyphs; + FT_String** glyph_names; /* array of glyph names */ + FT_Byte** charstrings; /* array of glyph charstrings */ + FT_PtrDist* charstrings_len; + + FT_Byte paint_type; + FT_Byte font_type; + FT_Matrix font_matrix; + FT_Vector font_offset; + FT_BBox font_bbox; + FT_Long font_id; + + FT_Fixed stroke_width; + + } T1_FontRec, *T1_Font; + + + typedef struct CID_SubrsRec_ + { + FT_UInt num_subrs; + FT_Byte** code; + + } CID_SubrsRec, *CID_Subrs; + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /*** ***/ + /*** ***/ + /*** AFM FONT INFORMATION STRUCTURES ***/ + /*** ***/ + /*** ***/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + typedef struct AFM_TrackKernRec_ + { + FT_Int degree; + FT_Fixed min_ptsize; + FT_Fixed min_kern; + FT_Fixed max_ptsize; + FT_Fixed max_kern; + + } AFM_TrackKernRec, *AFM_TrackKern; + + typedef struct AFM_KernPairRec_ + { + FT_Int index1; + FT_Int index2; + FT_Int x; + FT_Int y; + + } AFM_KernPairRec, *AFM_KernPair; + + typedef struct AFM_FontInfoRec_ + { + FT_Bool IsCIDFont; + FT_BBox FontBBox; + FT_Fixed Ascender; + FT_Fixed Descender; + AFM_TrackKern TrackKerns; /* free if non-NULL */ + FT_Int NumTrackKern; + AFM_KernPair KernPairs; /* free if non-NULL */ + FT_Int NumKernPair; + + } AFM_FontInfoRec, *AFM_FontInfo; + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /*** ***/ + /*** ***/ + /*** ORIGINAL T1_FACE CLASS DEFINITION ***/ + /*** ***/ + /*** ***/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + typedef struct T1_FaceRec_* T1_Face; + typedef struct CID_FaceRec_* CID_Face; + + + typedef struct T1_FaceRec_ + { + FT_FaceRec root; + T1_FontRec type1; + const void* psnames; + const void* psaux; + const void* afm_data; + FT_CharMapRec charmaprecs[2]; + FT_CharMap charmaps[2]; + + /* support for Multiple Masters fonts */ + PS_Blend blend; + + /* undocumented, optional: indices of subroutines that express */ + /* the NormalizeDesignVector and the ConvertDesignVector procedure, */ + /* respectively, as Type 2 charstrings; -1 if keywords not present */ + FT_Int ndv_idx; + FT_Int cdv_idx; + + /* undocumented, optional: has the same meaning as len_buildchar */ + /* for Type 2 fonts; manipulated by othersubrs 19, 24, and 25 */ + FT_UInt len_buildchar; + FT_Long* buildchar; + + /* since version 2.1 - interface to PostScript hinter */ + const void* pshinter; + + } T1_FaceRec; + + + typedef struct CID_FaceRec_ + { + FT_FaceRec root; + void* psnames; + void* psaux; + CID_FaceInfoRec cid; + PS_FontExtraRec font_extra; +#if 0 + void* afm_data; +#endif + CID_Subrs subrs; + + /* since version 2.1 - interface to PostScript hinter */ + void* pshinter; + + /* since version 2.1.8, but was originally positioned after `afm_data' */ + FT_Byte* binary_data; /* used if hex data has been converted */ + FT_Stream cid_stream; + + } CID_FaceRec; + + +FT_END_HEADER + +#endif /* __T1TYPES_H__ */ + + +/* END */ diff --git a/win64/include/freetype/internal/tttypes.h b/win64/include/freetype/internal/tttypes.h new file mode 100644 index 00000000..ad302b87 --- /dev/null +++ b/win64/include/freetype/internal/tttypes.h @@ -0,0 +1,1516 @@ +/***************************************************************************/ +/* */ +/* tttypes.h */ +/* */ +/* Basic SFNT/TrueType type definitions and interface (specification */ +/* only). */ +/* */ +/* Copyright 1996-2002, 2004-2008, 2012-2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 __TTTYPES_H__ +#define __TTTYPES_H__ + + +#include <ft2build.h> +#include FT_TRUETYPE_TABLES_H +#include FT_INTERNAL_OBJECTS_H + +#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT +#include FT_MULTIPLE_MASTERS_H +#endif + + +FT_BEGIN_HEADER + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /*** ***/ + /*** ***/ + /*** REQUIRED TRUETYPE/OPENTYPE TABLES DEFINITIONS ***/ + /*** ***/ + /*** ***/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TTC_HeaderRec */ + /* */ + /* <Description> */ + /* TrueType collection header. This table contains the offsets of */ + /* the font headers of each distinct TrueType face in the file. */ + /* */ + /* <Fields> */ + /* tag :: Must be `ttc ' to indicate a TrueType collection. */ + /* */ + /* version :: The version number. */ + /* */ + /* count :: The number of faces in the collection. The */ + /* specification says this should be an unsigned long, but */ + /* we use a signed long since we need the value -1 for */ + /* specific purposes. */ + /* */ + /* offsets :: The offsets of the font headers, one per face. */ + /* */ + typedef struct TTC_HeaderRec_ + { + FT_ULong tag; + FT_Fixed version; + FT_Long count; + FT_ULong* offsets; + + } TTC_HeaderRec; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* SFNT_HeaderRec */ + /* */ + /* <Description> */ + /* SFNT file format header. */ + /* */ + /* <Fields> */ + /* format_tag :: The font format tag. */ + /* */ + /* num_tables :: The number of tables in file. */ + /* */ + /* search_range :: Must be `16 * (max power of 2 <= num_tables)'. */ + /* */ + /* entry_selector :: Must be log2 of `search_range / 16'. */ + /* */ + /* range_shift :: Must be `num_tables * 16 - search_range'. */ + /* */ + typedef struct SFNT_HeaderRec_ + { + FT_ULong format_tag; + FT_UShort num_tables; + FT_UShort search_range; + FT_UShort entry_selector; + FT_UShort range_shift; + + FT_ULong offset; /* not in file */ + + } SFNT_HeaderRec, *SFNT_Header; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_TableRec */ + /* */ + /* <Description> */ + /* This structure describes a given table of a TrueType font. */ + /* */ + /* <Fields> */ + /* Tag :: A four-bytes tag describing the table. */ + /* */ + /* CheckSum :: The table checksum. This value can be ignored. */ + /* */ + /* Offset :: The offset of the table from the start of the TrueType */ + /* font in its resource. */ + /* */ + /* Length :: The table length (in bytes). */ + /* */ + typedef struct TT_TableRec_ + { + FT_ULong Tag; /* table type */ + FT_ULong CheckSum; /* table checksum */ + FT_ULong Offset; /* table file offset */ + FT_ULong Length; /* table length */ + + } TT_TableRec, *TT_Table; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* WOFF_HeaderRec */ + /* */ + /* <Description> */ + /* WOFF file format header. */ + /* */ + /* <Fields> */ + /* See */ + /* */ + /* http://www.w3.org/TR/WOFF/#WOFFHeader */ + /* */ + typedef struct WOFF_HeaderRec_ + { + FT_ULong signature; + FT_ULong flavor; + FT_ULong length; + FT_UShort num_tables; + FT_UShort reserved; + FT_ULong totalSfntSize; + FT_UShort majorVersion; + FT_UShort minorVersion; + FT_ULong metaOffset; + FT_ULong metaLength; + FT_ULong metaOrigLength; + FT_ULong privOffset; + FT_ULong privLength; + + } WOFF_HeaderRec, *WOFF_Header; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* WOFF_TableRec */ + /* */ + /* <Description> */ + /* This structure describes a given table of a WOFF font. */ + /* */ + /* <Fields> */ + /* Tag :: A four-bytes tag describing the table. */ + /* */ + /* Offset :: The offset of the table from the start of the WOFF */ + /* font in its resource. */ + /* */ + /* CompLength :: Compressed table length (in bytes). */ + /* */ + /* OrigLength :: Unompressed table length (in bytes). */ + /* */ + /* CheckSum :: The table checksum. This value can be ignored. */ + /* */ + /* OrigOffset :: The uncompressed table file offset. This value gets */ + /* computed while constructing the (uncompressed) SFNT */ + /* header. It is not contained in the WOFF file. */ + /* */ + typedef struct WOFF_TableRec_ + { + FT_ULong Tag; /* table ID */ + FT_ULong Offset; /* table file offset */ + FT_ULong CompLength; /* compressed table length */ + FT_ULong OrigLength; /* uncompressed table length */ + FT_ULong CheckSum; /* uncompressed checksum */ + + FT_ULong OrigOffset; /* uncompressed table file offset */ + /* (not in the WOFF file) */ + } WOFF_TableRec, *WOFF_Table; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_LongMetricsRec */ + /* */ + /* <Description> */ + /* A structure modeling the long metrics of the `hmtx' and `vmtx' */ + /* TrueType tables. The values are expressed in font units. */ + /* */ + /* <Fields> */ + /* advance :: The advance width or height for the glyph. */ + /* */ + /* bearing :: The left-side or top-side bearing for the glyph. */ + /* */ + typedef struct TT_LongMetricsRec_ + { + FT_UShort advance; + FT_Short bearing; + + } TT_LongMetricsRec, *TT_LongMetrics; + + + /*************************************************************************/ + /* */ + /* <Type> */ + /* TT_ShortMetrics */ + /* */ + /* <Description> */ + /* A simple type to model the short metrics of the `hmtx' and `vmtx' */ + /* tables. */ + /* */ + typedef FT_Short TT_ShortMetrics; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_NameEntryRec */ + /* */ + /* <Description> */ + /* A structure modeling TrueType name records. Name records are used */ + /* to store important strings like family name, style name, */ + /* copyright, etc. in _localized_ versions (i.e., language, encoding, */ + /* etc). */ + /* */ + /* <Fields> */ + /* platformID :: The ID of the name's encoding platform. */ + /* */ + /* encodingID :: The platform-specific ID for the name's encoding. */ + /* */ + /* languageID :: The platform-specific ID for the name's language. */ + /* */ + /* nameID :: The ID specifying what kind of name this is. */ + /* */ + /* stringLength :: The length of the string in bytes. */ + /* */ + /* stringOffset :: The offset to the string in the `name' table. */ + /* */ + /* string :: A pointer to the string's bytes. Note that these */ + /* are usually UTF-16 encoded characters. */ + /* */ + typedef struct TT_NameEntryRec_ + { + FT_UShort platformID; + FT_UShort encodingID; + FT_UShort languageID; + FT_UShort nameID; + FT_UShort stringLength; + FT_ULong stringOffset; + + /* this last field is not defined in the spec */ + /* but used by the FreeType engine */ + + FT_Byte* string; + + } TT_NameEntryRec, *TT_NameEntry; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_NameTableRec */ + /* */ + /* <Description> */ + /* A structure modeling the TrueType name table. */ + /* */ + /* <Fields> */ + /* format :: The format of the name table. */ + /* */ + /* numNameRecords :: The number of names in table. */ + /* */ + /* storageOffset :: The offset of the name table in the `name' */ + /* TrueType table. */ + /* */ + /* names :: An array of name records. */ + /* */ + /* stream :: the file's input stream. */ + /* */ + typedef struct TT_NameTableRec_ + { + FT_UShort format; + FT_UInt numNameRecords; + FT_UInt storageOffset; + TT_NameEntryRec* names; + FT_Stream stream; + + } TT_NameTableRec, *TT_NameTable; + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /*** ***/ + /*** ***/ + /*** OPTIONAL TRUETYPE/OPENTYPE TABLES DEFINITIONS ***/ + /*** ***/ + /*** ***/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_GaspRangeRec */ + /* */ + /* <Description> */ + /* A tiny structure used to model a gasp range according to the */ + /* TrueType specification. */ + /* */ + /* <Fields> */ + /* maxPPEM :: The maximum ppem value to which `gaspFlag' applies. */ + /* */ + /* gaspFlag :: A flag describing the grid-fitting and anti-aliasing */ + /* modes to be used. */ + /* */ + typedef struct TT_GaspRangeRec_ + { + FT_UShort maxPPEM; + FT_UShort gaspFlag; + + } TT_GaspRangeRec, *TT_GaspRange; + + +#define TT_GASP_GRIDFIT 0x01 +#define TT_GASP_DOGRAY 0x02 + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_GaspRec */ + /* */ + /* <Description> */ + /* A structure modeling the TrueType `gasp' table used to specify */ + /* grid-fitting and anti-aliasing behaviour. */ + /* */ + /* <Fields> */ + /* version :: The version number. */ + /* */ + /* numRanges :: The number of gasp ranges in table. */ + /* */ + /* gaspRanges :: An array of gasp ranges. */ + /* */ + typedef struct TT_Gasp_ + { + FT_UShort version; + FT_UShort numRanges; + TT_GaspRange gaspRanges; + + } TT_GaspRec; + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /*** ***/ + /*** ***/ + /*** EMBEDDED BITMAPS SUPPORT ***/ + /*** ***/ + /*** ***/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_SBit_MetricsRec */ + /* */ + /* <Description> */ + /* A structure used to hold the big metrics of a given glyph bitmap */ + /* in a TrueType or OpenType font. These are usually found in the */ + /* `EBDT' (Microsoft) or `bloc' (Apple) table. */ + /* */ + /* <Fields> */ + /* height :: The glyph height in pixels. */ + /* */ + /* width :: The glyph width in pixels. */ + /* */ + /* horiBearingX :: The horizontal left bearing. */ + /* */ + /* horiBearingY :: The horizontal top bearing. */ + /* */ + /* horiAdvance :: The horizontal advance. */ + /* */ + /* vertBearingX :: The vertical left bearing. */ + /* */ + /* vertBearingY :: The vertical top bearing. */ + /* */ + /* vertAdvance :: The vertical advance. */ + /* */ + typedef struct TT_SBit_MetricsRec_ + { + FT_UShort height; + FT_UShort width; + + FT_Short horiBearingX; + FT_Short horiBearingY; + FT_UShort horiAdvance; + + FT_Short vertBearingX; + FT_Short vertBearingY; + FT_UShort vertAdvance; + + } TT_SBit_MetricsRec, *TT_SBit_Metrics; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_SBit_SmallMetricsRec */ + /* */ + /* <Description> */ + /* A structure used to hold the small metrics of a given glyph bitmap */ + /* in a TrueType or OpenType font. These are usually found in the */ + /* `EBDT' (Microsoft) or the `bdat' (Apple) table. */ + /* */ + /* <Fields> */ + /* height :: The glyph height in pixels. */ + /* */ + /* width :: The glyph width in pixels. */ + /* */ + /* bearingX :: The left-side bearing. */ + /* */ + /* bearingY :: The top-side bearing. */ + /* */ + /* advance :: The advance width or height. */ + /* */ + typedef struct TT_SBit_Small_Metrics_ + { + FT_Byte height; + FT_Byte width; + + FT_Char bearingX; + FT_Char bearingY; + FT_Byte advance; + + } TT_SBit_SmallMetricsRec, *TT_SBit_SmallMetrics; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_SBit_LineMetricsRec */ + /* */ + /* <Description> */ + /* A structure used to describe the text line metrics of a given */ + /* bitmap strike, for either a horizontal or vertical layout. */ + /* */ + /* <Fields> */ + /* ascender :: The ascender in pixels. */ + /* */ + /* descender :: The descender in pixels. */ + /* */ + /* max_width :: The maximum glyph width in pixels. */ + /* */ + /* caret_slope_enumerator :: Rise of the caret slope, typically set */ + /* to 1 for non-italic fonts. */ + /* */ + /* caret_slope_denominator :: Rise of the caret slope, typically set */ + /* to 0 for non-italic fonts. */ + /* */ + /* caret_offset :: Offset in pixels to move the caret for */ + /* proper positioning. */ + /* */ + /* min_origin_SB :: Minimum of horiBearingX (resp. */ + /* vertBearingY). */ + /* min_advance_SB :: Minimum of */ + /* */ + /* horizontal advance - */ + /* ( horiBearingX + width ) */ + /* */ + /* resp. */ + /* */ + /* vertical advance - */ + /* ( vertBearingY + height ) */ + /* */ + /* max_before_BL :: Maximum of horiBearingY (resp. */ + /* vertBearingY). */ + /* */ + /* min_after_BL :: Minimum of */ + /* */ + /* horiBearingY - height */ + /* */ + /* resp. */ + /* */ + /* vertBearingX - width */ + /* */ + /* pads :: Unused (to make the size of the record */ + /* a multiple of 32 bits. */ + /* */ + typedef struct TT_SBit_LineMetricsRec_ + { + FT_Char ascender; + FT_Char descender; + FT_Byte max_width; + FT_Char caret_slope_numerator; + FT_Char caret_slope_denominator; + FT_Char caret_offset; + FT_Char min_origin_SB; + FT_Char min_advance_SB; + FT_Char max_before_BL; + FT_Char min_after_BL; + FT_Char pads[2]; + + } TT_SBit_LineMetricsRec, *TT_SBit_LineMetrics; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_SBit_RangeRec */ + /* */ + /* <Description> */ + /* A TrueType/OpenType subIndexTable as defined in the `EBLC' */ + /* (Microsoft) or `bloc' (Apple) tables. */ + /* */ + /* <Fields> */ + /* first_glyph :: The first glyph index in the range. */ + /* */ + /* last_glyph :: The last glyph index in the range. */ + /* */ + /* index_format :: The format of index table. Valid values are 1 */ + /* to 5. */ + /* */ + /* image_format :: The format of `EBDT' image data. */ + /* */ + /* image_offset :: The offset to image data in `EBDT'. */ + /* */ + /* image_size :: For index formats 2 and 5. This is the size in */ + /* bytes of each glyph bitmap. */ + /* */ + /* big_metrics :: For index formats 2 and 5. This is the big */ + /* metrics for each glyph bitmap. */ + /* */ + /* num_glyphs :: For index formats 4 and 5. This is the number of */ + /* glyphs in the code array. */ + /* */ + /* glyph_offsets :: For index formats 1 and 3. */ + /* */ + /* glyph_codes :: For index formats 4 and 5. */ + /* */ + /* table_offset :: The offset of the index table in the `EBLC' */ + /* table. Only used during strike loading. */ + /* */ + typedef struct TT_SBit_RangeRec_ + { + FT_UShort first_glyph; + FT_UShort last_glyph; + + FT_UShort index_format; + FT_UShort image_format; + FT_ULong image_offset; + + FT_ULong image_size; + TT_SBit_MetricsRec metrics; + FT_ULong num_glyphs; + + FT_ULong* glyph_offsets; + FT_UShort* glyph_codes; + + FT_ULong table_offset; + + } TT_SBit_RangeRec, *TT_SBit_Range; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_SBit_StrikeRec */ + /* */ + /* <Description> */ + /* A structure used describe a given bitmap strike in the `EBLC' */ + /* (Microsoft) or `bloc' (Apple) tables. */ + /* */ + /* <Fields> */ + /* num_index_ranges :: The number of index ranges. */ + /* */ + /* index_ranges :: An array of glyph index ranges. */ + /* */ + /* color_ref :: Unused. `color_ref' is put in for future */ + /* enhancements, but these fields are already */ + /* in use by other platforms (e.g. Newton). */ + /* For details, please see */ + /* */ + /* http://fonts.apple.com/ */ + /* TTRefMan/RM06/Chap6bloc.html */ + /* */ + /* hori :: The line metrics for horizontal layouts. */ + /* */ + /* vert :: The line metrics for vertical layouts. */ + /* */ + /* start_glyph :: The lowest glyph index for this strike. */ + /* */ + /* end_glyph :: The highest glyph index for this strike. */ + /* */ + /* x_ppem :: The number of horizontal pixels per EM. */ + /* */ + /* y_ppem :: The number of vertical pixels per EM. */ + /* */ + /* bit_depth :: The bit depth. Valid values are 1, 2, 4, */ + /* and 8. */ + /* */ + /* flags :: Is this a vertical or horizontal strike? For */ + /* details, please see */ + /* */ + /* http://fonts.apple.com/ */ + /* TTRefMan/RM06/Chap6bloc.html */ + /* */ + typedef struct TT_SBit_StrikeRec_ + { + FT_Int num_ranges; + TT_SBit_Range sbit_ranges; + FT_ULong ranges_offset; + + FT_ULong color_ref; + + TT_SBit_LineMetricsRec hori; + TT_SBit_LineMetricsRec vert; + + FT_UShort start_glyph; + FT_UShort end_glyph; + + FT_Byte x_ppem; + FT_Byte y_ppem; + + FT_Byte bit_depth; + FT_Char flags; + + } TT_SBit_StrikeRec, *TT_SBit_Strike; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_SBit_ComponentRec */ + /* */ + /* <Description> */ + /* A simple structure to describe a compound sbit element. */ + /* */ + /* <Fields> */ + /* glyph_code :: The element's glyph index. */ + /* */ + /* x_offset :: The element's left bearing. */ + /* */ + /* y_offset :: The element's top bearing. */ + /* */ + typedef struct TT_SBit_ComponentRec_ + { + FT_UShort glyph_code; + FT_Char x_offset; + FT_Char y_offset; + + } TT_SBit_ComponentRec, *TT_SBit_Component; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_SBit_ScaleRec */ + /* */ + /* <Description> */ + /* A structure used describe a given bitmap scaling table, as defined */ + /* in the `EBSC' table. */ + /* */ + /* <Fields> */ + /* hori :: The horizontal line metrics. */ + /* */ + /* vert :: The vertical line metrics. */ + /* */ + /* x_ppem :: The number of horizontal pixels per EM. */ + /* */ + /* y_ppem :: The number of vertical pixels per EM. */ + /* */ + /* x_ppem_substitute :: Substitution x_ppem value. */ + /* */ + /* y_ppem_substitute :: Substitution y_ppem value. */ + /* */ + typedef struct TT_SBit_ScaleRec_ + { + TT_SBit_LineMetricsRec hori; + TT_SBit_LineMetricsRec vert; + + FT_Byte x_ppem; + FT_Byte y_ppem; + + FT_Byte x_ppem_substitute; + FT_Byte y_ppem_substitute; + + } TT_SBit_ScaleRec, *TT_SBit_Scale; + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /*** ***/ + /*** ***/ + /*** POSTSCRIPT GLYPH NAMES SUPPORT ***/ + /*** ***/ + /*** ***/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_Post_20Rec */ + /* */ + /* <Description> */ + /* Postscript names sub-table, format 2.0. Stores the PS name of */ + /* each glyph in the font face. */ + /* */ + /* <Fields> */ + /* num_glyphs :: The number of named glyphs in the table. */ + /* */ + /* num_names :: The number of PS names stored in the table. */ + /* */ + /* glyph_indices :: The indices of the glyphs in the names arrays. */ + /* */ + /* glyph_names :: The PS names not in Mac Encoding. */ + /* */ + typedef struct TT_Post_20Rec_ + { + FT_UShort num_glyphs; + FT_UShort num_names; + FT_UShort* glyph_indices; + FT_Char** glyph_names; + + } TT_Post_20Rec, *TT_Post_20; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_Post_25Rec */ + /* */ + /* <Description> */ + /* Postscript names sub-table, format 2.5. Stores the PS name of */ + /* each glyph in the font face. */ + /* */ + /* <Fields> */ + /* num_glyphs :: The number of glyphs in the table. */ + /* */ + /* offsets :: An array of signed offsets in a normal Mac */ + /* Postscript name encoding. */ + /* */ + typedef struct TT_Post_25_ + { + FT_UShort num_glyphs; + FT_Char* offsets; + + } TT_Post_25Rec, *TT_Post_25; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_Post_NamesRec */ + /* */ + /* <Description> */ + /* Postscript names table, either format 2.0 or 2.5. */ + /* */ + /* <Fields> */ + /* loaded :: A flag to indicate whether the PS names are loaded. */ + /* */ + /* format_20 :: The sub-table used for format 2.0. */ + /* */ + /* format_25 :: The sub-table used for format 2.5. */ + /* */ + typedef struct TT_Post_NamesRec_ + { + FT_Bool loaded; + + union + { + TT_Post_20Rec format_20; + TT_Post_25Rec format_25; + + } names; + + } TT_Post_NamesRec, *TT_Post_Names; + + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /*** ***/ + /*** ***/ + /*** GX VARIATION TABLE SUPPORT ***/ + /*** ***/ + /*** ***/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + +#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT + typedef struct GX_BlendRec_ *GX_Blend; +#endif + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /*** ***/ + /*** ***/ + /*** EMBEDDED BDF PROPERTIES TABLE SUPPORT ***/ + /*** ***/ + /*** ***/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + /* + * These types are used to support a `BDF ' table that isn't part of the + * official TrueType specification. It is mainly used in SFNT-based + * bitmap fonts that were generated from a set of BDF fonts. + * + * The format of the table is as follows. + * + * USHORT version `BDF ' table version number, should be 0x0001. + * USHORT strikeCount Number of strikes (bitmap sizes) in this table. + * ULONG stringTable Offset (from start of BDF table) to string + * table. + * + * This is followed by an array of `strikeCount' descriptors, having the + * following format. + * + * USHORT ppem Vertical pixels per EM for this strike. + * USHORT numItems Number of items for this strike (properties and + * atoms). Maximum is 255. + * + * This array in turn is followed by `strikeCount' value sets. Each + * `value set' is an array of `numItems' items with the following format. + * + * ULONG item_name Offset in string table to item name. + * USHORT item_type The item type. Possible values are + * 0 => string (e.g., COMMENT) + * 1 => atom (e.g., FONT or even SIZE) + * 2 => int32 + * 3 => uint32 + * 0x10 => A flag to indicate a properties. This + * is ORed with the above values. + * ULONG item_value For strings => Offset into string table without + * the corresponding double quotes. + * For atoms => Offset into string table. + * For integers => Direct value. + * + * All strings in the string table consist of bytes and are + * zero-terminated. + * + */ + +#ifdef TT_CONFIG_OPTION_BDF + + typedef struct TT_BDFRec_ + { + FT_Byte* table; + FT_Byte* table_end; + FT_Byte* strings; + FT_ULong strings_size; + FT_UInt num_strikes; + FT_Bool loaded; + + } TT_BDFRec, *TT_BDF; + +#endif /* TT_CONFIG_OPTION_BDF */ + + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + /*** ***/ + /*** ***/ + /*** ORIGINAL TT_FACE CLASS DEFINITION ***/ + /*** ***/ + /*** ***/ + /*************************************************************************/ + /*************************************************************************/ + /*************************************************************************/ + + + /*************************************************************************/ + /* */ + /* This structure/class is defined here because it is common to the */ + /* following formats: TTF, OpenType-TT, and OpenType-CFF. */ + /* */ + /* Note, however, that the classes TT_Size and TT_GlyphSlot are not */ + /* shared between font drivers, and are thus defined in `ttobjs.h'. */ + /* */ + /*************************************************************************/ + + + /*************************************************************************/ + /* */ + /* <Type> */ + /* TT_Face */ + /* */ + /* <Description> */ + /* A handle to a TrueType face/font object. A TT_Face encapsulates */ + /* the resolution and scaling independent parts of a TrueType font */ + /* resource. */ + /* */ + /* <Note> */ + /* The TT_Face structure is also used as a `parent class' for the */ + /* OpenType-CFF class (T2_Face). */ + /* */ + typedef struct TT_FaceRec_* TT_Face; + + + /* a function type used for the truetype bytecode interpreter hooks */ + typedef FT_Error + (*TT_Interpreter)( void* exec_context ); + + /* forward declaration */ + typedef struct TT_LoaderRec_* TT_Loader; + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Loader_GotoTableFunc */ + /* */ + /* <Description> */ + /* Seeks a stream to the start of a given TrueType table. */ + /* */ + /* <Input> */ + /* face :: A handle to the target face object. */ + /* */ + /* tag :: A 4-byte tag used to name the table. */ + /* */ + /* stream :: The input stream. */ + /* */ + /* <Output> */ + /* length :: The length of the table in bytes. Set to 0 if not */ + /* needed. */ + /* */ + /* <Return> */ + /* FreeType error code. 0 means success. */ + /* */ + /* <Note> */ + /* The stream cursor must be at the font file's origin. */ + /* */ + typedef FT_Error + (*TT_Loader_GotoTableFunc)( TT_Face face, + FT_ULong tag, + FT_Stream stream, + FT_ULong* length ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Loader_StartGlyphFunc */ + /* */ + /* <Description> */ + /* Seeks a stream to the start of a given glyph element, and opens a */ + /* frame for it. */ + /* */ + /* <Input> */ + /* loader :: The current TrueType glyph loader object. */ + /* */ + /* glyph index :: The index of the glyph to access. */ + /* */ + /* offset :: The offset of the glyph according to the */ + /* `locations' table. */ + /* */ + /* byte_count :: The size of the frame in bytes. */ + /* */ + /* <Return> */ + /* FreeType error code. 0 means success. */ + /* */ + /* <Note> */ + /* This function is normally equivalent to FT_STREAM_SEEK(offset) */ + /* followed by FT_FRAME_ENTER(byte_count) with the loader's stream, */ + /* but alternative formats (e.g. compressed ones) might use something */ + /* different. */ + /* */ + typedef FT_Error + (*TT_Loader_StartGlyphFunc)( TT_Loader loader, + FT_UInt glyph_index, + FT_ULong offset, + FT_UInt byte_count ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Loader_ReadGlyphFunc */ + /* */ + /* <Description> */ + /* Reads one glyph element (its header, a simple glyph, or a */ + /* composite) from the loader's current stream frame. */ + /* */ + /* <Input> */ + /* loader :: The current TrueType glyph loader object. */ + /* */ + /* <Return> */ + /* FreeType error code. 0 means success. */ + /* */ + typedef FT_Error + (*TT_Loader_ReadGlyphFunc)( TT_Loader loader ); + + + /*************************************************************************/ + /* */ + /* <FuncType> */ + /* TT_Loader_EndGlyphFunc */ + /* */ + /* <Description> */ + /* Closes the current loader stream frame for the glyph. */ + /* */ + /* <Input> */ + /* loader :: The current TrueType glyph loader object. */ + /* */ + typedef void + (*TT_Loader_EndGlyphFunc)( TT_Loader loader ); + + + typedef enum TT_SbitTableType_ + { + TT_SBIT_TABLE_TYPE_NONE = 0, + TT_SBIT_TABLE_TYPE_EBLC, /* `EBLC' (Microsoft), */ + /* `bloc' (Apple) */ + TT_SBIT_TABLE_TYPE_CBLC, /* `CBLC' (Google) */ + TT_SBIT_TABLE_TYPE_SBIX, /* `sbix' (Apple) */ + + /* do not remove */ + TT_SBIT_TABLE_TYPE_MAX + + } TT_SbitTableType; + + + /*************************************************************************/ + /* */ + /* TrueType Face Type */ + /* */ + /* <Struct> */ + /* TT_Face */ + /* */ + /* <Description> */ + /* The TrueType face class. These objects model the resolution and */ + /* point-size independent data found in a TrueType font file. */ + /* */ + /* <Fields> */ + /* root :: The base FT_Face structure, managed by the */ + /* base layer. */ + /* */ + /* ttc_header :: The TrueType collection header, used when */ + /* the file is a `ttc' rather than a `ttf'. */ + /* For ordinary font files, the field */ + /* `ttc_header.count' is set to 0. */ + /* */ + /* format_tag :: The font format tag. */ + /* */ + /* num_tables :: The number of TrueType tables in this font */ + /* file. */ + /* */ + /* dir_tables :: The directory of TrueType tables for this */ + /* font file. */ + /* */ + /* header :: The font's font header (`head' table). */ + /* Read on font opening. */ + /* */ + /* horizontal :: The font's horizontal header (`hhea' */ + /* table). This field also contains the */ + /* associated horizontal metrics table */ + /* (`hmtx'). */ + /* */ + /* max_profile :: The font's maximum profile table. Read on */ + /* font opening. Note that some maximum */ + /* values cannot be taken directly from this */ + /* table. We thus define additional fields */ + /* below to hold the computed maxima. */ + /* */ + /* vertical_info :: A boolean which is set when the font file */ + /* contains vertical metrics. If not, the */ + /* value of the `vertical' field is */ + /* undefined. */ + /* */ + /* vertical :: The font's vertical header (`vhea' table). */ + /* This field also contains the associated */ + /* vertical metrics table (`vmtx'), if found. */ + /* IMPORTANT: The contents of this field is */ + /* undefined if the `verticalInfo' field is */ + /* unset. */ + /* */ + /* num_names :: The number of name records within this */ + /* TrueType font. */ + /* */ + /* name_table :: The table of name records (`name'). */ + /* */ + /* os2 :: The font's OS/2 table (`OS/2'). */ + /* */ + /* postscript :: The font's PostScript table (`post' */ + /* table). The PostScript glyph names are */ + /* not loaded by the driver on face opening. */ + /* See the `ttpost' module for more details. */ + /* */ + /* cmap_table :: Address of the face's `cmap' SFNT table */ + /* in memory (it's an extracted frame). */ + /* */ + /* cmap_size :: The size in bytes of the `cmap_table' */ + /* described above. */ + /* */ + /* goto_table :: A function called by each TrueType table */ + /* loader to position a stream's cursor to */ + /* the start of a given table according to */ + /* its tag. It defaults to TT_Goto_Face but */ + /* can be different for strange formats (e.g. */ + /* Type 42). */ + /* */ + /* access_glyph_frame :: A function used to access the frame of a */ + /* given glyph within the face's font file. */ + /* */ + /* forget_glyph_frame :: A function used to forget the frame of a */ + /* given glyph when all data has been loaded. */ + /* */ + /* read_glyph_header :: A function used to read a glyph header. */ + /* It must be called between an `access' and */ + /* `forget'. */ + /* */ + /* read_simple_glyph :: A function used to read a simple glyph. */ + /* It must be called after the header was */ + /* read, and before the `forget'. */ + /* */ + /* read_composite_glyph :: A function used to read a composite glyph. */ + /* It must be called after the header was */ + /* read, and before the `forget'. */ + /* */ + /* sfnt :: A pointer to the SFNT service. */ + /* */ + /* psnames :: A pointer to the PostScript names service. */ + /* */ + /* hdmx :: The face's horizontal device metrics */ + /* (`hdmx' table). This table is optional in */ + /* TrueType/OpenType fonts. */ + /* */ + /* gasp :: The grid-fitting and scaling properties */ + /* table (`gasp'). This table is optional in */ + /* TrueType/OpenType fonts. */ + /* */ + /* pclt :: The `pclt' SFNT table. */ + /* */ + /* num_sbit_scales :: The number of sbit scales for this font. */ + /* */ + /* sbit_scales :: Array of sbit scales embedded in this */ + /* font. This table is optional in a */ + /* TrueType/OpenType font. */ + /* */ + /* postscript_names :: A table used to store the Postscript names */ + /* of the glyphs for this font. See the */ + /* file `ttconfig.h' for comments on the */ + /* TT_CONFIG_OPTION_POSTSCRIPT_NAMES option. */ + /* */ + /* num_locations :: The number of glyph locations in this */ + /* TrueType file. This should be */ + /* identical to the number of glyphs. */ + /* Ignored for Type 2 fonts. */ + /* */ + /* glyph_locations :: An array of longs. These are offsets to */ + /* glyph data within the `glyf' table. */ + /* Ignored for Type 2 font faces. */ + /* */ + /* glyf_len :: The length of the `glyf' table. Needed */ + /* for malformed `loca' tables. */ + /* */ + /* font_program_size :: Size in bytecodes of the face's font */ + /* program. 0 if none defined. Ignored for */ + /* Type 2 fonts. */ + /* */ + /* font_program :: The face's font program (bytecode stream) */ + /* executed at load time, also used during */ + /* glyph rendering. Comes from the `fpgm' */ + /* table. Ignored for Type 2 font fonts. */ + /* */ + /* cvt_program_size :: The size in bytecodes of the face's cvt */ + /* program. Ignored for Type 2 fonts. */ + /* */ + /* cvt_program :: The face's cvt program (bytecode stream) */ + /* executed each time an instance/size is */ + /* changed/reset. Comes from the `prep' */ + /* table. Ignored for Type 2 fonts. */ + /* */ + /* cvt_size :: Size of the control value table (in */ + /* entries). Ignored for Type 2 fonts. */ + /* */ + /* cvt :: The face's original control value table. */ + /* Coordinates are expressed in unscaled font */ + /* units. Comes from the `cvt ' table. */ + /* Ignored for Type 2 fonts. */ + /* */ + /* num_kern_pairs :: The number of kerning pairs present in the */ + /* font file. The engine only loads the */ + /* first horizontal format 0 kern table it */ + /* finds in the font file. Ignored for */ + /* Type 2 fonts. */ + /* */ + /* kern_table_index :: The index of the kerning table in the font */ + /* kerning directory. Ignored for Type 2 */ + /* fonts. */ + /* */ + /* interpreter :: A pointer to the TrueType bytecode */ + /* interpreters field is also used to hook */ + /* the debugger in `ttdebug'. */ + /* */ + /* unpatented_hinting :: If true, use only unpatented methods in */ + /* the bytecode interpreter. */ + /* */ + /* doblend :: A boolean which is set if the font should */ + /* be blended (this is for GX var). */ + /* */ + /* blend :: Contains the data needed to control GX */ + /* variation tables (rather like Multiple */ + /* Master data). */ + /* */ + /* extra :: Reserved for third-party font drivers. */ + /* */ + /* postscript_name :: The PS name of the font. Used by the */ + /* postscript name service. */ + /* */ + typedef struct TT_FaceRec_ + { + FT_FaceRec root; + + TTC_HeaderRec ttc_header; + + FT_ULong format_tag; + FT_UShort num_tables; + TT_Table dir_tables; + + TT_Header header; /* TrueType header table */ + TT_HoriHeader horizontal; /* TrueType horizontal header */ + + TT_MaxProfile max_profile; + + FT_Bool vertical_info; + TT_VertHeader vertical; /* TT Vertical header, if present */ + + FT_UShort num_names; /* number of name records */ + TT_NameTableRec name_table; /* name table */ + + TT_OS2 os2; /* TrueType OS/2 table */ + TT_Postscript postscript; /* TrueType Postscript table */ + + FT_Byte* cmap_table; /* extracted `cmap' table */ + FT_ULong cmap_size; + + TT_Loader_GotoTableFunc goto_table; + + TT_Loader_StartGlyphFunc access_glyph_frame; + TT_Loader_EndGlyphFunc forget_glyph_frame; + TT_Loader_ReadGlyphFunc read_glyph_header; + TT_Loader_ReadGlyphFunc read_simple_glyph; + TT_Loader_ReadGlyphFunc read_composite_glyph; + + /* a typeless pointer to the SFNT_Interface table used to load */ + /* the basic TrueType tables in the face object */ + void* sfnt; + + /* a typeless pointer to the FT_Service_PsCMapsRec table used to */ + /* handle glyph names <-> unicode & Mac values */ + void* psnames; + + + /***********************************************************************/ + /* */ + /* Optional TrueType/OpenType tables */ + /* */ + /***********************************************************************/ + + /* grid-fitting and scaling table */ + TT_GaspRec gasp; /* the `gasp' table */ + + /* PCL 5 table */ + TT_PCLT pclt; + + /* embedded bitmaps support */ + FT_ULong num_sbit_scales; + TT_SBit_Scale sbit_scales; + + /* postscript names table */ + TT_Post_NamesRec postscript_names; + + + /***********************************************************************/ + /* */ + /* TrueType-specific fields (ignored by the OTF-Type2 driver) */ + /* */ + /***********************************************************************/ + + /* the font program, if any */ + FT_ULong font_program_size; + FT_Byte* font_program; + + /* the cvt program, if any */ + FT_ULong cvt_program_size; + FT_Byte* cvt_program; + + /* the original, unscaled, control value table */ + FT_ULong cvt_size; + FT_Short* cvt; + + /* A pointer to the bytecode interpreter to use. This is also */ + /* used to hook the debugger for the `ttdebug' utility. */ + TT_Interpreter interpreter; + +#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING + /* Use unpatented hinting only. */ + FT_Bool unpatented_hinting; +#endif + + /***********************************************************************/ + /* */ + /* Other tables or fields. This is used by derivative formats like */ + /* OpenType. */ + /* */ + /***********************************************************************/ + + FT_Generic extra; + + const char* postscript_name; + + FT_ULong glyf_len; + +#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT + FT_Bool doblend; + GX_Blend blend; +#endif + + /* since version 2.2 */ + + FT_Byte* horz_metrics; + FT_ULong horz_metrics_size; + + FT_Byte* vert_metrics; + FT_ULong vert_metrics_size; + + FT_ULong num_locations; /* in broken TTF, gid > 0xFFFF */ + 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_record_sizes; + + FT_Byte* sbit_table; + FT_ULong sbit_table_size; + TT_SbitTableType sbit_table_type; + FT_UInt sbit_num_strikes; + + FT_Byte* kern_table; + FT_ULong kern_table_size; + FT_UInt num_kern_tables; + FT_UInt32 kern_avail_bits; + FT_UInt32 kern_order_bits; + +#ifdef TT_CONFIG_OPTION_BDF + TT_BDFRec bdf; +#endif /* TT_CONFIG_OPTION_BDF */ + + /* since 2.3.0 */ + FT_ULong horz_metrics_offset; + FT_ULong vert_metrics_offset; + +#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING + /* since 2.4.12 */ + FT_ULong sph_found_func_flags; /* special functions found */ + /* for this face */ + FT_Bool sph_compatibility_mode; +#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */ + + } TT_FaceRec; + + + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_GlyphZoneRec */ + /* */ + /* <Description> */ + /* A glyph zone is used to load, scale and hint glyph outline */ + /* coordinates. */ + /* */ + /* <Fields> */ + /* memory :: A handle to the memory manager. */ + /* */ + /* max_points :: The maximum size in points of the zone. */ + /* */ + /* max_contours :: Max size in links contours of the zone. */ + /* */ + /* n_points :: The current number of points in the zone. */ + /* */ + /* n_contours :: The current number of contours in the zone. */ + /* */ + /* org :: The original glyph coordinates (font */ + /* units/scaled). */ + /* */ + /* cur :: The current glyph coordinates (scaled/hinted). */ + /* */ + /* tags :: The point control tags. */ + /* */ + /* contours :: The contours end points. */ + /* */ + /* first_point :: Offset of the current subglyph's first point. */ + /* */ + typedef struct TT_GlyphZoneRec_ + { + FT_Memory memory; + FT_UShort max_points; + FT_UShort max_contours; + FT_UShort n_points; /* number of points in zone */ + FT_Short n_contours; /* number of contours */ + + FT_Vector* org; /* original point coordinates */ + FT_Vector* cur; /* current point coordinates */ + FT_Vector* orus; /* original (unscaled) point coordinates */ + + FT_Byte* tags; /* current touch flags */ + FT_UShort* contours; /* contour end points */ + + FT_UShort first_point; /* offset of first (#0) point */ + + } TT_GlyphZoneRec, *TT_GlyphZone; + + + /* handle to execution context */ + typedef struct TT_ExecContextRec_* TT_ExecContext; + + /* glyph loader structure */ + typedef struct TT_LoaderRec_ + { + FT_Face face; + FT_Size size; + FT_GlyphSlot glyph; + FT_GlyphLoader gloader; + + FT_ULong load_flags; + FT_UInt glyph_index; + + FT_Stream stream; + FT_Int byte_len; + + FT_Short n_contours; + FT_BBox bbox; + FT_Int left_bearing; + FT_Int advance; + FT_Int linear; + FT_Bool linear_def; + FT_Vector pp1; + FT_Vector pp2; + + FT_ULong glyf_offset; + + /* the zone where we load our glyphs */ + TT_GlyphZoneRec base; + TT_GlyphZoneRec zone; + + TT_ExecContext exec; + FT_Byte* instructions; + FT_ULong ins_pos; + + /* for possible extensibility in other formats */ + void* other; + + /* since version 2.1.8 */ + FT_Int top_bearing; + FT_Int vadvance; + FT_Vector pp3; + FT_Vector pp4; + + /* since version 2.2.1 */ + FT_Byte* cursor; + FT_Byte* limit; + + } TT_LoaderRec; + + +FT_END_HEADER + +#endif /* __TTTYPES_H__ */ + + +/* END */ diff --git a/win64/include/freetype/t1tables.h b/win64/include/freetype/t1tables.h index 426e1402..61aefdd5 100644 --- a/win64/include/freetype/t1tables.h +++ b/win64/include/freetype/t1tables.h @@ -1,27 +1,28 @@ -/**************************************************************************** - * - * t1tables.h - * - * Basic Type 1/Type 2 tables definitions and interface (specification - * only). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* t1tables.h */ +/* */ +/* Basic Type 1/Type 2 tables definitions and interface (specification */ +/* only). */ +/* */ +/* Copyright 1996-2004, 2006, 2008, 2009, 2011, 2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 T1TABLES_H_ -#define T1TABLES_H_ +#ifndef __T1TABLES_H__ +#define __T1TABLES_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -33,58 +34,58 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * type1_tables - * - * @title: - * Type 1 Tables - * - * @abstract: - * Type~1-specific font tables. - * - * @description: - * This section contains the definition of Type~1-specific tables, - * including structures related to other PostScript font formats. - * - * @order: - * PS_FontInfoRec - * PS_FontInfo - * PS_PrivateRec - * PS_Private - * - * CID_FaceDictRec - * CID_FaceDict - * CID_FaceInfoRec - * CID_FaceInfo - * - * FT_Has_PS_Glyph_Names - * FT_Get_PS_Font_Info - * FT_Get_PS_Font_Private - * FT_Get_PS_Font_Value - * - * T1_Blend_Flags - * T1_EncodingType - * PS_Dict_Keys - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* type1_tables */ + /* */ + /* <Title> */ + /* Type 1 Tables */ + /* */ + /* <Abstract> */ + /* Type~1 (PostScript) specific font tables. */ + /* */ + /* <Description> */ + /* This section contains the definition of Type 1-specific tables, */ + /* including structures related to other PostScript font formats. */ + /* */ + /* <Order> */ + /* PS_FontInfoRec */ + /* PS_FontInfo */ + /* PS_PrivateRec */ + /* PS_Private */ + /* */ + /* CID_FaceDictRec */ + /* CID_FaceDict */ + /* CID_FaceInfoRec */ + /* CID_FaceInfo */ + /* */ + /* FT_Has_PS_Glyph_Names */ + /* FT_Get_PS_Font_Info */ + /* FT_Get_PS_Font_Private */ + /* FT_Get_PS_Font_Value */ + /* */ + /* T1_Blend_Flags */ + /* T1_EncodingType */ + /* PS_Dict_Keys */ + /* */ + /*************************************************************************/ /* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */ /* structures in order to support Multiple Master fonts. */ - /************************************************************************** - * - * @struct: - * PS_FontInfoRec - * - * @description: - * A structure used to model a Type~1 or Type~2 FontInfo dictionary. - * Note that for Multiple Master fonts, each instance has its own - * FontInfo dictionary. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* PS_FontInfoRec */ + /* */ + /* <Description> */ + /* A structure used to model a Type~1 or Type~2 FontInfo dictionary. */ + /* Note that for Multiple Master fonts, each instance has its own */ + /* FontInfo dictionary. */ + /* */ typedef struct PS_FontInfoRec_ { FT_String* version; @@ -100,39 +101,40 @@ FT_BEGIN_HEADER } PS_FontInfoRec; - /************************************************************************** - * - * @struct: - * PS_FontInfo - * - * @description: - * A handle to a @PS_FontInfoRec structure. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* PS_FontInfo */ + /* */ + /* <Description> */ + /* A handle to a @PS_FontInfoRec structure. */ + /* */ typedef struct PS_FontInfoRec_* PS_FontInfo; - /************************************************************************** - * - * @struct: - * T1_FontInfo - * - * @description: - * This type is equivalent to @PS_FontInfoRec. It is deprecated but kept - * to maintain source compatibility between various versions of FreeType. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* T1_FontInfo */ + /* */ + /* <Description> */ + /* This type is equivalent to @PS_FontInfoRec. It is deprecated but */ + /* kept to maintain source compatibility between various versions of */ + /* FreeType. */ + /* */ typedef PS_FontInfoRec T1_FontInfo; - /************************************************************************** - * - * @struct: - * PS_PrivateRec - * - * @description: - * A structure used to model a Type~1 or Type~2 private dictionary. Note - * that for Multiple Master fonts, each instance has its own Private - * dictionary. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* PS_PrivateRec */ + /* */ + /* <Description> */ + /* A structure used to model a Type~1 or Type~2 private dictionary. */ + /* Note that for Multiple Master fonts, each instance has its own */ + /* Private dictionary. */ + /* */ typedef struct PS_PrivateRec_ { FT_Int unique_id; @@ -174,55 +176,56 @@ FT_BEGIN_HEADER } PS_PrivateRec; - /************************************************************************** - * - * @struct: - * PS_Private - * - * @description: - * A handle to a @PS_PrivateRec structure. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* PS_Private */ + /* */ + /* <Description> */ + /* A handle to a @PS_PrivateRec structure. */ + /* */ typedef struct PS_PrivateRec_* PS_Private; - /************************************************************************** - * - * @struct: - * T1_Private - * - * @description: - * This type is equivalent to @PS_PrivateRec. It is deprecated but kept - * to maintain source compatibility between various versions of FreeType. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* T1_Private */ + /* */ + /* <Description> */ + /* This type is equivalent to @PS_PrivateRec. It is deprecated but */ + /* kept to maintain source compatibility between various versions of */ + /* FreeType. */ + /* */ typedef PS_PrivateRec T1_Private; - /************************************************************************** - * - * @enum: - * T1_Blend_Flags - * - * @description: - * A set of flags used to indicate which fields are present in a given - * blend dictionary (font info or private). Used to support Multiple - * Masters fonts. - * - * @values: - * T1_BLEND_UNDERLINE_POSITION :: - * T1_BLEND_UNDERLINE_THICKNESS :: - * T1_BLEND_ITALIC_ANGLE :: - * T1_BLEND_BLUE_VALUES :: - * T1_BLEND_OTHER_BLUES :: - * T1_BLEND_STANDARD_WIDTH :: - * T1_BLEND_STANDARD_HEIGHT :: - * T1_BLEND_STEM_SNAP_WIDTHS :: - * T1_BLEND_STEM_SNAP_HEIGHTS :: - * T1_BLEND_BLUE_SCALE :: - * T1_BLEND_BLUE_SHIFT :: - * T1_BLEND_FAMILY_BLUES :: - * T1_BLEND_FAMILY_OTHER_BLUES :: - * T1_BLEND_FORCE_BOLD :: - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* T1_Blend_Flags */ + /* */ + /* <Description> */ + /* A set of flags used to indicate which fields are present in a */ + /* given blend dictionary (font info or private). Used to support */ + /* Multiple Masters fonts. */ + /* */ + /* <Values> */ + /* T1_BLEND_UNDERLINE_POSITION :: */ + /* T1_BLEND_UNDERLINE_THICKNESS :: */ + /* T1_BLEND_ITALIC_ANGLE :: */ + /* T1_BLEND_BLUE_VALUES :: */ + /* T1_BLEND_OTHER_BLUES :: */ + /* T1_BLEND_STANDARD_WIDTH :: */ + /* T1_BLEND_STANDARD_HEIGHT :: */ + /* T1_BLEND_STEM_SNAP_WIDTHS :: */ + /* T1_BLEND_STEM_SNAP_HEIGHTS :: */ + /* T1_BLEND_BLUE_SCALE :: */ + /* T1_BLEND_BLUE_SHIFT :: */ + /* T1_BLEND_FAMILY_BLUES :: */ + /* T1_BLEND_FAMILY_OTHER_BLUES :: */ + /* T1_BLEND_FORCE_BOLD :: */ + /* */ typedef enum T1_Blend_Flags_ { /* required fields in a FontInfo blend dictionary */ @@ -249,7 +252,7 @@ FT_BEGIN_HEADER /* these constants are deprecated; use the corresponding */ - /* `T1_Blend_Flags` values instead */ + /* `T1_Blend_Flags' values instead */ #define t1_blend_underline_position T1_BLEND_UNDERLINE_POSITION #define t1_blend_underline_thickness T1_BLEND_UNDERLINE_THICKNESS #define t1_blend_italic_angle T1_BLEND_ITALIC_ANGLE @@ -288,7 +291,7 @@ FT_BEGIN_HEADER } PS_DesignMapRec, *PS_DesignMap; - /* backward compatible definition */ + /* backwards-compatible definition */ typedef PS_DesignMapRec T1_DesignMap; @@ -323,27 +326,18 @@ FT_BEGIN_HEADER } PS_BlendRec, *PS_Blend; - /* backward compatible definition */ + /* backwards-compatible definition */ typedef PS_BlendRec T1_Blend; - /************************************************************************** - * - * @struct: - * CID_FaceDictRec - * - * @description: - * A structure used to represent data in a CID top-level dictionary. In - * most cases, they are part of the font's '/FDArray' array. Within a - * CID font file, such (internal) subfont dictionaries are enclosed by - * '%ADOBeginFontDict' and '%ADOEndFontDict' comments. - * - * Note that `CID_FaceDictRec` misses a field for the '/FontName' - * keyword, specifying the subfont's name (the top-level font name is - * given by the '/CIDFontName' keyword). This is an oversight, but it - * doesn't limit the 'cid' font module's functionality because FreeType - * neither needs this entry nor gives access to CID subfonts. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* CID_FaceDictRec */ + /* */ + /* <Description> */ + /* A structure used to represent data in a CID top-level dictionary. */ + /* */ typedef struct CID_FaceDictRec_ { PS_PrivateRec private_dict; @@ -351,8 +345,8 @@ FT_BEGIN_HEADER FT_UInt len_buildchar; FT_Fixed forcebold_threshold; FT_Pos stroke_width; - FT_Fixed expansion_factor; /* this is a duplicate of */ - /* `private_dict->expansion_factor' */ + FT_Fixed expansion_factor; + FT_Byte paint_type; FT_Byte font_type; FT_Matrix font_matrix; @@ -365,38 +359,38 @@ FT_BEGIN_HEADER } CID_FaceDictRec; - /************************************************************************** - * - * @struct: - * CID_FaceDict - * - * @description: - * A handle to a @CID_FaceDictRec structure. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* CID_FaceDict */ + /* */ + /* <Description> */ + /* A handle to a @CID_FaceDictRec structure. */ + /* */ typedef struct CID_FaceDictRec_* CID_FaceDict; - /************************************************************************** - * - * @struct: - * CID_FontDict - * - * @description: - * This type is equivalent to @CID_FaceDictRec. It is deprecated but - * kept to maintain source compatibility between various versions of - * FreeType. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* CID_FontDict */ + /* */ + /* <Description> */ + /* This type is equivalent to @CID_FaceDictRec. It is deprecated but */ + /* kept to maintain source compatibility between various versions of */ + /* FreeType. */ + /* */ typedef CID_FaceDictRec CID_FontDict; - /************************************************************************** - * - * @struct: - * CID_FaceInfoRec - * - * @description: - * A structure used to represent CID Face information. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* CID_FaceInfoRec */ + /* */ + /* <Description> */ + /* A structure used to represent CID Face information. */ + /* */ typedef struct CID_FaceInfoRec_ { FT_String* cid_font_name; @@ -427,45 +421,47 @@ FT_BEGIN_HEADER } CID_FaceInfoRec; - /************************************************************************** - * - * @struct: - * CID_FaceInfo - * - * @description: - * A handle to a @CID_FaceInfoRec structure. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* CID_FaceInfo */ + /* */ + /* <Description> */ + /* A handle to a @CID_FaceInfoRec structure. */ + /* */ typedef struct CID_FaceInfoRec_* CID_FaceInfo; - /************************************************************************** - * - * @struct: - * CID_Info - * - * @description: - * This type is equivalent to @CID_FaceInfoRec. It is deprecated but kept - * to maintain source compatibility between various versions of FreeType. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* CID_Info */ + /* */ + /* <Description> */ + /* This type is equivalent to @CID_FaceInfoRec. It is deprecated but */ + /* kept to maintain source compatibility between various versions of */ + /* FreeType. */ + /* */ 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. + * 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 + * face handle * * @return: * Boolean. True if glyph names are reliable. @@ -475,7 +471,7 @@ FT_BEGIN_HEADER FT_Has_PS_Glyph_Names( FT_Face face ); - /************************************************************************** + /************************************************************************ * * @function: * FT_Get_PS_Font_Info @@ -486,22 +482,21 @@ FT_BEGIN_HEADER * * @input: * face :: - * PostScript face handle. + * PostScript face handle. * * @output: * afont_info :: - * Output font info structure pointer. + * Output font info structure pointer. * * @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 string pointers within the font info structure are owned by + * the face and don't need to be freed by the caller. * * If the font's format is not PostScript-based, this function will - * return the `FT_Err_Invalid_Argument` error code. + * return the `FT_Err_Invalid_Argument' error code. * */ FT_EXPORT( FT_Error ) @@ -509,7 +504,7 @@ FT_BEGIN_HEADER PS_FontInfo afont_info ); - /************************************************************************** + /************************************************************************ * * @function: * FT_Get_PS_Font_Private @@ -520,11 +515,11 @@ FT_BEGIN_HEADER * * @input: * face :: - * PostScript face handle. + * PostScript face handle. * * @output: * afont_private :: - * Output private dictionary structure pointer. + * Output private dictionary structure pointer. * * @return: * FreeType error code. 0~means success. @@ -534,7 +529,7 @@ FT_BEGIN_HEADER * the face and don't need to be freed by the caller. * * If the font's format is not PostScript-based, this function returns - * the `FT_Err_Invalid_Argument` error code. + * the `FT_Err_Invalid_Argument' error code. * */ FT_EXPORT( FT_Error ) @@ -542,24 +537,22 @@ FT_BEGIN_HEADER PS_Private afont_private ); - /************************************************************************** - * - * @enum: - * T1_EncodingType - * - * @description: - * An enumeration describing the 'Encoding' entry in a Type 1 dictionary. - * - * @values: - * T1_ENCODING_TYPE_NONE :: - * T1_ENCODING_TYPE_ARRAY :: - * T1_ENCODING_TYPE_STANDARD :: - * T1_ENCODING_TYPE_ISOLATIN1 :: - * T1_ENCODING_TYPE_EXPERT :: - * - * @since: - * 2.4.8 - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* T1_EncodingType */ + /* */ + /* <Description> */ + /* An enumeration describing the `Encoding' entry in a Type 1 */ + /* dictionary. */ + /* */ + /* <Values> */ + /* T1_ENCODING_TYPE_NONE :: */ + /* T1_ENCODING_TYPE_ARRAY :: */ + /* T1_ENCODING_TYPE_STANDARD :: */ + /* T1_ENCODING_TYPE_ISOLATIN1 :: */ + /* T1_ENCODING_TYPE_EXPERT :: */ + /* */ typedef enum T1_EncodingType_ { T1_ENCODING_TYPE_NONE = 0, @@ -571,66 +564,63 @@ FT_BEGIN_HEADER } T1_EncodingType; - /************************************************************************** - * - * @enum: - * PS_Dict_Keys - * - * @description: - * An enumeration used in calls to @FT_Get_PS_Font_Value to identify the - * Type~1 dictionary entry to retrieve. - * - * @values: - * PS_DICT_FONT_TYPE :: - * PS_DICT_FONT_MATRIX :: - * PS_DICT_FONT_BBOX :: - * PS_DICT_PAINT_TYPE :: - * PS_DICT_FONT_NAME :: - * PS_DICT_UNIQUE_ID :: - * PS_DICT_NUM_CHAR_STRINGS :: - * PS_DICT_CHAR_STRING_KEY :: - * PS_DICT_CHAR_STRING :: - * PS_DICT_ENCODING_TYPE :: - * PS_DICT_ENCODING_ENTRY :: - * PS_DICT_NUM_SUBRS :: - * PS_DICT_SUBR :: - * PS_DICT_STD_HW :: - * PS_DICT_STD_VW :: - * PS_DICT_NUM_BLUE_VALUES :: - * PS_DICT_BLUE_VALUE :: - * PS_DICT_BLUE_FUZZ :: - * PS_DICT_NUM_OTHER_BLUES :: - * PS_DICT_OTHER_BLUE :: - * PS_DICT_NUM_FAMILY_BLUES :: - * PS_DICT_FAMILY_BLUE :: - * PS_DICT_NUM_FAMILY_OTHER_BLUES :: - * PS_DICT_FAMILY_OTHER_BLUE :: - * PS_DICT_BLUE_SCALE :: - * PS_DICT_BLUE_SHIFT :: - * PS_DICT_NUM_STEM_SNAP_H :: - * PS_DICT_STEM_SNAP_H :: - * PS_DICT_NUM_STEM_SNAP_V :: - * PS_DICT_STEM_SNAP_V :: - * PS_DICT_FORCE_BOLD :: - * PS_DICT_RND_STEM_UP :: - * PS_DICT_MIN_FEATURE :: - * PS_DICT_LEN_IV :: - * PS_DICT_PASSWORD :: - * PS_DICT_LANGUAGE_GROUP :: - * PS_DICT_VERSION :: - * PS_DICT_NOTICE :: - * PS_DICT_FULL_NAME :: - * PS_DICT_FAMILY_NAME :: - * PS_DICT_WEIGHT :: - * PS_DICT_IS_FIXED_PITCH :: - * PS_DICT_UNDERLINE_POSITION :: - * PS_DICT_UNDERLINE_THICKNESS :: - * PS_DICT_FS_TYPE :: - * PS_DICT_ITALIC_ANGLE :: - * - * @since: - * 2.4.8 - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* PS_Dict_Keys */ + /* */ + /* <Description> */ + /* An enumeration used in calls to @FT_Get_PS_Font_Value to identify */ + /* the Type~1 dictionary entry to retrieve. */ + /* */ + /* <Values> */ + /* PS_DICT_FONT_TYPE :: */ + /* PS_DICT_FONT_MATRIX :: */ + /* PS_DICT_FONT_BBOX :: */ + /* PS_DICT_PAINT_TYPE :: */ + /* PS_DICT_FONT_NAME :: */ + /* PS_DICT_UNIQUE_ID :: */ + /* PS_DICT_NUM_CHAR_STRINGS :: */ + /* PS_DICT_CHAR_STRING_KEY :: */ + /* PS_DICT_CHAR_STRING :: */ + /* PS_DICT_ENCODING_TYPE :: */ + /* PS_DICT_ENCODING_ENTRY :: */ + /* PS_DICT_NUM_SUBRS :: */ + /* PS_DICT_SUBR :: */ + /* PS_DICT_STD_HW :: */ + /* PS_DICT_STD_VW :: */ + /* PS_DICT_NUM_BLUE_VALUES :: */ + /* PS_DICT_BLUE_VALUE :: */ + /* PS_DICT_BLUE_FUZZ :: */ + /* PS_DICT_NUM_OTHER_BLUES :: */ + /* PS_DICT_OTHER_BLUE :: */ + /* PS_DICT_NUM_FAMILY_BLUES :: */ + /* PS_DICT_FAMILY_BLUE :: */ + /* PS_DICT_NUM_FAMILY_OTHER_BLUES :: */ + /* PS_DICT_FAMILY_OTHER_BLUE :: */ + /* PS_DICT_BLUE_SCALE :: */ + /* PS_DICT_BLUE_SHIFT :: */ + /* PS_DICT_NUM_STEM_SNAP_H :: */ + /* PS_DICT_STEM_SNAP_H :: */ + /* PS_DICT_NUM_STEM_SNAP_V :: */ + /* PS_DICT_STEM_SNAP_V :: */ + /* PS_DICT_FORCE_BOLD :: */ + /* PS_DICT_RND_STEM_UP :: */ + /* PS_DICT_MIN_FEATURE :: */ + /* PS_DICT_LEN_IV :: */ + /* PS_DICT_PASSWORD :: */ + /* PS_DICT_LANGUAGE_GROUP :: */ + /* PS_DICT_VERSION :: */ + /* PS_DICT_NOTICE :: */ + /* PS_DICT_FULL_NAME :: */ + /* PS_DICT_FAMILY_NAME :: */ + /* PS_DICT_WEIGHT :: */ + /* PS_DICT_IS_FIXED_PITCH :: */ + /* PS_DICT_UNDERLINE_POSITION :: */ + /* PS_DICT_UNDERLINE_THICKNESS :: */ + /* PS_DICT_FS_TYPE :: */ + /* PS_DICT_ITALIC_ANGLE :: */ + /* */ typedef enum PS_Dict_Keys_ { /* conventionally in the font dictionary */ @@ -690,7 +680,7 @@ FT_BEGIN_HEADER } PS_Dict_Keys; - /************************************************************************** + /************************************************************************ * * @function: * FT_Get_PS_Font_Value @@ -700,60 +690,57 @@ FT_BEGIN_HEADER * * @input: * face :: - * PostScript face handle. + * PostScript face handle. * * key :: - * An enumeration value representing the dictionary key to retrieve. + * An enumeration value representing the dictionary key to retrieve. * * idx :: - * For array values, this specifies the index to be returned. + * For array values, this specifies the index to be returned. * * value :: - * A pointer to memory into which to write the value. + * A pointer to memory into which to write the value. * * valen_len :: - * The size, in bytes, of the memory supplied for the value. + * The size, in bytes, of the memory supplied for the value. * * @output: * value :: - * The value matching the above key, if it exists. + * 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). + * 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 + * 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 + * `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 + * `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 + * 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 + * 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). + * 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 + * 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 + * the `FT_Err_Invalid_Argument' error code. * */ FT_EXPORT( FT_Long ) @@ -767,7 +754,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* T1TABLES_H_ */ +#endif /* __T1TABLES_H__ */ /* END */ diff --git a/win64/include/freetype/ttnameid.h b/win64/include/freetype/ttnameid.h index 2b2ed4c6..e65b5581 100644 --- a/win64/include/freetype/ttnameid.h +++ b/win64/include/freetype/ttnameid.h @@ -1,78 +1,78 @@ -/**************************************************************************** - * - * ttnameid.h - * - * TrueType name ID definitions (specification only). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* ttnameid.h */ +/* */ +/* TrueType name ID definitions (specification only). */ +/* */ +/* Copyright 1996-2004, 2006-2008, 2012-2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 TTNAMEID_H_ -#define TTNAMEID_H_ +#ifndef __TTNAMEID_H__ +#define __TTNAMEID_H__ +#include <ft2build.h> FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * truetype_tables - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* truetype_tables */ + /* */ - /************************************************************************** - * - * Possible values for the 'platform' identifier code in the name records - * of an SFNT 'name' table. - * - */ + /*************************************************************************/ + /* */ + /* Possible values for the `platform' identifier code in the name */ + /* records of the TTF `name' table. */ + /* */ + /*************************************************************************/ - /************************************************************************** + /*********************************************************************** * * @enum: * TT_PLATFORM_XXX * * @description: - * A list of valid values for the `platform_id` identifier code in + * A list of valid values for the `platform_id' identifier code in * @FT_CharMapRec and @FT_SfntName structures. * * @values: * TT_PLATFORM_APPLE_UNICODE :: * Used by Apple to indicate a Unicode character map and/or name entry. - * See @TT_APPLE_ID_XXX for corresponding `encoding_id` values. Note + * See @TT_APPLE_ID_XXX for corresponding `encoding_id' values. Note * that name entries in this format are coded as big-endian UCS-2 * character codes _only_. * * TT_PLATFORM_MACINTOSH :: - * Used by Apple to indicate a MacOS-specific charmap and/or name - * entry. See @TT_MAC_ID_XXX for corresponding `encoding_id` values. - * Note that most TrueType fonts contain an Apple roman charmap to be - * usable on MacOS systems (even if they contain a Microsoft charmap as - * well). + * Used by Apple to indicate a MacOS-specific charmap and/or name entry. + * See @TT_MAC_ID_XXX for corresponding `encoding_id' values. Note that + * most TrueType fonts contain an Apple roman charmap to be usable on + * MacOS systems (even if they contain a Microsoft charmap as well). * * TT_PLATFORM_ISO :: - * This value was used to specify ISO/IEC 10646 charmaps. It is - * however now deprecated. See @TT_ISO_ID_XXX for a list of - * corresponding `encoding_id` values. + * This value was used to specify ISO/IEC 10646 charmaps. It is however + * now deprecated. See @TT_ISO_ID_XXX for a list of corresponding + * `encoding_id' values. * * TT_PLATFORM_MICROSOFT :: * Used by Microsoft to indicate Windows-specific charmaps. See - * @TT_MS_ID_XXX for a list of corresponding `encoding_id` values. + * @TT_MS_ID_XXX for a list of corresponding `encoding_id' values. * Note that most fonts contain a Unicode charmap using - * (`TT_PLATFORM_MICROSOFT`, @TT_MS_ID_UNICODE_CS). + * (TT_PLATFORM_MICROSOFT, @TT_MS_ID_UNICODE_CS). * * TT_PLATFORM_CUSTOM :: * Used to indicate application-specific charmaps. @@ -91,13 +91,13 @@ FT_BEGIN_HEADER #define TT_PLATFORM_ADOBE 7 /* artificial */ - /************************************************************************** + /*********************************************************************** * * @enum: * TT_APPLE_ID_XXX * * @description: - * A list of valid values for the `encoding_id` for + * A list of valid values for the `encoding_id' for * @TT_PLATFORM_APPLE_UNICODE charmaps and name entries. * * @values: @@ -117,31 +117,62 @@ FT_BEGIN_HEADER * Unicode 3.1 and beyond, using UTF-32. * * TT_APPLE_ID_VARIANT_SELECTOR :: - * From Adobe, not Apple. Not a normal cmap. Specifies variations on - * a real cmap. - * - * TT_APPLE_ID_FULL_UNICODE :: - * Used for fallback fonts that provide complete Unicode coverage with - * a type~13 cmap. + * From Adobe, not Apple. Not a normal cmap. Specifies variations + * on a real cmap. */ -#define TT_APPLE_ID_DEFAULT 0 /* Unicode 1.0 */ -#define TT_APPLE_ID_UNICODE_1_1 1 /* specify Hangul at U+34xx */ -#define TT_APPLE_ID_ISO_10646 2 /* deprecated */ -#define TT_APPLE_ID_UNICODE_2_0 3 /* or later */ +#define TT_APPLE_ID_DEFAULT 0 /* Unicode 1.0 */ +#define TT_APPLE_ID_UNICODE_1_1 1 /* specify Hangul at U+34xx */ +#define TT_APPLE_ID_ISO_10646 2 /* deprecated */ +#define TT_APPLE_ID_UNICODE_2_0 3 /* or later */ #define TT_APPLE_ID_UNICODE_32 4 /* 2.0 or later, full repertoire */ -#define TT_APPLE_ID_VARIANT_SELECTOR 5 /* variation selector data */ -#define TT_APPLE_ID_FULL_UNICODE 6 /* used with type 13 cmaps */ +#define TT_APPLE_ID_VARIANT_SELECTOR 5 /* variation selector data */ - /************************************************************************** + /*********************************************************************** * * @enum: * TT_MAC_ID_XXX * * @description: - * A list of valid values for the `encoding_id` for + * A list of valid values for the `encoding_id' for * @TT_PLATFORM_MACINTOSH charmaps and name entries. + * + * @values: + * TT_MAC_ID_ROMAN :: + * TT_MAC_ID_JAPANESE :: + * TT_MAC_ID_TRADITIONAL_CHINESE :: + * TT_MAC_ID_KOREAN :: + * TT_MAC_ID_ARABIC :: + * TT_MAC_ID_HEBREW :: + * TT_MAC_ID_GREEK :: + * TT_MAC_ID_RUSSIAN :: + * TT_MAC_ID_RSYMBOL :: + * TT_MAC_ID_DEVANAGARI :: + * TT_MAC_ID_GURMUKHI :: + * TT_MAC_ID_GUJARATI :: + * TT_MAC_ID_ORIYA :: + * TT_MAC_ID_BENGALI :: + * TT_MAC_ID_TAMIL :: + * TT_MAC_ID_TELUGU :: + * TT_MAC_ID_KANNADA :: + * TT_MAC_ID_MALAYALAM :: + * TT_MAC_ID_SINHALESE :: + * TT_MAC_ID_BURMESE :: + * TT_MAC_ID_KHMER :: + * TT_MAC_ID_THAI :: + * TT_MAC_ID_LAOTIAN :: + * TT_MAC_ID_GEORGIAN :: + * TT_MAC_ID_ARMENIAN :: + * TT_MAC_ID_MALDIVIAN :: + * TT_MAC_ID_SIMPLIFIED_CHINESE :: + * TT_MAC_ID_TIBETAN :: + * TT_MAC_ID_MONGOLIAN :: + * TT_MAC_ID_GEEZ :: + * TT_MAC_ID_SLAVIC :: + * TT_MAC_ID_VIETNAMESE :: + * TT_MAC_ID_SINDHI :: + * TT_MAC_ID_UNINTERP :: */ #define TT_MAC_ID_ROMAN 0 @@ -180,14 +211,14 @@ FT_BEGIN_HEADER #define TT_MAC_ID_UNINTERP 32 - /************************************************************************** + /*********************************************************************** * * @enum: * TT_ISO_ID_XXX * * @description: - * A list of valid values for the `encoding_id` for @TT_PLATFORM_ISO - * charmaps and name entries. + * A list of valid values for the `encoding_id' for + * @TT_PLATFORM_ISO charmaps and name entries. * * Their use is now deprecated. * @@ -205,66 +236,64 @@ FT_BEGIN_HEADER #define TT_ISO_ID_8859_1 2 - /************************************************************************** + /*********************************************************************** * * @enum: * TT_MS_ID_XXX * * @description: - * A list of valid values for the `encoding_id` for + * A list of valid values for the `encoding_id' for * @TT_PLATFORM_MICROSOFT charmaps and name entries. * * @values: * TT_MS_ID_SYMBOL_CS :: - * Microsoft symbol encoding. See @FT_ENCODING_MS_SYMBOL. + * Corresponds to Microsoft symbol encoding. See + * @FT_ENCODING_MS_SYMBOL. * * TT_MS_ID_UNICODE_CS :: - * Microsoft WGL4 charmap, matching Unicode. See @FT_ENCODING_UNICODE. + * Corresponds to a Microsoft WGL4 charmap, matching Unicode. See + * @FT_ENCODING_UNICODE. * * TT_MS_ID_SJIS :: - * Shift JIS Japanese encoding. See @FT_ENCODING_SJIS. + * Corresponds to SJIS Japanese encoding. See @FT_ENCODING_SJIS. * - * TT_MS_ID_PRC :: - * Chinese encodings as used in the People's Republic of China (PRC). - * This means the encodings GB~2312 and its supersets GBK and GB~18030. - * See @FT_ENCODING_PRC. + * TT_MS_ID_GB2312 :: + * Corresponds to Simplified Chinese as used in Mainland China. See + * @FT_ENCODING_GB2312. * * TT_MS_ID_BIG_5 :: - * Traditional Chinese as used in Taiwan and Hong Kong. See - * @FT_ENCODING_BIG5. + * Corresponds to Traditional Chinese as used in Taiwan and Hong Kong. + * See @FT_ENCODING_BIG5. * * TT_MS_ID_WANSUNG :: - * Korean Extended Wansung encoding. See @FT_ENCODING_WANSUNG. + * Corresponds to Korean Wansung encoding. See @FT_ENCODING_WANSUNG. * * TT_MS_ID_JOHAB :: - * Korean Johab encoding. See @FT_ENCODING_JOHAB. + * Corresponds to Johab encoding. See @FT_ENCODING_JOHAB. * * TT_MS_ID_UCS_4 :: - * UCS-4 or UTF-32 charmaps. This has been added to the OpenType - * specification version 1.4 (mid-2001). + * Corresponds to UCS-4 or UTF-32 charmaps. This has been added to + * the OpenType specification version 1.4 (mid-2001.) */ #define TT_MS_ID_SYMBOL_CS 0 #define TT_MS_ID_UNICODE_CS 1 #define TT_MS_ID_SJIS 2 -#define TT_MS_ID_PRC 3 +#define TT_MS_ID_GB2312 3 #define TT_MS_ID_BIG_5 4 #define TT_MS_ID_WANSUNG 5 #define TT_MS_ID_JOHAB 6 #define TT_MS_ID_UCS_4 10 - /* this value is deprecated */ -#define TT_MS_ID_GB2312 TT_MS_ID_PRC - - /************************************************************************** + /*********************************************************************** * * @enum: * TT_ADOBE_ID_XXX * * @description: - * A list of valid values for the `encoding_id` for @TT_PLATFORM_ADOBE - * charmaps. This is a FreeType-specific extension! + * A list of valid values for the `encoding_id' for + * @TT_PLATFORM_ADOBE charmaps. This is a FreeType-specific extension! * * @values: * TT_ADOBE_ID_STANDARD :: @@ -283,22 +312,17 @@ FT_BEGIN_HEADER #define TT_ADOBE_ID_LATIN_1 3 - /************************************************************************** - * - * @enum: - * TT_MAC_LANGID_XXX - * - * @description: - * Possible values of the language identifier field in the name records - * of the SFNT 'name' table if the 'platform' identifier code is - * @TT_PLATFORM_MACINTOSH. These values are also used as return values - * for function @FT_Get_CMap_Language_ID. - * - * The canonical source for Apple's IDs is - * - * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html - */ - + /*************************************************************************/ + /* */ + /* Possible values of the language identifier field in the name records */ + /* of the TTF `name' table if the `platform' identifier code is */ + /* TT_PLATFORM_MACINTOSH. These values are also used as return values */ + /* for function @FT_Get_CMap_Language_ID. */ + /* */ + /* The canonical source for the Apple assigned Language ID's is at */ + /* */ + /* https://developer.apple.com/fonts/TTRefMan/RM06/Chap6name.html */ + /* */ #define TT_MAC_LANGID_ENGLISH 0 #define TT_MAC_LANGID_FRENCH 1 #define TT_MAC_LANGID_GERMAN 2 @@ -409,6 +433,15 @@ FT_BEGIN_HEADER #define TT_MAC_LANGID_JAVANESE 138 #define TT_MAC_LANGID_SUNDANESE 139 + +#if 0 /* these seem to be errors that have been dropped */ + +#define TT_MAC_LANGID_SCOTTISH_GAELIC 140 +#define TT_MAC_LANGID_IRISH_GAELIC 141 + +#endif + + /* The following codes are new as of 2000-03-10 */ #define TT_MAC_LANGID_GALICIAN 140 #define TT_MAC_LANGID_AFRIKAANS 141 @@ -423,30 +456,18 @@ FT_BEGIN_HEADER #define TT_MAC_LANGID_AZERBAIJANI_ROMAN_SCRIPT 150 - /************************************************************************** - * - * @enum: - * TT_MS_LANGID_XXX - * - * @description: - * Possible values of the language identifier field in the name records - * of the SFNT 'name' table if the 'platform' identifier code is - * @TT_PLATFORM_MICROSOFT. These values are also used as return values - * for function @FT_Get_CMap_Language_ID. - * - * The canonical source for Microsoft's IDs is - * - * https://docs.microsoft.com/en-us/windows/desktop/Intl/language-identifier-constants-and-strings , - * - * however, we only provide macros for language identifiers present in - * the OpenType specification: Microsoft has abandoned the concept of - * LCIDs (language code identifiers), and format~1 of the 'name' table - * provides a better mechanism for languages not covered here. - * - * More legacy values not listed in the reference can be found in the - * @FT_TRUETYPE_IDS_H header file. - */ + /*************************************************************************/ + /* */ + /* Possible values of the language identifier field in the name records */ + /* of the TTF `name' table if the `platform' identifier code is */ + /* TT_PLATFORM_MICROSOFT. */ + /* */ + /* The canonical source for the MS assigned LCIDs is */ + /* */ + /* http://www.microsoft.com/globaldev/reference/lcid-all.mspx */ + /* */ +#define TT_MS_LANGID_ARABIC_GENERAL 0x0001 #define TT_MS_LANGID_ARABIC_SAUDI_ARABIA 0x0401 #define TT_MS_LANGID_ARABIC_IRAQ 0x0801 #define TT_MS_LANGID_ARABIC_EGYPT 0x0C01 @@ -464,20 +485,39 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_ARABIC_BAHRAIN 0x3C01 #define TT_MS_LANGID_ARABIC_QATAR 0x4001 #define TT_MS_LANGID_BULGARIAN_BULGARIA 0x0402 -#define TT_MS_LANGID_CATALAN_CATALAN 0x0403 +#define TT_MS_LANGID_CATALAN_SPAIN 0x0403 +#define TT_MS_LANGID_CHINESE_GENERAL 0x0004 #define TT_MS_LANGID_CHINESE_TAIWAN 0x0404 #define TT_MS_LANGID_CHINESE_PRC 0x0804 #define TT_MS_LANGID_CHINESE_HONG_KONG 0x0C04 #define TT_MS_LANGID_CHINESE_SINGAPORE 0x1004 -#define TT_MS_LANGID_CHINESE_MACAO 0x1404 + +#if 1 /* this looks like the correct value */ +#define TT_MS_LANGID_CHINESE_MACAU 0x1404 +#else /* but beware, Microsoft may change its mind... + the most recent Word reference has the following: */ +#define TT_MS_LANGID_CHINESE_MACAU TT_MS_LANGID_CHINESE_HONG_KONG +#endif + +#if 0 /* used only with .NET `cultures'; commented out */ +#define TT_MS_LANGID_CHINESE_TRADITIONAL 0x7C04 +#endif + #define TT_MS_LANGID_CZECH_CZECH_REPUBLIC 0x0405 #define TT_MS_LANGID_DANISH_DENMARK 0x0406 #define TT_MS_LANGID_GERMAN_GERMANY 0x0407 #define TT_MS_LANGID_GERMAN_SWITZERLAND 0x0807 #define TT_MS_LANGID_GERMAN_AUSTRIA 0x0C07 #define TT_MS_LANGID_GERMAN_LUXEMBOURG 0x1007 -#define TT_MS_LANGID_GERMAN_LIECHTENSTEIN 0x1407 +#define TT_MS_LANGID_GERMAN_LIECHTENSTEI 0x1407 #define TT_MS_LANGID_GREEK_GREECE 0x0408 + + /* don't ask what this one means... It is commented out currently. */ +#if 0 +#define TT_MS_LANGID_GREEK_GREECE2 0x2008 +#endif + +#define TT_MS_LANGID_ENGLISH_GENERAL 0x0009 #define TT_MS_LANGID_ENGLISH_UNITED_STATES 0x0409 #define TT_MS_LANGID_ENGLISH_UNITED_KINGDOM 0x0809 #define TT_MS_LANGID_ENGLISH_AUSTRALIA 0x0C09 @@ -491,12 +531,14 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_ENGLISH_TRINIDAD 0x2C09 #define TT_MS_LANGID_ENGLISH_ZIMBABWE 0x3009 #define TT_MS_LANGID_ENGLISH_PHILIPPINES 0x3409 +#define TT_MS_LANGID_ENGLISH_INDONESIA 0x3809 +#define TT_MS_LANGID_ENGLISH_HONG_KONG 0x3C09 #define TT_MS_LANGID_ENGLISH_INDIA 0x4009 #define TT_MS_LANGID_ENGLISH_MALAYSIA 0x4409 #define TT_MS_LANGID_ENGLISH_SINGAPORE 0x4809 #define TT_MS_LANGID_SPANISH_SPAIN_TRADITIONAL_SORT 0x040A #define TT_MS_LANGID_SPANISH_MEXICO 0x080A -#define TT_MS_LANGID_SPANISH_SPAIN_MODERN_SORT 0x0C0A +#define TT_MS_LANGID_SPANISH_SPAIN_INTERNATIONAL_SORT 0x0C0A #define TT_MS_LANGID_SPANISH_GUATEMALA 0x100A #define TT_MS_LANGID_SPANISH_COSTA_RICA 0x140A #define TT_MS_LANGID_SPANISH_PANAMA 0x180A @@ -515,6 +557,9 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_SPANISH_NICARAGUA 0x4C0A #define TT_MS_LANGID_SPANISH_PUERTO_RICO 0x500A #define TT_MS_LANGID_SPANISH_UNITED_STATES 0x540A + /* The following ID blatantly violate MS specs by using a */ + /* sublanguage > 0x1F. */ +#define TT_MS_LANGID_SPANISH_LATIN_AMERICA 0xE40AU #define TT_MS_LANGID_FINNISH_FINLAND 0x040B #define TT_MS_LANGID_FRENCH_FRANCE 0x040C #define TT_MS_LANGID_FRENCH_BELGIUM 0x080C @@ -522,13 +567,27 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_FRENCH_SWITZERLAND 0x100C #define TT_MS_LANGID_FRENCH_LUXEMBOURG 0x140C #define TT_MS_LANGID_FRENCH_MONACO 0x180C +#define TT_MS_LANGID_FRENCH_WEST_INDIES 0x1C0C +#define TT_MS_LANGID_FRENCH_REUNION 0x200C +#define TT_MS_LANGID_FRENCH_CONGO 0x240C + /* which was formerly: */ +#define TT_MS_LANGID_FRENCH_ZAIRE TT_MS_LANGID_FRENCH_CONGO +#define TT_MS_LANGID_FRENCH_SENEGAL 0x280C +#define TT_MS_LANGID_FRENCH_CAMEROON 0x2C0C +#define TT_MS_LANGID_FRENCH_COTE_D_IVOIRE 0x300C +#define TT_MS_LANGID_FRENCH_MALI 0x340C +#define TT_MS_LANGID_FRENCH_MOROCCO 0x380C +#define TT_MS_LANGID_FRENCH_HAITI 0x3C0C + /* and another violation of the spec (see 0xE40AU) */ +#define TT_MS_LANGID_FRENCH_NORTH_AFRICA 0xE40CU #define TT_MS_LANGID_HEBREW_ISRAEL 0x040D #define TT_MS_LANGID_HUNGARIAN_HUNGARY 0x040E #define TT_MS_LANGID_ICELANDIC_ICELAND 0x040F #define TT_MS_LANGID_ITALIAN_ITALY 0x0410 #define TT_MS_LANGID_ITALIAN_SWITZERLAND 0x0810 #define TT_MS_LANGID_JAPANESE_JAPAN 0x0411 -#define TT_MS_LANGID_KOREAN_KOREA 0x0412 +#define TT_MS_LANGID_KOREAN_EXTENDED_WANSUNG_KOREA 0x0412 +#define TT_MS_LANGID_KOREAN_JOHAB_KOREA 0x0812 #define TT_MS_LANGID_DUTCH_NETHERLANDS 0x0413 #define TT_MS_LANGID_DUTCH_BELGIUM 0x0813 #define TT_MS_LANGID_NORWEGIAN_NORWAY_BOKMAL 0x0414 @@ -536,17 +595,26 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_POLISH_POLAND 0x0415 #define TT_MS_LANGID_PORTUGUESE_BRAZIL 0x0416 #define TT_MS_LANGID_PORTUGUESE_PORTUGAL 0x0816 -#define TT_MS_LANGID_ROMANSH_SWITZERLAND 0x0417 +#define TT_MS_LANGID_RHAETO_ROMANIC_SWITZERLAND 0x0417 #define TT_MS_LANGID_ROMANIAN_ROMANIA 0x0418 +#define TT_MS_LANGID_MOLDAVIAN_MOLDAVIA 0x0818 #define TT_MS_LANGID_RUSSIAN_RUSSIA 0x0419 +#define TT_MS_LANGID_RUSSIAN_MOLDAVIA 0x0819 #define TT_MS_LANGID_CROATIAN_CROATIA 0x041A #define TT_MS_LANGID_SERBIAN_SERBIA_LATIN 0x081A #define TT_MS_LANGID_SERBIAN_SERBIA_CYRILLIC 0x0C1A + +#if 0 /* this used to be this value, but it looks like we were wrong */ +#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA 0x101A +#else /* current sources say */ #define TT_MS_LANGID_CROATIAN_BOSNIA_HERZEGOVINA 0x101A #define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA 0x141A + /* and XPsp2 Platform SDK added (2004-07-26) */ + /* Names are shortened to be significant within 40 chars. */ #define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_LATIN 0x181A -#define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC 0x1C1A -#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZ_CYRILLIC 0x201A +#define TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC 0x181A +#endif + #define TT_MS_LANGID_SLOVAK_SLOVAKIA 0x041B #define TT_MS_LANGID_ALBANIAN_ALBANIA 0x041C #define TT_MS_LANGID_SWEDISH_SWEDEN 0x041D @@ -554,30 +622,36 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_THAI_THAILAND 0x041E #define TT_MS_LANGID_TURKISH_TURKEY 0x041F #define TT_MS_LANGID_URDU_PAKISTAN 0x0420 +#define TT_MS_LANGID_URDU_INDIA 0x0820 #define TT_MS_LANGID_INDONESIAN_INDONESIA 0x0421 #define TT_MS_LANGID_UKRAINIAN_UKRAINE 0x0422 #define TT_MS_LANGID_BELARUSIAN_BELARUS 0x0423 -#define TT_MS_LANGID_SLOVENIAN_SLOVENIA 0x0424 +#define TT_MS_LANGID_SLOVENE_SLOVENIA 0x0424 #define TT_MS_LANGID_ESTONIAN_ESTONIA 0x0425 #define TT_MS_LANGID_LATVIAN_LATVIA 0x0426 #define TT_MS_LANGID_LITHUANIAN_LITHUANIA 0x0427 +#define TT_MS_LANGID_CLASSIC_LITHUANIAN_LITHUANIA 0x0827 #define TT_MS_LANGID_TAJIK_TAJIKISTAN 0x0428 +#define TT_MS_LANGID_FARSI_IRAN 0x0429 #define TT_MS_LANGID_VIETNAMESE_VIET_NAM 0x042A #define TT_MS_LANGID_ARMENIAN_ARMENIA 0x042B #define TT_MS_LANGID_AZERI_AZERBAIJAN_LATIN 0x042C #define TT_MS_LANGID_AZERI_AZERBAIJAN_CYRILLIC 0x082C -#define TT_MS_LANGID_BASQUE_BASQUE 0x042D -#define TT_MS_LANGID_UPPER_SORBIAN_GERMANY 0x042E -#define TT_MS_LANGID_LOWER_SORBIAN_GERMANY 0x082E +#define TT_MS_LANGID_BASQUE_SPAIN 0x042D +#define TT_MS_LANGID_SORBIAN_GERMANY 0x042E #define TT_MS_LANGID_MACEDONIAN_MACEDONIA 0x042F -#define TT_MS_LANGID_SETSWANA_SOUTH_AFRICA 0x0432 -#define TT_MS_LANGID_ISIXHOSA_SOUTH_AFRICA 0x0434 -#define TT_MS_LANGID_ISIZULU_SOUTH_AFRICA 0x0435 +#define TT_MS_LANGID_SUTU_SOUTH_AFRICA 0x0430 +#define TT_MS_LANGID_TSONGA_SOUTH_AFRICA 0x0431 +#define TT_MS_LANGID_TSWANA_SOUTH_AFRICA 0x0432 +#define TT_MS_LANGID_VENDA_SOUTH_AFRICA 0x0433 +#define TT_MS_LANGID_XHOSA_SOUTH_AFRICA 0x0434 +#define TT_MS_LANGID_ZULU_SOUTH_AFRICA 0x0435 #define TT_MS_LANGID_AFRIKAANS_SOUTH_AFRICA 0x0436 #define TT_MS_LANGID_GEORGIAN_GEORGIA 0x0437 #define TT_MS_LANGID_FAEROESE_FAEROE_ISLANDS 0x0438 #define TT_MS_LANGID_HINDI_INDIA 0x0439 #define TT_MS_LANGID_MALTESE_MALTA 0x043A + /* Added by XPsp2 Platform SDK (2004-07-26) */ #define TT_MS_LANGID_SAMI_NORTHERN_NORWAY 0x043B #define TT_MS_LANGID_SAMI_NORTHERN_SWEDEN 0x083B #define TT_MS_LANGID_SAMI_NORTHERN_FINLAND 0x0C3B @@ -587,21 +661,37 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_SAMI_SOUTHERN_SWEDEN 0x1C3B #define TT_MS_LANGID_SAMI_SKOLT_FINLAND 0x203B #define TT_MS_LANGID_SAMI_INARI_FINLAND 0x243B -#define TT_MS_LANGID_IRISH_IRELAND 0x083C + /* ... and we also keep our old identifier... */ +#define TT_MS_LANGID_SAAMI_LAPONIA 0x043B + +#if 0 /* this seems to be a previous inversion */ +#define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043C +#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083C +#else +#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083C +#define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043C +#endif + +#define TT_MS_LANGID_YIDDISH_GERMANY 0x043D #define TT_MS_LANGID_MALAY_MALAYSIA 0x043E #define TT_MS_LANGID_MALAY_BRUNEI_DARUSSALAM 0x083E -#define TT_MS_LANGID_KAZAKH_KAZAKHSTAN 0x043F -#define TT_MS_LANGID_KYRGYZ_KYRGYZSTAN /* Cyrillic*/ 0x0440 -#define TT_MS_LANGID_KISWAHILI_KENYA 0x0441 +#define TT_MS_LANGID_KAZAK_KAZAKSTAN 0x043F +#define TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN /* Cyrillic*/ 0x0440 + /* alias declared in Windows 2000 */ +#define TT_MS_LANGID_KIRGHIZ_KIRGHIZ_REPUBLIC \ + TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN + +#define TT_MS_LANGID_SWAHILI_KENYA 0x0441 #define TT_MS_LANGID_TURKMEN_TURKMENISTAN 0x0442 #define TT_MS_LANGID_UZBEK_UZBEKISTAN_LATIN 0x0443 #define TT_MS_LANGID_UZBEK_UZBEKISTAN_CYRILLIC 0x0843 -#define TT_MS_LANGID_TATAR_RUSSIA 0x0444 +#define TT_MS_LANGID_TATAR_TATARSTAN 0x0444 #define TT_MS_LANGID_BENGALI_INDIA 0x0445 #define TT_MS_LANGID_BENGALI_BANGLADESH 0x0845 #define TT_MS_LANGID_PUNJABI_INDIA 0x0446 +#define TT_MS_LANGID_PUNJABI_ARABIC_PAKISTAN 0x0846 #define TT_MS_LANGID_GUJARATI_INDIA 0x0447 -#define TT_MS_LANGID_ODIA_INDIA 0x0448 +#define TT_MS_LANGID_ORIYA_INDIA 0x0448 #define TT_MS_LANGID_TAMIL_INDIA 0x0449 #define TT_MS_LANGID_TELUGU_INDIA 0x044A #define TT_MS_LANGID_KANNADA_INDIA 0x044B @@ -610,241 +700,142 @@ FT_BEGIN_HEADER #define TT_MS_LANGID_MARATHI_INDIA 0x044E #define TT_MS_LANGID_SANSKRIT_INDIA 0x044F #define TT_MS_LANGID_MONGOLIAN_MONGOLIA /* Cyrillic */ 0x0450 -#define TT_MS_LANGID_MONGOLIAN_PRC 0x0850 -#define TT_MS_LANGID_TIBETAN_PRC 0x0451 -#define TT_MS_LANGID_WELSH_UNITED_KINGDOM 0x0452 +#define TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIAN 0x0850 +#define TT_MS_LANGID_TIBETAN_CHINA 0x0451 + /* Don't use the next constant! It has */ + /* (1) the wrong spelling (Dzonghka) */ + /* (2) Microsoft doesn't officially define it -- */ + /* at least it is not in the List of Local */ + /* ID Values. */ + /* (3) Dzongkha is not the same language as */ + /* Tibetan, so merging it is wrong anyway. */ + /* */ + /* TT_MS_LANGID_TIBETAN_BHUTAN is correct, BTW. */ +#define TT_MS_LANGID_DZONGHKA_BHUTAN 0x0851 + +#if 0 + /* the following used to be defined */ +#define TT_MS_LANGID_TIBETAN_BHUTAN 0x0451 + /* ... but it was changed; */ +#else + /* So we will continue to #define it, but with the correct value */ +#define TT_MS_LANGID_TIBETAN_BHUTAN TT_MS_LANGID_DZONGHKA_BHUTAN +#endif + +#define TT_MS_LANGID_WELSH_WALES 0x0452 #define TT_MS_LANGID_KHMER_CAMBODIA 0x0453 #define TT_MS_LANGID_LAO_LAOS 0x0454 -#define TT_MS_LANGID_GALICIAN_GALICIAN 0x0456 +#define TT_MS_LANGID_BURMESE_MYANMAR 0x0455 +#define TT_MS_LANGID_GALICIAN_SPAIN 0x0456 #define TT_MS_LANGID_KONKANI_INDIA 0x0457 +#define TT_MS_LANGID_MANIPURI_INDIA /* Bengali */ 0x0458 +#define TT_MS_LANGID_SINDHI_INDIA /* Arabic */ 0x0459 +#define TT_MS_LANGID_SINDHI_PAKISTAN 0x0859 + /* Missing a LCID for Sindhi in Devanagari script */ #define TT_MS_LANGID_SYRIAC_SYRIA 0x045A -#define TT_MS_LANGID_SINHALA_SRI_LANKA 0x045B +#define TT_MS_LANGID_SINHALESE_SRI_LANKA 0x045B +#define TT_MS_LANGID_CHEROKEE_UNITED_STATES 0x045C #define TT_MS_LANGID_INUKTITUT_CANADA 0x045D -#define TT_MS_LANGID_INUKTITUT_CANADA_LATIN 0x085D #define TT_MS_LANGID_AMHARIC_ETHIOPIA 0x045E -#define TT_MS_LANGID_TAMAZIGHT_ALGERIA 0x085F +#define TT_MS_LANGID_TAMAZIGHT_MOROCCO /* Arabic */ 0x045F +#define TT_MS_LANGID_TAMAZIGHT_MOROCCO_LATIN 0x085F + /* Missing a LCID for Tifinagh script */ +#define TT_MS_LANGID_KASHMIRI_PAKISTAN /* Arabic */ 0x0460 + /* Spelled this way by XPsp2 Platform SDK (2004-07-26) */ + /* script is yet unclear... might be Arabic, Nagari or Sharada */ +#define TT_MS_LANGID_KASHMIRI_SASIA 0x0860 + /* ... and aliased (by MS) for compatibility reasons. */ +#define TT_MS_LANGID_KASHMIRI_INDIA TT_MS_LANGID_KASHMIRI_SASIA #define TT_MS_LANGID_NEPALI_NEPAL 0x0461 +#define TT_MS_LANGID_NEPALI_INDIA 0x0861 #define TT_MS_LANGID_FRISIAN_NETHERLANDS 0x0462 #define TT_MS_LANGID_PASHTO_AFGHANISTAN 0x0463 #define TT_MS_LANGID_FILIPINO_PHILIPPINES 0x0464 #define TT_MS_LANGID_DHIVEHI_MALDIVES 0x0465 + /* alias declared in Windows 2000 */ +#define TT_MS_LANGID_DIVEHI_MALDIVES TT_MS_LANGID_DHIVEHI_MALDIVES +#define TT_MS_LANGID_EDO_NIGERIA 0x0466 +#define TT_MS_LANGID_FULFULDE_NIGERIA 0x0467 #define TT_MS_LANGID_HAUSA_NIGERIA 0x0468 +#define TT_MS_LANGID_IBIBIO_NIGERIA 0x0469 #define TT_MS_LANGID_YORUBA_NIGERIA 0x046A #define TT_MS_LANGID_QUECHUA_BOLIVIA 0x046B #define TT_MS_LANGID_QUECHUA_ECUADOR 0x086B #define TT_MS_LANGID_QUECHUA_PERU 0x0C6B -#define TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA 0x046C -#define TT_MS_LANGID_BASHKIR_RUSSIA 0x046D -#define TT_MS_LANGID_LUXEMBOURGISH_LUXEMBOURG 0x046E -#define TT_MS_LANGID_GREENLANDIC_GREENLAND 0x046F -#define TT_MS_LANGID_IGBO_NIGERIA 0x0470 -#define TT_MS_LANGID_YI_PRC 0x0478 -#define TT_MS_LANGID_MAPUDUNGUN_CHILE 0x047A -#define TT_MS_LANGID_MOHAWK_MOHAWK 0x047C -#define TT_MS_LANGID_BRETON_FRANCE 0x047E -#define TT_MS_LANGID_UIGHUR_PRC 0x0480 -#define TT_MS_LANGID_MAORI_NEW_ZEALAND 0x0481 -#define TT_MS_LANGID_OCCITAN_FRANCE 0x0482 -#define TT_MS_LANGID_CORSICAN_FRANCE 0x0483 -#define TT_MS_LANGID_ALSATIAN_FRANCE 0x0484 -#define TT_MS_LANGID_YAKUT_RUSSIA 0x0485 -#define TT_MS_LANGID_KICHE_GUATEMALA 0x0486 -#define TT_MS_LANGID_KINYARWANDA_RWANDA 0x0487 -#define TT_MS_LANGID_WOLOF_SENEGAL 0x0488 -#define TT_MS_LANGID_DARI_AFGHANISTAN 0x048C - - /* */ - - - /* legacy macro definitions not present in OpenType 1.8.1 */ -#define TT_MS_LANGID_ARABIC_GENERAL 0x0001 -#define TT_MS_LANGID_CATALAN_SPAIN \ - TT_MS_LANGID_CATALAN_CATALAN -#define TT_MS_LANGID_CHINESE_GENERAL 0x0004 -#define TT_MS_LANGID_CHINESE_MACAU \ - TT_MS_LANGID_CHINESE_MACAO -#define TT_MS_LANGID_GERMAN_LIECHTENSTEI \ - TT_MS_LANGID_GERMAN_LIECHTENSTEIN -#define TT_MS_LANGID_ENGLISH_GENERAL 0x0009 -#define TT_MS_LANGID_ENGLISH_INDONESIA 0x3809 -#define TT_MS_LANGID_ENGLISH_HONG_KONG 0x3C09 -#define TT_MS_LANGID_SPANISH_SPAIN_INTERNATIONAL_SORT \ - TT_MS_LANGID_SPANISH_SPAIN_MODERN_SORT -#define TT_MS_LANGID_SPANISH_LATIN_AMERICA 0xE40AU -#define TT_MS_LANGID_FRENCH_WEST_INDIES 0x1C0C -#define TT_MS_LANGID_FRENCH_REUNION 0x200C -#define TT_MS_LANGID_FRENCH_CONGO 0x240C - /* which was formerly: */ -#define TT_MS_LANGID_FRENCH_ZAIRE \ - TT_MS_LANGID_FRENCH_CONGO -#define TT_MS_LANGID_FRENCH_SENEGAL 0x280C -#define TT_MS_LANGID_FRENCH_CAMEROON 0x2C0C -#define TT_MS_LANGID_FRENCH_COTE_D_IVOIRE 0x300C -#define TT_MS_LANGID_FRENCH_MALI 0x340C -#define TT_MS_LANGID_FRENCH_MOROCCO 0x380C -#define TT_MS_LANGID_FRENCH_HAITI 0x3C0C -#define TT_MS_LANGID_FRENCH_NORTH_AFRICA 0xE40CU -#define TT_MS_LANGID_KOREAN_EXTENDED_WANSUNG_KOREA \ - TT_MS_LANGID_KOREAN_KOREA -#define TT_MS_LANGID_KOREAN_JOHAB_KOREA 0x0812 -#define TT_MS_LANGID_RHAETO_ROMANIC_SWITZERLAND \ - TT_MS_LANGID_ROMANSH_SWITZERLAND -#define TT_MS_LANGID_MOLDAVIAN_MOLDAVIA 0x0818 -#define TT_MS_LANGID_RUSSIAN_MOLDAVIA 0x0819 -#define TT_MS_LANGID_URDU_INDIA 0x0820 -#define TT_MS_LANGID_CLASSIC_LITHUANIAN_LITHUANIA 0x0827 -#define TT_MS_LANGID_SLOVENE_SLOVENIA \ - TT_MS_LANGID_SLOVENIAN_SLOVENIA -#define TT_MS_LANGID_FARSI_IRAN 0x0429 -#define TT_MS_LANGID_BASQUE_SPAIN \ - TT_MS_LANGID_BASQUE_BASQUE -#define TT_MS_LANGID_SORBIAN_GERMANY \ - TT_MS_LANGID_UPPER_SORBIAN_GERMANY -#define TT_MS_LANGID_SUTU_SOUTH_AFRICA 0x0430 -#define TT_MS_LANGID_TSONGA_SOUTH_AFRICA 0x0431 -#define TT_MS_LANGID_TSWANA_SOUTH_AFRICA \ - TT_MS_LANGID_SETSWANA_SOUTH_AFRICA -#define TT_MS_LANGID_VENDA_SOUTH_AFRICA 0x0433 -#define TT_MS_LANGID_XHOSA_SOUTH_AFRICA \ - TT_MS_LANGID_ISIXHOSA_SOUTH_AFRICA -#define TT_MS_LANGID_ZULU_SOUTH_AFRICA \ - TT_MS_LANGID_ISIZULU_SOUTH_AFRICA -#define TT_MS_LANGID_SAAMI_LAPONIA 0x043B - /* the next two values are incorrectly inverted */ -#define TT_MS_LANGID_IRISH_GAELIC_IRELAND 0x043C -#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM 0x083C -#define TT_MS_LANGID_YIDDISH_GERMANY 0x043D -#define TT_MS_LANGID_KAZAK_KAZAKSTAN \ - TT_MS_LANGID_KAZAKH_KAZAKHSTAN -#define TT_MS_LANGID_KIRGHIZ_KIRGHIZ_REPUBLIC \ - TT_MS_LANGID_KYRGYZ_KYRGYZSTAN -#define TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN \ - TT_MS_LANGID_KYRGYZ_KYRGYZSTAN -#define TT_MS_LANGID_SWAHILI_KENYA \ - TT_MS_LANGID_KISWAHILI_KENYA -#define TT_MS_LANGID_TATAR_TATARSTAN \ - TT_MS_LANGID_TATAR_RUSSIA -#define TT_MS_LANGID_PUNJABI_ARABIC_PAKISTAN 0x0846 -#define TT_MS_LANGID_ORIYA_INDIA \ - TT_MS_LANGID_ODIA_INDIA -#define TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIAN \ - TT_MS_LANGID_MONGOLIAN_PRC -#define TT_MS_LANGID_TIBETAN_CHINA \ - TT_MS_LANGID_TIBETAN_PRC -#define TT_MS_LANGID_DZONGHKA_BHUTAN 0x0851 -#define TT_MS_LANGID_TIBETAN_BHUTAN \ - TT_MS_LANGID_DZONGHKA_BHUTAN -#define TT_MS_LANGID_WELSH_WALES \ - TT_MS_LANGID_WELSH_UNITED_KINGDOM -#define TT_MS_LANGID_BURMESE_MYANMAR 0x0455 -#define TT_MS_LANGID_GALICIAN_SPAIN \ - TT_MS_LANGID_GALICIAN_GALICIAN -#define TT_MS_LANGID_MANIPURI_INDIA /* Bengali */ 0x0458 -#define TT_MS_LANGID_SINDHI_INDIA /* Arabic */ 0x0459 -#define TT_MS_LANGID_SINDHI_PAKISTAN 0x0859 -#define TT_MS_LANGID_SINHALESE_SRI_LANKA \ - TT_MS_LANGID_SINHALA_SRI_LANKA -#define TT_MS_LANGID_CHEROKEE_UNITED_STATES 0x045C -#define TT_MS_LANGID_TAMAZIGHT_MOROCCO /* Arabic */ 0x045F -#define TT_MS_LANGID_TAMAZIGHT_MOROCCO_LATIN \ - TT_MS_LANGID_TAMAZIGHT_ALGERIA -#define TT_MS_LANGID_KASHMIRI_PAKISTAN /* Arabic */ 0x0460 -#define TT_MS_LANGID_KASHMIRI_SASIA 0x0860 -#define TT_MS_LANGID_KASHMIRI_INDIA \ - TT_MS_LANGID_KASHMIRI_SASIA -#define TT_MS_LANGID_NEPALI_INDIA 0x0861 -#define TT_MS_LANGID_DIVEHI_MALDIVES \ - TT_MS_LANGID_DHIVEHI_MALDIVES -#define TT_MS_LANGID_EDO_NIGERIA 0x0466 -#define TT_MS_LANGID_FULFULDE_NIGERIA 0x0467 -#define TT_MS_LANGID_IBIBIO_NIGERIA 0x0469 -#define TT_MS_LANGID_SEPEDI_SOUTH_AFRICA \ - TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA +#define TT_MS_LANGID_SEPEDI_SOUTH_AFRICA 0x046C + /* Also spelled by XPsp2 Platform SDK (2004-07-26) */ #define TT_MS_LANGID_SOTHO_SOUTHERN_SOUTH_AFRICA \ - TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA + TT_MS_LANGID_SEPEDI_SOUTH_AFRICA + /* language codes 0x046D, 0x046E and 0x046F are (still) unknown. */ +#define TT_MS_LANGID_IGBO_NIGERIA 0x0470 #define TT_MS_LANGID_KANURI_NIGERIA 0x0471 #define TT_MS_LANGID_OROMO_ETHIOPIA 0x0472 #define TT_MS_LANGID_TIGRIGNA_ETHIOPIA 0x0473 #define TT_MS_LANGID_TIGRIGNA_ERYTHREA 0x0873 -#define TT_MS_LANGID_TIGRIGNA_ERYTREA \ - TT_MS_LANGID_TIGRIGNA_ERYTHREA + /* also spelled in the `Passport SDK' list as: */ +#define TT_MS_LANGID_TIGRIGNA_ERYTREA TT_MS_LANGID_TIGRIGNA_ERYTHREA #define TT_MS_LANGID_GUARANI_PARAGUAY 0x0474 #define TT_MS_LANGID_HAWAIIAN_UNITED_STATES 0x0475 #define TT_MS_LANGID_LATIN 0x0476 #define TT_MS_LANGID_SOMALI_SOMALIA 0x0477 -#define TT_MS_LANGID_YI_CHINA \ - TT_MS_LANGID_YI_PRC + /* Note: Yi does not have a (proper) ISO 639-2 code, since it is mostly */ + /* not written (but OTOH the peculiar writing system is worth */ + /* studying). */ +#define TT_MS_LANGID_YI_CHINA 0x0478 #define TT_MS_LANGID_PAPIAMENTU_NETHERLANDS_ANTILLES 0x0479 -#define TT_MS_LANGID_UIGHUR_CHINA \ - TT_MS_LANGID_UIGHUR_PRC + /* language codes from 0x047A to 0x047F are (still) unknown. */ +#define TT_MS_LANGID_UIGHUR_CHINA 0x0480 +#define TT_MS_LANGID_MAORI_NEW_ZEALAND 0x0481 + +#if 0 /* not deemed useful for fonts */ +#define TT_MS_LANGID_HUMAN_INTERFACE_DEVICE 0x04FF +#endif - /************************************************************************** - * - * @enum: - * TT_NAME_ID_XXX - * - * @description: - * Possible values of the 'name' identifier field in the name records of - * an SFNT 'name' table. These values are platform independent. - */ - -#define TT_NAME_ID_COPYRIGHT 0 -#define TT_NAME_ID_FONT_FAMILY 1 -#define TT_NAME_ID_FONT_SUBFAMILY 2 -#define TT_NAME_ID_UNIQUE_ID 3 -#define TT_NAME_ID_FULL_NAME 4 -#define TT_NAME_ID_VERSION_STRING 5 -#define TT_NAME_ID_PS_NAME 6 -#define TT_NAME_ID_TRADEMARK 7 + /*************************************************************************/ + /* */ + /* Possible values of the `name' identifier field in the name records of */ + /* the TTF `name' table. These values are platform independent. */ + /* */ +#define TT_NAME_ID_COPYRIGHT 0 +#define TT_NAME_ID_FONT_FAMILY 1 +#define TT_NAME_ID_FONT_SUBFAMILY 2 +#define TT_NAME_ID_UNIQUE_ID 3 +#define TT_NAME_ID_FULL_NAME 4 +#define TT_NAME_ID_VERSION_STRING 5 +#define TT_NAME_ID_PS_NAME 6 +#define TT_NAME_ID_TRADEMARK 7 /* the following values are from the OpenType spec */ -#define TT_NAME_ID_MANUFACTURER 8 -#define TT_NAME_ID_DESIGNER 9 -#define TT_NAME_ID_DESCRIPTION 10 -#define TT_NAME_ID_VENDOR_URL 11 -#define TT_NAME_ID_DESIGNER_URL 12 -#define TT_NAME_ID_LICENSE 13 -#define TT_NAME_ID_LICENSE_URL 14 +#define TT_NAME_ID_MANUFACTURER 8 +#define TT_NAME_ID_DESIGNER 9 +#define TT_NAME_ID_DESCRIPTION 10 +#define TT_NAME_ID_VENDOR_URL 11 +#define TT_NAME_ID_DESIGNER_URL 12 +#define TT_NAME_ID_LICENSE 13 +#define TT_NAME_ID_LICENSE_URL 14 /* number 15 is reserved */ -#define TT_NAME_ID_TYPOGRAPHIC_FAMILY 16 -#define TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY 17 -#define TT_NAME_ID_MAC_FULL_NAME 18 +#define TT_NAME_ID_PREFERRED_FAMILY 16 +#define TT_NAME_ID_PREFERRED_SUBFAMILY 17 +#define TT_NAME_ID_MAC_FULL_NAME 18 /* The following code is new as of 2000-01-21 */ -#define TT_NAME_ID_SAMPLE_TEXT 19 +#define TT_NAME_ID_SAMPLE_TEXT 19 /* This is new in OpenType 1.3 */ -#define TT_NAME_ID_CID_FINDFONT_NAME 20 +#define TT_NAME_ID_CID_FINDFONT_NAME 20 /* This is new in OpenType 1.5 */ -#define TT_NAME_ID_WWS_FAMILY 21 -#define TT_NAME_ID_WWS_SUBFAMILY 22 - - /* This is new in OpenType 1.7 */ -#define TT_NAME_ID_LIGHT_BACKGROUND 23 -#define TT_NAME_ID_DARK_BACKGROUND 24 - - /* This is new in OpenType 1.8 */ -#define TT_NAME_ID_VARIATIONS_PREFIX 25 - - /* these two values are deprecated */ -#define TT_NAME_ID_PREFERRED_FAMILY TT_NAME_ID_TYPOGRAPHIC_FAMILY -#define TT_NAME_ID_PREFERRED_SUBFAMILY TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY +#define TT_NAME_ID_WWS_FAMILY 21 +#define TT_NAME_ID_WWS_SUBFAMILY 22 - /************************************************************************** - * - * @enum: - * TT_UCR_XXX - * - * @description: - * Possible bit mask values for the `ulUnicodeRangeX` fields in an SFNT - * 'OS/2' table. - */ - - /* ulUnicodeRange1 */ - /* --------------- */ + /*************************************************************************/ + /* */ + /* Bit mask values for the Unicode Ranges from the TTF `OS2 ' table. */ + /* */ + /* Updated 08-Nov-2008. */ + /* */ /* Bit 0 Basic Latin */ #define TT_UCR_BASIC_LATIN (1L << 0) /* U+0020-U+007E */ @@ -866,7 +857,7 @@ FT_BEGIN_HEADER /* U+A700-U+A71F */ /* Bit 6 Combining Diacritical Marks */ /* Combining Diacritical Marks Supplement */ -#define TT_UCR_COMBINING_DIACRITICAL_MARKS (1L << 6) /* U+0300-U+036F */ +#define TT_UCR_COMBINING_DIACRITICS (1L << 6) /* U+0300-U+036F */ /* U+1DC0-U+1DFF */ /* Bit 7 Greek and Coptic */ #define TT_UCR_GREEK (1L << 7) /* U+0370-U+03FF */ @@ -934,17 +925,12 @@ FT_BEGIN_HEADER /* Supplemental Punctuation */ #define TT_UCR_GENERAL_PUNCTUATION (1L << 31) /* U+2000-U+206F */ /* U+2E00-U+2E7F */ - - /* ulUnicodeRange2 */ - /* --------------- */ - /* Bit 32 Superscripts And Subscripts */ #define TT_UCR_SUPERSCRIPTS_SUBSCRIPTS (1L << 0) /* U+2070-U+209F */ /* Bit 33 Currency Symbols */ #define TT_UCR_CURRENCY_SYMBOLS (1L << 1) /* U+20A0-U+20CF */ /* Bit 34 Combining Diacritical Marks For Symbols */ -#define TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB \ - (1L << 2) /* U+20D0-U+20FF */ +#define TT_UCR_COMBINING_DIACRITICS_SYMB (1L << 2) /* U+20D0-U+20FF */ /* Bit 35 Letterlike Symbols */ #define TT_UCR_LETTERLIKE_SYMBOLS (1L << 3) /* U+2100-U+214F */ /* Bit 36 Number Forms */ @@ -1010,13 +996,13 @@ FT_BEGIN_HEADER /* Bit 57 High Surrogates */ /* High Private Use Surrogates */ /* Low Surrogates */ - + /* */ /* According to OpenType specs v.1.3+, */ /* setting bit 57 implies that there is */ /* at least one codepoint beyond the */ /* Basic Multilingual Plane that is */ /* supported by this font. So it really */ - /* means >= U+10000. */ + /* means >= U+10000 */ #define TT_UCR_SURROGATES (1L << 25) /* U+D800-U+DB7F */ /* U+DB80-U+DBFF */ /* U+DC00-U+DFFF */ @@ -1048,11 +1034,7 @@ FT_BEGIN_HEADER /* Bit 62 Alphabetic Presentation Forms */ #define TT_UCR_ALPHABETIC_PRESENTATION_FORMS (1L << 30) /* U+FB00-U+FB4F */ /* Bit 63 Arabic Presentation Forms-A */ -#define TT_UCR_ARABIC_PRESENTATION_FORMS_A (1L << 31) /* U+FB50-U+FDFF */ - - /* ulUnicodeRange3 */ - /* --------------- */ - +#define TT_UCR_ARABIC_PRESENTATIONS_A (1L << 31) /* U+FB50-U+FDFF */ /* Bit 64 Combining Half Marks */ #define TT_UCR_COMBINING_HALF_MARKS (1L << 0) /* U+FE20-U+FE2F */ /* Bit 65 Vertical forms */ @@ -1062,7 +1044,7 @@ FT_BEGIN_HEADER /* Bit 66 Small Form Variants */ #define TT_UCR_SMALL_FORM_VARIANTS (1L << 2) /* U+FE50-U+FE6F */ /* Bit 67 Arabic Presentation Forms-B */ -#define TT_UCR_ARABIC_PRESENTATION_FORMS_B (1L << 3) /* U+FE70-U+FEFE */ +#define TT_UCR_ARABIC_PRESENTATIONS_B (1L << 3) /* U+FE70-U+FEFE */ /* Bit 68 Halfwidth and Fullwidth Forms */ #define TT_UCR_HALFWIDTH_FULLWIDTH_FORMS (1L << 4) /* U+FF00-U+FFEF */ /* Bit 69 Specials */ @@ -1141,10 +1123,6 @@ FT_BEGIN_HEADER #define TT_UCR_TAI_LE (1L << 30) /* U+1950-U+197F */ /* Bit 95 New Tai Lue */ #define TT_UCR_NEW_TAI_LUE (1L << 31) /* U+1980-U+19DF */ - - /* ulUnicodeRange4 */ - /* --------------- */ - /* Bit 96 Buginese */ #define TT_UCR_BUGINESE (1L << 0) /* U+1A00-U+1A1F */ /* Bit 97 Glagolitic */ @@ -1213,23 +1191,47 @@ FT_BEGIN_HEADER /*U+1F000-U+1F02F*/ /* Bit 123-127 Reserved for process-internal usage */ - /* */ - /* for backward compatibility with older FreeType versions */ -#define TT_UCR_ARABIC_PRESENTATION_A \ - TT_UCR_ARABIC_PRESENTATION_FORMS_A -#define TT_UCR_ARABIC_PRESENTATION_B \ - TT_UCR_ARABIC_PRESENTATION_FORMS_B + /*************************************************************************/ + /* */ + /* Some compilers have a very limited length of identifiers. */ + /* */ +#if defined( __TURBOC__ ) && __TURBOC__ < 0x0410 || defined( __PACIFIC__ ) +#define HAVE_LIMIT_ON_IDENTS +#endif -#define TT_UCR_COMBINING_DIACRITICS \ - TT_UCR_COMBINING_DIACRITICAL_MARKS -#define TT_UCR_COMBINING_DIACRITICS_SYMB \ - TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB + +#ifndef HAVE_LIMIT_ON_IDENTS + + + /*************************************************************************/ + /* */ + /* Here some alias #defines in order to be clearer. */ + /* */ + /* These are not always #defined to stay within the 31~character limit, */ + /* which some compilers have. */ + /* */ + /* Credits go to Dave Hoo <dhoo@flash.net> for pointing out that modern */ + /* Borland compilers (read: from BC++ 3.1 on) can increase this limit. */ + /* If you get a warning with such a compiler, use the -i40 switch. */ + /* */ +#define TT_UCR_ARABIC_PRESENTATION_FORMS_A \ + TT_UCR_ARABIC_PRESENTATIONS_A +#define TT_UCR_ARABIC_PRESENTATION_FORMS_B \ + TT_UCR_ARABIC_PRESENTATIONS_B + +#define TT_UCR_COMBINING_DIACRITICAL_MARKS \ + TT_UCR_COMBINING_DIACRITICS +#define TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB \ + TT_UCR_COMBINING_DIACRITICS_SYMB + + +#endif /* !HAVE_LIMIT_ON_IDENTS */ FT_END_HEADER -#endif /* TTNAMEID_H_ */ +#endif /* __TTNAMEID_H__ */ /* END */ diff --git a/win64/include/freetype/tttables.h b/win64/include/freetype/tttables.h index c8fa35ef..e1d8b05e 100644 --- a/win64/include/freetype/tttables.h +++ b/win64/include/freetype/tttables.h @@ -1,27 +1,28 @@ -/**************************************************************************** - * - * tttables.h - * - * Basic SFNT/TrueType tables definitions and interface - * (specification only). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* tttables.h */ +/* */ +/* Basic SFNT/TrueType tables definitions and interface */ +/* (specification only). */ +/* */ +/* Copyright 1996-2005, 2008-2014 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 TTTABLES_H_ -#define TTTABLES_H_ +#ifndef __TTTABLES_H__ +#define __TTTABLES_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -32,55 +33,52 @@ FT_BEGIN_HEADER - /************************************************************************** - * - * @section: - * truetype_tables - * - * @title: - * TrueType Tables - * - * @abstract: - * TrueType-specific table types and functions. - * - * @description: - * This section contains definitions of some basic tables specific to - * TrueType and OpenType as well as some routines used to access and - * process them. - * - * @order: - * TT_Header - * TT_HoriHeader - * TT_VertHeader - * TT_OS2 - * TT_Postscript - * TT_PCLT - * TT_MaxProfile - * - * FT_Sfnt_Tag - * FT_Get_Sfnt_Table - * FT_Load_Sfnt_Table - * FT_Sfnt_Table_Info - * - * FT_Get_CMap_Language_ID - * FT_Get_CMap_Format - * - * FT_PARAM_TAG_UNPATENTED_HINTING - * - */ + /*************************************************************************/ + /* */ + /* <Section> */ + /* truetype_tables */ + /* */ + /* <Title> */ + /* TrueType Tables */ + /* */ + /* <Abstract> */ + /* TrueType specific table types and functions. */ + /* */ + /* <Description> */ + /* This section contains the definition of TrueType-specific tables */ + /* as well as some routines used to access and process them. */ + /* */ + /* <Order> */ + /* TT_Header */ + /* TT_HoriHeader */ + /* TT_VertHeader */ + /* TT_OS2 */ + /* TT_Postscript */ + /* TT_PCLT */ + /* TT_MaxProfile */ + /* */ + /* FT_Sfnt_Tag */ + /* FT_Get_Sfnt_Table */ + /* FT_Load_Sfnt_Table */ + /* FT_Sfnt_Table_Info */ + /* */ + /* FT_Get_CMap_Language_ID */ + /* FT_Get_CMap_Format */ + /* */ + /* FT_PARAM_TAG_UNPATENTED_HINTING */ + /* */ + /*************************************************************************/ - /************************************************************************** - * - * @struct: - * TT_Header - * - * @description: - * A structure to model a TrueType font header table. All fields follow - * the OpenType specification. The 64-bit timestamps are stored in - * two-element arrays `Created` and `Modified`, first the upper then - * the lower 32~bits. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_Header */ + /* */ + /* <Description> */ + /* A structure used to model a TrueType font header table. All */ + /* fields follow the TrueType specification. */ + /* */ typedef struct TT_Header_ { FT_Fixed Table_Version; @@ -92,8 +90,8 @@ FT_BEGIN_HEADER FT_UShort Flags; FT_UShort Units_Per_EM; - FT_ULong Created [2]; - FT_ULong Modified[2]; + FT_Long Created [2]; + FT_Long Modified[2]; FT_Short xMin; FT_Short yMin; @@ -110,93 +108,94 @@ FT_BEGIN_HEADER } TT_Header; - /************************************************************************** - * - * @struct: - * TT_HoriHeader - * - * @description: - * A structure to model a TrueType horizontal header, the 'hhea' table, - * as well as the corresponding horizontal metrics table, 'hmtx'. - * - * @fields: - * Version :: - * The table version. - * - * Ascender :: - * The font's ascender, i.e., the distance from the baseline to the - * top-most of all glyph points found in the font. - * - * This value is invalid in many fonts, as it is usually set by the - * font designer, and often reflects only a portion of the glyphs found - * in the font (maybe ASCII). - * - * You should use the `sTypoAscender` field of the 'OS/2' table instead - * if you want the correct one. - * - * Descender :: - * The font's descender, i.e., the distance from the baseline to the - * bottom-most of all glyph points found in the font. It is negative. - * - * This value is invalid in many fonts, as it is usually set by the - * font designer, and often reflects only a portion of the glyphs found - * in the font (maybe ASCII). - * - * You should use the `sTypoDescender` field of the 'OS/2' table - * instead if you want the correct one. - * - * Line_Gap :: - * The font's line gap, i.e., the distance to add to the ascender and - * descender to get the BTB, i.e., the baseline-to-baseline distance - * for the font. - * - * advance_Width_Max :: - * This field is the maximum of all advance widths found in the font. - * It can be used to compute the maximum width of an arbitrary string - * of text. - * - * min_Left_Side_Bearing :: - * The minimum left side bearing of all glyphs within the font. - * - * min_Right_Side_Bearing :: - * The minimum right side bearing of all glyphs within the font. - * - * xMax_Extent :: - * The maximum horizontal extent (i.e., the 'width' of a glyph's - * bounding box) for all glyphs in the font. - * - * caret_Slope_Rise :: - * The rise coefficient of the cursor's slope of the cursor - * (slope=rise/run). - * - * caret_Slope_Run :: - * The run coefficient of the cursor's slope. - * - * caret_Offset :: - * The cursor's offset for slanted fonts. - * - * Reserved :: - * 8~reserved bytes. - * - * metric_Data_Format :: - * Always~0. - * - * number_Of_HMetrics :: - * Number of HMetrics entries in the 'hmtx' table -- this value can be - * smaller than the total number of glyphs in the font. - * - * long_metrics :: - * A pointer into the 'hmtx' table. - * - * short_metrics :: - * A pointer into the 'hmtx' table. - * - * @note: - * For an OpenType variation font, the values of the following fields can - * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if - * the font contains an 'MVAR' table: `caret_Slope_Rise`, - * `caret_Slope_Run`, and `caret_Offset`. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_HoriHeader */ + /* */ + /* <Description> */ + /* A structure used to model a TrueType horizontal header, the `hhea' */ + /* table, as well as the corresponding horizontal metrics table, */ + /* i.e., the `hmtx' table. */ + /* */ + /* <Fields> */ + /* Version :: The table version. */ + /* */ + /* Ascender :: The font's ascender, i.e., the distance */ + /* from the baseline to the top-most of all */ + /* glyph points found in the font. */ + /* */ + /* This value is invalid in many fonts, as */ + /* it is usually set by the font designer, */ + /* and often reflects only a portion of the */ + /* glyphs found in the font (maybe ASCII). */ + /* */ + /* You should use the `sTypoAscender' field */ + /* of the OS/2 table instead if you want */ + /* the correct one. */ + /* */ + /* Descender :: The font's descender, i.e., the distance */ + /* from the baseline to the bottom-most of */ + /* all glyph points found in the font. It */ + /* is negative. */ + /* */ + /* This value is invalid in many fonts, as */ + /* it is usually set by the font designer, */ + /* and often reflects only a portion of the */ + /* glyphs found in the font (maybe ASCII). */ + /* */ + /* You should use the `sTypoDescender' */ + /* field of the OS/2 table instead if you */ + /* want the correct one. */ + /* */ + /* Line_Gap :: The font's line gap, i.e., the distance */ + /* to add to the ascender and descender to */ + /* get the BTB, i.e., the */ + /* baseline-to-baseline distance for the */ + /* font. */ + /* */ + /* advance_Width_Max :: This field is the maximum of all advance */ + /* widths found in the font. It can be */ + /* used to compute the maximum width of an */ + /* arbitrary string of text. */ + /* */ + /* min_Left_Side_Bearing :: The minimum left side bearing of all */ + /* glyphs within the font. */ + /* */ + /* min_Right_Side_Bearing :: The minimum right side bearing of all */ + /* glyphs within the font. */ + /* */ + /* xMax_Extent :: The maximum horizontal extent (i.e., the */ + /* `width' of a glyph's bounding box) for */ + /* all glyphs in the font. */ + /* */ + /* caret_Slope_Rise :: The rise coefficient of the cursor's */ + /* slope of the cursor (slope=rise/run). */ + /* */ + /* caret_Slope_Run :: The run coefficient of the cursor's */ + /* slope. */ + /* */ + /* Reserved :: 8~reserved bytes. */ + /* */ + /* metric_Data_Format :: Always~0. */ + /* */ + /* number_Of_HMetrics :: Number of HMetrics entries in the `hmtx' */ + /* table -- this value can be smaller than */ + /* the total number of glyphs in the font. */ + /* */ + /* long_metrics :: A pointer into the `hmtx' table. */ + /* */ + /* short_metrics :: A pointer into the `hmtx' table. */ + /* */ + /* <Note> */ + /* IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should */ + /* be identical except for the names of their fields, */ + /* which are different. */ + /* */ + /* This ensures that a single function in the `ttload' */ + /* module is able to read both the horizontal and vertical */ + /* headers. */ + /* */ typedef struct TT_HoriHeader_ { FT_Fixed Version; @@ -218,9 +217,9 @@ FT_BEGIN_HEADER FT_Short metric_Data_Format; FT_UShort number_Of_HMetrics; - /* The following fields are not defined by the OpenType specification */ + /* The following fields are not defined by the TrueType specification */ /* but they are used to connect the metrics header to the relevant */ - /* 'hmtx' table. */ + /* `HMTX' table. */ void* long_metrics; void* short_metrics; @@ -228,93 +227,101 @@ FT_BEGIN_HEADER } TT_HoriHeader; - /************************************************************************** - * - * @struct: - * TT_VertHeader - * - * @description: - * A structure used to model a TrueType vertical header, the 'vhea' - * table, as well as the corresponding vertical metrics table, 'vmtx'. - * - * @fields: - * Version :: - * The table version. - * - * Ascender :: - * The font's ascender, i.e., the distance from the baseline to the - * top-most of all glyph points found in the font. - * - * This value is invalid in many fonts, as it is usually set by the - * font designer, and often reflects only a portion of the glyphs found - * in the font (maybe ASCII). - * - * You should use the `sTypoAscender` field of the 'OS/2' table instead - * if you want the correct one. - * - * Descender :: - * The font's descender, i.e., the distance from the baseline to the - * bottom-most of all glyph points found in the font. It is negative. - * - * This value is invalid in many fonts, as it is usually set by the - * font designer, and often reflects only a portion of the glyphs found - * in the font (maybe ASCII). - * - * You should use the `sTypoDescender` field of the 'OS/2' table - * instead if you want the correct one. - * - * Line_Gap :: - * The font's line gap, i.e., the distance to add to the ascender and - * descender to get the BTB, i.e., the baseline-to-baseline distance - * for the font. - * - * advance_Height_Max :: - * This field is the maximum of all advance heights found in the font. - * It can be used to compute the maximum height of an arbitrary string - * of text. - * - * min_Top_Side_Bearing :: - * The minimum top side bearing of all glyphs within the font. - * - * min_Bottom_Side_Bearing :: - * The minimum bottom side bearing of all glyphs within the font. - * - * yMax_Extent :: - * The maximum vertical extent (i.e., the 'height' of a glyph's - * bounding box) for all glyphs in the font. - * - * caret_Slope_Rise :: - * The rise coefficient of the cursor's slope of the cursor - * (slope=rise/run). - * - * caret_Slope_Run :: - * The run coefficient of the cursor's slope. - * - * caret_Offset :: - * The cursor's offset for slanted fonts. - * - * Reserved :: - * 8~reserved bytes. - * - * metric_Data_Format :: - * Always~0. - * - * number_Of_VMetrics :: - * Number of VMetrics entries in the 'vmtx' table -- this value can be - * smaller than the total number of glyphs in the font. - * - * long_metrics :: - * A pointer into the 'vmtx' table. - * - * short_metrics :: - * A pointer into the 'vmtx' table. - * - * @note: - * For an OpenType variation font, the values of the following fields can - * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if - * the font contains an 'MVAR' table: `Ascender`, `Descender`, - * `Line_Gap`, `caret_Slope_Rise`, `caret_Slope_Run`, and `caret_Offset`. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_VertHeader */ + /* */ + /* <Description> */ + /* A structure used to model a TrueType vertical header, the `vhea' */ + /* table, as well as the corresponding vertical metrics table, i.e., */ + /* the `vmtx' table. */ + /* */ + /* <Fields> */ + /* Version :: The table version. */ + /* */ + /* Ascender :: The font's ascender, i.e., the distance */ + /* from the baseline to the top-most of */ + /* all glyph points found in the font. */ + /* */ + /* This value is invalid in many fonts, as */ + /* it is usually set by the font designer, */ + /* and often reflects only a portion of */ + /* the glyphs found in the font (maybe */ + /* ASCII). */ + /* */ + /* You should use the `sTypoAscender' */ + /* field of the OS/2 table instead if you */ + /* want the correct one. */ + /* */ + /* Descender :: The font's descender, i.e., the */ + /* distance from the baseline to the */ + /* bottom-most of all glyph points found */ + /* in the font. It is negative. */ + /* */ + /* This value is invalid in many fonts, as */ + /* it is usually set by the font designer, */ + /* and often reflects only a portion of */ + /* the glyphs found in the font (maybe */ + /* ASCII). */ + /* */ + /* You should use the `sTypoDescender' */ + /* field of the OS/2 table instead if you */ + /* want the correct one. */ + /* */ + /* Line_Gap :: The font's line gap, i.e., the distance */ + /* to add to the ascender and descender to */ + /* get the BTB, i.e., the */ + /* baseline-to-baseline distance for the */ + /* font. */ + /* */ + /* advance_Height_Max :: This field is the maximum of all */ + /* advance heights found in the font. It */ + /* can be used to compute the maximum */ + /* height of an arbitrary string of text. */ + /* */ + /* min_Top_Side_Bearing :: The minimum top side bearing of all */ + /* glyphs within the font. */ + /* */ + /* min_Bottom_Side_Bearing :: The minimum bottom side bearing of all */ + /* glyphs within the font. */ + /* */ + /* yMax_Extent :: The maximum vertical extent (i.e., the */ + /* `height' of a glyph's bounding box) for */ + /* all glyphs in the font. */ + /* */ + /* caret_Slope_Rise :: The rise coefficient of the cursor's */ + /* slope of the cursor (slope=rise/run). */ + /* */ + /* caret_Slope_Run :: The run coefficient of the cursor's */ + /* slope. */ + /* */ + /* caret_Offset :: The cursor's offset for slanted fonts. */ + /* This value is `reserved' in vmtx */ + /* version 1.0. */ + /* */ + /* Reserved :: 8~reserved bytes. */ + /* */ + /* metric_Data_Format :: Always~0. */ + /* */ + /* number_Of_HMetrics :: Number of VMetrics entries in the */ + /* `vmtx' table -- this value can be */ + /* smaller than the total number of glyphs */ + /* in the font. */ + /* */ + /* long_metrics :: A pointer into the `vmtx' table. */ + /* */ + /* short_metrics :: A pointer into the `vmtx' table. */ + /* */ + /* <Note> */ + /* IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should */ + /* be identical except for the names of their fields, */ + /* which are different. */ + /* */ + /* This ensures that a single function in the `ttload' */ + /* module is able to read both the horizontal and vertical */ + /* headers. */ + /* */ typedef struct TT_VertHeader_ { FT_Fixed Version; @@ -324,9 +331,9 @@ FT_BEGIN_HEADER FT_UShort advance_Height_Max; /* advance height maximum */ - FT_Short min_Top_Side_Bearing; /* minimum top-sb */ - FT_Short min_Bottom_Side_Bearing; /* minimum bottom-sb */ - FT_Short yMax_Extent; /* ymax extents */ + FT_Short min_Top_Side_Bearing; /* minimum left-sb or top-sb */ + FT_Short min_Bottom_Side_Bearing; /* minimum right-sb or bottom-sb */ + FT_Short yMax_Extent; /* xmax or ymax extents */ FT_Short caret_Slope_Rise; FT_Short caret_Slope_Run; FT_Short caret_Offset; @@ -336,9 +343,9 @@ FT_BEGIN_HEADER FT_Short metric_Data_Format; FT_UShort number_Of_VMetrics; - /* The following fields are not defined by the OpenType specification */ - /* but they are used to connect the metrics header to the relevant */ - /* 'vmtx' table. */ + /* The following fields are not defined by the TrueType specification */ + /* but they're used to connect the metrics header to the relevant */ + /* `HMTX' or `VMTX' table. */ void* long_metrics; void* short_metrics; @@ -346,39 +353,25 @@ FT_BEGIN_HEADER } TT_VertHeader; - /************************************************************************** - * - * @struct: - * TT_OS2 - * - * @description: - * A structure to model a TrueType 'OS/2' table. All fields comply to - * the OpenType specification. - * - * Note that we now support old Mac fonts that do not include an 'OS/2' - * table. In this case, the `version` field is always set to 0xFFFF. - * - * @note: - * For an OpenType variation font, the values of the following fields can - * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if - * the font contains an 'MVAR' table: `sCapHeight`, `sTypoAscender`, - * `sTypoDescender`, `sTypoLineGap`, `sxHeight`, `usWinAscent`, - * `usWinDescent`, `yStrikeoutPosition`, `yStrikeoutSize`, - * `ySubscriptXOffset`, `ySubScriptXSize`, `ySubscriptYOffset`, - * `ySubscriptYSize`, `ySuperscriptXOffset`, `ySuperscriptXSize`, - * `ySuperscriptYOffset`, and `ySuperscriptYSize`. - * - * Possible values for bits in the `ulUnicodeRangeX` fields are given by - * the @TT_UCR_XXX macros. - */ - + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_OS2 */ + /* */ + /* <Description> */ + /* A structure used to model a TrueType OS/2 table. All fields */ + /* comply to the OpenType specification. */ + /* */ + /* Note that we now support old Mac fonts that do not include an OS/2 */ + /* table. In this case, the `version' field is always set to 0xFFFF. */ + /* */ typedef struct TT_OS2_ { FT_UShort version; /* 0x0001 - more or 0xFFFF */ FT_Short xAvgCharWidth; FT_UShort usWeightClass; FT_UShort usWidthClass; - FT_UShort fsType; + FT_Short fsType; FT_Short ySubscriptXSize; FT_Short ySubscriptYSize; FT_Short ySubscriptXOffset; @@ -430,23 +423,17 @@ FT_BEGIN_HEADER } TT_OS2; - /************************************************************************** - * - * @struct: - * TT_Postscript - * - * @description: - * A structure to model a TrueType 'post' table. All fields comply to - * the OpenType specification. This structure does not reference a - * font's PostScript glyph names; use @FT_Get_Glyph_Name to retrieve - * them. - * - * @note: - * For an OpenType variation font, the values of the following fields can - * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if - * the font contains an 'MVAR' table: `underlinePosition` and - * `underlineThickness`. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_Postscript */ + /* */ + /* <Description> */ + /* A structure used to model a TrueType PostScript table. All fields */ + /* comply to the TrueType specification. This structure does not */ + /* reference the PostScript glyph names, which can be nevertheless */ + /* accessed with the `ttpost' module. */ + /* */ typedef struct TT_Postscript_ { FT_Fixed FormatType; @@ -459,21 +446,21 @@ FT_BEGIN_HEADER FT_ULong minMemType1; FT_ULong maxMemType1; - /* Glyph names follow in the 'post' table, but we don't */ - /* load them by default. */ + /* Glyph names follow in the file, but we don't */ + /* load them by default. See the ttpost.c file. */ } TT_Postscript; - /************************************************************************** - * - * @struct: - * TT_PCLT - * - * @description: - * A structure to model a TrueType 'PCLT' table. All fields comply to - * the OpenType specification. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_PCLT */ + /* */ + /* <Description> */ + /* A structure used to model a TrueType PCLT table. All fields */ + /* comply to the TrueType specification. */ + /* */ typedef struct TT_PCLT_ { FT_Fixed Version; @@ -495,75 +482,72 @@ FT_BEGIN_HEADER } TT_PCLT; - /************************************************************************** - * - * @struct: - * TT_MaxProfile - * - * @description: - * The maximum profile ('maxp') table contains many max values, which can - * be used to pre-allocate arrays for speeding up glyph loading and - * hinting. - * - * @fields: - * version :: - * The version number. - * - * numGlyphs :: - * The number of glyphs in this TrueType font. - * - * maxPoints :: - * The maximum number of points in a non-composite TrueType glyph. See - * also `maxCompositePoints`. - * - * maxContours :: - * The maximum number of contours in a non-composite TrueType glyph. - * See also `maxCompositeContours`. - * - * maxCompositePoints :: - * The maximum number of points in a composite TrueType glyph. See - * also `maxPoints`. - * - * maxCompositeContours :: - * The maximum number of contours in a composite TrueType glyph. See - * also `maxContours`. - * - * maxZones :: - * The maximum number of zones used for glyph hinting. - * - * maxTwilightPoints :: - * The maximum number of points in the twilight zone used for glyph - * hinting. - * - * maxStorage :: - * The maximum number of elements in the storage area used for glyph - * hinting. - * - * maxFunctionDefs :: - * The maximum number of function definitions in the TrueType bytecode - * for this font. - * - * maxInstructionDefs :: - * The maximum number of instruction definitions in the TrueType - * bytecode for this font. - * - * maxStackElements :: - * The maximum number of stack elements used during bytecode - * interpretation. - * - * maxSizeOfInstructions :: - * The maximum number of TrueType opcodes used for glyph hinting. - * - * maxComponentElements :: - * The maximum number of simple (i.e., non-composite) glyphs in a - * composite glyph. - * - * maxComponentDepth :: - * The maximum nesting depth of composite glyphs. - * - * @note: - * This structure is only used during font loading. - */ + /*************************************************************************/ + /* */ + /* <Struct> */ + /* TT_MaxProfile */ + /* */ + /* <Description> */ + /* The maximum profile is a table containing many max values, which */ + /* can be used to pre-allocate arrays. This ensures that no memory */ + /* allocation occurs during a glyph load. */ + /* */ + /* <Fields> */ + /* version :: The version number. */ + /* */ + /* numGlyphs :: The number of glyphs in this TrueType */ + /* font. */ + /* */ + /* maxPoints :: The maximum number of points in a */ + /* non-composite TrueType glyph. See also */ + /* the structure element */ + /* `maxCompositePoints'. */ + /* */ + /* maxContours :: The maximum number of contours in a */ + /* non-composite TrueType glyph. See also */ + /* the structure element */ + /* `maxCompositeContours'. */ + /* */ + /* maxCompositePoints :: The maximum number of points in a */ + /* composite TrueType glyph. See also the */ + /* structure element `maxPoints'. */ + /* */ + /* maxCompositeContours :: The maximum number of contours in a */ + /* composite TrueType glyph. See also the */ + /* structure element `maxContours'. */ + /* */ + /* maxZones :: The maximum number of zones used for */ + /* glyph hinting. */ + /* */ + /* maxTwilightPoints :: The maximum number of points in the */ + /* twilight zone used for glyph hinting. */ + /* */ + /* maxStorage :: The maximum number of elements in the */ + /* storage area used for glyph hinting. */ + /* */ + /* maxFunctionDefs :: The maximum number of function */ + /* definitions in the TrueType bytecode for */ + /* this font. */ + /* */ + /* maxInstructionDefs :: The maximum number of instruction */ + /* definitions in the TrueType bytecode for */ + /* this font. */ + /* */ + /* maxStackElements :: The maximum number of stack elements used */ + /* during bytecode interpretation. */ + /* */ + /* maxSizeOfInstructions :: The maximum number of TrueType opcodes */ + /* used for glyph hinting. */ + /* */ + /* maxComponentElements :: The maximum number of simple (i.e., non- */ + /* composite) glyphs in a composite glyph. */ + /* */ + /* maxComponentDepth :: The maximum nesting depth of composite */ + /* glyphs. */ + /* */ + /* <Note> */ + /* This structure is only used during font loading. */ + /* */ typedef struct TT_MaxProfile_ { FT_Fixed version; @@ -585,38 +569,30 @@ FT_BEGIN_HEADER } TT_MaxProfile; - /************************************************************************** - * - * @enum: - * FT_Sfnt_Tag - * - * @description: - * An enumeration to specify indices of SFNT tables loaded and parsed by - * FreeType during initialization of an SFNT font. Used in the - * @FT_Get_Sfnt_Table API function. - * - * @values: - * FT_SFNT_HEAD :: - * To access the font's @TT_Header structure. - * - * FT_SFNT_MAXP :: - * To access the font's @TT_MaxProfile structure. - * - * FT_SFNT_OS2 :: - * To access the font's @TT_OS2 structure. - * - * FT_SFNT_HHEA :: - * To access the font's @TT_HoriHeader structure. - * - * FT_SFNT_VHEA :: - * To access the font's @TT_VertHeader structure. - * - * FT_SFNT_POST :: - * To access the font's @TT_Postscript structure. - * - * FT_SFNT_PCLT :: - * To access the font's @TT_PCLT structure. - */ + /*************************************************************************/ + /* */ + /* <Enum> */ + /* FT_Sfnt_Tag */ + /* */ + /* <Description> */ + /* An enumeration used to specify the index of an SFNT table. */ + /* Used in the @FT_Get_Sfnt_Table API function. */ + /* */ + /* <Values> */ + /* FT_SFNT_HEAD :: To access the font's @TT_Header structure. */ + /* */ + /* FT_SFNT_MAXP :: To access the font's @TT_MaxProfile structure. */ + /* */ + /* FT_SFNT_OS2 :: To access the font's @TT_OS2 structure. */ + /* */ + /* FT_SFNT_HHEA :: To access the font's @TT_HoriHeader structure. */ + /* */ + /* FT_SFNT_VHEA :: To access the font's @TT_VertHeader struture. */ + /* */ + /* FT_SFNT_POST :: To access the font's @TT_Postscript structure. */ + /* */ + /* FT_SFNT_PCLT :: To access the font's @TT_PCLT structure. */ + /* */ typedef enum FT_Sfnt_Tag_ { FT_SFNT_HEAD, @@ -631,7 +607,7 @@ FT_BEGIN_HEADER } FT_Sfnt_Tag; - /* these constants are deprecated; use the corresponding `FT_Sfnt_Tag` */ + /* these constants are deprecated; use the corresponding `FT_Sfnt_Tag' */ /* values instead */ #define ft_sfnt_head FT_SFNT_HEAD #define ft_sfnt_maxp FT_SFNT_MAXP @@ -642,115 +618,113 @@ FT_BEGIN_HEADER #define ft_sfnt_pclt FT_SFNT_PCLT - /************************************************************************** - * - * @function: - * FT_Get_Sfnt_Table - * - * @description: - * Return a pointer to a given SFNT table stored within a face. - * - * @input: - * face :: - * A handle to the source. - * - * tag :: - * The index of the SFNT table. - * - * @return: - * A type-less pointer to the table. This will be `NULL` in case of - * error, or if the corresponding table was not found **OR** loaded from - * the file. - * - * Use a typecast according to `tag` to access the structure elements. - * - * @note: - * The table is owned by the face object and disappears with it. - * - * This function is only useful to access SFNT tables that are loaded by - * the sfnt, truetype, and opentype drivers. See @FT_Sfnt_Tag for a - * list. - * - * @example: - * Here is an example demonstrating access to the 'vhea' table. - * - * ``` - * TT_VertHeader* vert_header; - * - * - * vert_header = - * (TT_VertHeader*)FT_Get_Sfnt_Table( face, FT_SFNT_VHEA ); - * ``` - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_Sfnt_Table */ + /* */ + /* <Description> */ + /* Return a pointer to a given SFNT table within a face. */ + /* */ + /* <Input> */ + /* face :: A handle to the source. */ + /* */ + /* tag :: The index of the SFNT table. */ + /* */ + /* <Return> */ + /* A type-less pointer to the table. This will be~0 in case of */ + /* error, or if the corresponding table was not found *OR* loaded */ + /* from the file. */ + /* */ + /* Use a typecast according to `tag' to access the structure */ + /* elements. */ + /* */ + /* <Note> */ + /* The table is owned by the face object and disappears with it. */ + /* */ + /* This function is only useful to access SFNT tables that are loaded */ + /* by the sfnt, truetype, and opentype drivers. See @FT_Sfnt_Tag for */ + /* a list. */ + /* */ + /* Here an example how to access the `vhea' table: */ + /* */ + /* { */ + /* TT_VertHeader* vert_header; */ + /* */ + /* */ + /* vert_header = */ + /* (TT_VertHeader*)FT_Get_Sfnt_Table( face, FT_SFNT_VHEA ); */ + /* } */ + /* */ FT_EXPORT( void* ) FT_Get_Sfnt_Table( FT_Face face, FT_Sfnt_Tag tag ); - /************************************************************************** - * - * @function: - * FT_Load_Sfnt_Table - * - * @description: - * Load any SFNT font table into client memory. - * - * @input: - * face :: - * A handle to the source face. - * - * tag :: - * The four-byte tag of the table to load. Use value~0 if you want to - * access the whole font file. Otherwise, you can use one of the - * definitions found in the @FT_TRUETYPE_TAGS_H file, or forge a new - * one with @FT_MAKE_TAG. - * - * offset :: - * The starting offset in the table (or file if tag~==~0). - * - * @output: - * buffer :: - * The target buffer address. The client must ensure that the memory - * array is big enough to hold the data. - * - * @inout: - * length :: - * If the `length` parameter is `NULL`, try to load the whole table. - * Return an error code if it fails. - * - * Else, if `*length` is~0, exit immediately while returning the - * table's (or file) full size in it. - * - * Else the number of bytes to read from the table or file, from the - * starting offset. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * If you need to determine the table's length you should first call this - * function with `*length` set to~0, as in the following example: - * - * ``` - * FT_ULong length = 0; - * - * - * error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length ); - * if ( error ) { ... table does not exist ... } - * - * buffer = malloc( length ); - * if ( buffer == NULL ) { ... not enough memory ... } - * - * error = FT_Load_Sfnt_Table( face, tag, 0, buffer, &length ); - * if ( error ) { ... could not load table ... } - * ``` - * - * Note that structures like @TT_Header or @TT_OS2 can't be used with - * this function; they are limited to @FT_Get_Sfnt_Table. Reason is that - * those structures depend on the processor architecture, with varying - * size (e.g. 32bit vs. 64bit) or order (big endian vs. little endian). - * - */ + /************************************************************************** + * + * @function: + * FT_Load_Sfnt_Table + * + * @description: + * Load any font table into client memory. + * + * @input: + * face :: + * A handle to the source face. + * + * tag :: + * The four-byte tag of the table to load. Use the value~0 if you want + * to access the whole font file. Otherwise, you can use one of the + * definitions found in the @FT_TRUETYPE_TAGS_H file, or forge a new + * one with @FT_MAKE_TAG. + * + * offset :: + * The starting offset in the table (or file if tag == 0). + * + * @output: + * buffer :: + * The target buffer address. The client must ensure that the memory + * array is big enough to hold the data. + * + * @inout: + * length :: + * If the `length' parameter is NULL, then try to load the whole table. + * Return an error code if it fails. + * + * Else, if `*length' is~0, exit immediately while returning the + * table's (or file) full size in it. + * + * Else the number of bytes to read from the table or file, from the + * starting offset. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * If you need to determine the table's length you should first call this + * function with `*length' set to~0, as in the following example: + * + * { + * FT_ULong length = 0; + * + * + * error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length ); + * if ( error ) { ... table does not exist ... } + * + * buffer = malloc( length ); + * if ( buffer == NULL ) { ... not enough memory ... } + * + * error = FT_Load_Sfnt_Table( face, tag, 0, buffer, &length ); + * if ( error ) { ... could not load table ... } + * } + * + * Note that structures like @TT_Header or @TT_OS2 can't be used with + * this function; they are limited to @FT_Get_Sfnt_Table. Reason is that + * those structures depend on the processor architecture, with varying + * size (e.g. 32bit vs. 64bit) or order (big endian vs. little endian). + * + */ FT_EXPORT( FT_Error ) FT_Load_Sfnt_Table( FT_Face face, FT_ULong tag, @@ -759,41 +733,41 @@ FT_BEGIN_HEADER FT_ULong* length ); - /************************************************************************** - * - * @function: - * FT_Sfnt_Table_Info - * - * @description: - * Return information on an SFNT table. - * - * @input: - * face :: - * A handle to the source face. - * - * table_index :: - * The index of an SFNT table. The function returns - * FT_Err_Table_Missing for an invalid value. - * - * @inout: - * tag :: - * The name tag of the SFNT table. If the value is `NULL`, - * `table_index` is ignored, and `length` returns the number of SFNT - * tables in the font. - * - * @output: - * length :: - * The length of the SFNT table (or the number of SFNT tables, - * depending on `tag`). - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * While parsing fonts, FreeType handles SFNT tables with length zero as - * missing. - * - */ + /************************************************************************** + * + * @function: + * FT_Sfnt_Table_Info + * + * @description: + * Return information on an SFNT table. + * + * @input: + * face :: + * A handle to the source face. + * + * table_index :: + * The index of an SFNT table. The function returns + * FT_Err_Table_Missing for an invalid value. + * + * @inout: + * tag :: + * The name tag of the SFNT table. If the value is NULL, `table_index' + * is ignored, and `length' returns the number of SFNT tables in the + * font. + * + * @output: + * length :: + * The length of the SFNT table (or the number of SFNT tables, depending + * on `tag'). + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * While parsing fonts, FreeType handles SFNT tables with length zero as + * missing. + * + */ FT_EXPORT( FT_Error ) FT_Sfnt_Table_Info( FT_Face face, FT_UInt table_index, @@ -801,46 +775,46 @@ FT_BEGIN_HEADER FT_ULong *length ); - /************************************************************************** - * - * @function: - * FT_Get_CMap_Language_ID - * - * @description: - * Return cmap language ID as specified in the OpenType standard. - * Definitions of language ID values are in file @FT_TRUETYPE_IDS_H. - * - * @input: - * charmap :: - * The target charmap. - * - * @return: - * The language ID of `charmap`. If `charmap` doesn't belong to an SFNT - * face, just return~0 as the default value. - * - * For a format~14 cmap (to access Unicode IVS), the return value is - * 0xFFFFFFFF. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_CMap_Language_ID */ + /* */ + /* <Description> */ + /* Return TrueType/sfnt specific cmap language ID. Definitions of */ + /* language ID values are in `ttnameid.h'. */ + /* */ + /* <Input> */ + /* charmap :: */ + /* The target charmap. */ + /* */ + /* <Return> */ + /* The language ID of `charmap'. If `charmap' doesn't belong to a */ + /* TrueType/sfnt face, just return~0 as the default value. */ + /* */ + /* For a format~14 cmap (to access Unicode IVS), the return value is */ + /* 0xFFFFFFFF. */ + /* */ FT_EXPORT( FT_ULong ) FT_Get_CMap_Language_ID( FT_CharMap charmap ); - /************************************************************************** - * - * @function: - * FT_Get_CMap_Format - * - * @description: - * Return the format of an SFNT 'cmap' table. - * - * @input: - * charmap :: - * The target charmap. - * - * @return: - * The format of `charmap`. If `charmap` doesn't belong to an SFNT face, - * return -1. - */ + /*************************************************************************/ + /* */ + /* <Function> */ + /* FT_Get_CMap_Format */ + /* */ + /* <Description> */ + /* Return TrueType/sfnt specific cmap format. */ + /* */ + /* <Input> */ + /* charmap :: */ + /* The target charmap. */ + /* */ + /* <Return> */ + /* The format of `charmap'. If `charmap' doesn't belong to a */ + /* TrueType/sfnt face, return -1. */ + /* */ FT_EXPORT( FT_Long ) FT_Get_CMap_Format( FT_CharMap charmap ); @@ -849,7 +823,7 @@ FT_BEGIN_HEADER FT_END_HEADER -#endif /* TTTABLES_H_ */ +#endif /* __TTTABLES_H__ */ /* END */ diff --git a/win64/include/freetype/tttags.h b/win64/include/freetype/tttags.h index 3c9fbd59..d59aa19a 100644 --- a/win64/include/freetype/tttags.h +++ b/win64/include/freetype/tttags.h @@ -1,26 +1,27 @@ -/**************************************************************************** - * - * tttags.h - * - * Tags for TrueType and OpenType tables (specification only). - * - * Copyright (C) 1996-2020 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used, - * modified, and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - */ +/***************************************************************************/ +/* */ +/* tttags.h */ +/* */ +/* Tags for TrueType and OpenType tables (specification only). */ +/* */ +/* Copyright 1996-2001, 2004, 2005, 2007, 2008, 2013 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.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 TTAGS_H_ -#define TTAGS_H_ +#ifndef __TTAGS_H__ +#define __TTAGS_H__ -#include <freetype/freetype.h> +#include <ft2build.h> +#include FT_FREETYPE_H #ifdef FREETYPE_H #error "freetype.h of FreeType 1 has been loaded!" @@ -42,11 +43,8 @@ FT_BEGIN_HEADER #define TTAG_CBDT FT_MAKE_TAG( 'C', 'B', 'D', 'T' ) #define TTAG_CBLC FT_MAKE_TAG( 'C', 'B', 'L', 'C' ) #define TTAG_CFF FT_MAKE_TAG( 'C', 'F', 'F', ' ' ) -#define TTAG_CFF2 FT_MAKE_TAG( 'C', 'F', 'F', '2' ) #define TTAG_CID FT_MAKE_TAG( 'C', 'I', 'D', ' ' ) #define TTAG_cmap FT_MAKE_TAG( 'c', 'm', 'a', 'p' ) -#define TTAG_COLR FT_MAKE_TAG( 'C', 'O', 'L', 'R' ) -#define TTAG_CPAL FT_MAKE_TAG( 'C', 'P', 'A', 'L' ) #define TTAG_cvar FT_MAKE_TAG( 'c', 'v', 'a', 'r' ) #define TTAG_cvt FT_MAKE_TAG( 'c', 'v', 't', ' ' ) #define TTAG_DSIG FT_MAKE_TAG( 'D', 'S', 'I', 'G' ) @@ -63,7 +61,6 @@ FT_BEGIN_HEADER #define TTAG_GPOS FT_MAKE_TAG( 'G', 'P', 'O', 'S' ) #define TTAG_GSUB FT_MAKE_TAG( 'G', 'S', 'U', 'B' ) #define TTAG_gvar FT_MAKE_TAG( 'g', 'v', 'a', 'r' ) -#define TTAG_HVAR FT_MAKE_TAG( 'H', 'V', 'A', 'R' ) #define TTAG_hdmx FT_MAKE_TAG( 'h', 'd', 'm', 'x' ) #define TTAG_head FT_MAKE_TAG( 'h', 'e', 'a', 'd' ) #define TTAG_hhea FT_MAKE_TAG( 'h', 'h', 'e', 'a' ) @@ -82,7 +79,6 @@ FT_BEGIN_HEADER #define TTAG_MMSD FT_MAKE_TAG( 'M', 'M', 'S', 'D' ) #define TTAG_mort FT_MAKE_TAG( 'm', 'o', 'r', 't' ) #define TTAG_morx FT_MAKE_TAG( 'm', 'o', 'r', 'x' ) -#define TTAG_MVAR FT_MAKE_TAG( 'M', 'V', 'A', 'R' ) #define TTAG_name FT_MAKE_TAG( 'n', 'a', 'm', 'e' ) #define TTAG_opbd FT_MAKE_TAG( 'o', 'p', 'b', 'd' ) #define TTAG_OS2 FT_MAKE_TAG( 'O', 'S', '/', '2' ) @@ -104,20 +100,12 @@ FT_BEGIN_HEADER #define TTAG_VDMX FT_MAKE_TAG( 'V', 'D', 'M', 'X' ) #define TTAG_vhea FT_MAKE_TAG( 'v', 'h', 'e', 'a' ) #define TTAG_vmtx FT_MAKE_TAG( 'v', 'm', 't', 'x' ) -#define TTAG_VVAR FT_MAKE_TAG( 'V', 'V', 'A', 'R' ) #define TTAG_wOFF FT_MAKE_TAG( 'w', 'O', 'F', 'F' ) -#define TTAG_wOF2 FT_MAKE_TAG( 'w', 'O', 'F', '2' ) - -/* used by "Keyboard.dfont" on legacy Mac OS X */ -#define TTAG_0xA5kbd FT_MAKE_TAG( 0xA5, 'k', 'b', 'd' ) - -/* used by "LastResort.dfont" on legacy Mac OS X */ -#define TTAG_0xA5lst FT_MAKE_TAG( 0xA5, 'l', 's', 't' ) FT_END_HEADER -#endif /* TTAGS_H_ */ +#endif /* __TTAGS_H__ */ /* END */ diff --git a/win64/include/freetype/ttunpat.h b/win64/include/freetype/ttunpat.h new file mode 100644 index 00000000..bf53ddd5 --- /dev/null +++ b/win64/include/freetype/ttunpat.h @@ -0,0 +1,60 @@ +/***************************************************************************/ +/* */ +/* ttunpat.h */ +/* */ +/* Definitions for the unpatented TrueType hinting system */ +/* */ +/* Copyright 2003, 2006 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* Written by Graham Asher <graham.asher@btinternet.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. */ +/* */ +/***************************************************************************/ + + +#ifndef __TTUNPAT_H__ +#define __TTUNPAT_H__ + + +#include <ft2build.h> +#include FT_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 + + + /*************************************************************************** + * + * @constant: + * FT_PARAM_TAG_UNPATENTED_HINTING + * + * @description: + * A constant used as the tag of an @FT_Parameter structure to indicate + * that unpatented methods only should be used by the TrueType bytecode + * interpreter for a typeface opened by @FT_Open_Face. + * + */ +#define FT_PARAM_TAG_UNPATENTED_HINTING FT_MAKE_TAG( 'u', 'n', 'p', 'a' ) + + /* */ + + +FT_END_HEADER + + +#endif /* __TTUNPAT_H__ */ + + +/* END */ diff --git a/win64/include/gles/GL.h b/win64/include/gles/GL.h deleted file mode 100644 index 20811165..00000000 --- a/win64/include/gles/GL.h +++ /dev/null @@ -1,1534 +0,0 @@ -/*++ BUILD Version: 0004 // Increment this if a change has global effects - -Copyright (c) 1985-96, Microsoft Corporation - -Module Name: - - gl.h - -Abstract: - - Procedure declarations, constant definitions and macros for the OpenGL - component. - ---*/ - -#ifndef __gl_h_ -#ifndef __GL_H__ - -#define __gl_h_ -#define __GL_H__ - -#include <winapifamily.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 1996 Silicon Graphics, Inc. -** All Rights Reserved. -** -** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.; -** the contents of this file may not be disclosed to third parties, copied or -** duplicated in any form, in whole or in part, without the prior written -** permission of Silicon Graphics, Inc. -** -** RESTRICTED RIGHTS LEGEND: -** Use, duplication or disclosure by the Government is subject to restrictions -** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data -** and Computer Software clause at DFARS 252.227-7013, and/or in similar or -** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished - -** rights reserved under the Copyright Laws of the United States. -*/ - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -typedef unsigned int GLenum; -typedef unsigned char GLboolean; -typedef unsigned int GLbitfield; -typedef signed char GLbyte; -typedef short GLshort; -typedef int GLint; -typedef int GLsizei; -typedef unsigned char GLubyte; -typedef unsigned short GLushort; -typedef unsigned int GLuint; -typedef float GLfloat; -typedef float GLclampf; -typedef double GLdouble; -typedef double GLclampd; -typedef void GLvoid; - -/*************************************************************/ - -/* Version */ -#define GL_VERSION_1_1 1 - -/* AccumOp */ -#define GL_ACCUM 0x0100 -#define GL_LOAD 0x0101 -#define GL_RETURN 0x0102 -#define GL_MULT 0x0103 -#define GL_ADD 0x0104 - -/* AlphaFunction */ -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 - -/* AttribMask */ -#define GL_CURRENT_BIT 0x00000001 -#define GL_POINT_BIT 0x00000002 -#define GL_LINE_BIT 0x00000004 -#define GL_POLYGON_BIT 0x00000008 -#define GL_POLYGON_STIPPLE_BIT 0x00000010 -#define GL_PIXEL_MODE_BIT 0x00000020 -#define GL_LIGHTING_BIT 0x00000040 -#define GL_FOG_BIT 0x00000080 -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_ACCUM_BUFFER_BIT 0x00000200 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_VIEWPORT_BIT 0x00000800 -#define GL_TRANSFORM_BIT 0x00001000 -#define GL_ENABLE_BIT 0x00002000 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_HINT_BIT 0x00008000 -#define GL_EVAL_BIT 0x00010000 -#define GL_LIST_BIT 0x00020000 -#define GL_TEXTURE_BIT 0x00040000 -#define GL_SCISSOR_BIT 0x00080000 -#define GL_ALL_ATTRIB_BITS 0x000fffff - -/* BeginMode */ -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_QUADS 0x0007 -#define GL_QUAD_STRIP 0x0008 -#define GL_POLYGON 0x0009 - -/* BlendingFactorDest */ -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 - -/* BlendingFactorSrc */ -/* GL_ZERO */ -/* GL_ONE */ -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -/* GL_SRC_ALPHA */ -/* GL_ONE_MINUS_SRC_ALPHA */ -/* GL_DST_ALPHA */ -/* GL_ONE_MINUS_DST_ALPHA */ - -/* Boolean */ -#define GL_TRUE 1 -#define GL_FALSE 0 - -/* ClearBufferMask */ -/* GL_COLOR_BUFFER_BIT */ -/* GL_ACCUM_BUFFER_BIT */ -/* GL_STENCIL_BUFFER_BIT */ -/* GL_DEPTH_BUFFER_BIT */ - -/* ClientArrayType */ -/* GL_VERTEX_ARRAY */ -/* GL_NORMAL_ARRAY */ -/* GL_COLOR_ARRAY */ -/* GL_INDEX_ARRAY */ -/* GL_TEXTURE_COORD_ARRAY */ -/* GL_EDGE_FLAG_ARRAY */ - -/* ClipPlaneName */ -#define GL_CLIP_PLANE0 0x3000 -#define GL_CLIP_PLANE1 0x3001 -#define GL_CLIP_PLANE2 0x3002 -#define GL_CLIP_PLANE3 0x3003 -#define GL_CLIP_PLANE4 0x3004 -#define GL_CLIP_PLANE5 0x3005 - -/* ColorMaterialFace */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_FRONT_AND_BACK */ - -/* ColorMaterialParameter */ -/* GL_AMBIENT */ -/* GL_DIFFUSE */ -/* GL_SPECULAR */ -/* GL_EMISSION */ -/* GL_AMBIENT_AND_DIFFUSE */ - -/* ColorPointerType */ -/* GL_BYTE */ -/* GL_UNSIGNED_BYTE */ -/* GL_SHORT */ -/* GL_UNSIGNED_SHORT */ -/* GL_INT */ -/* GL_UNSIGNED_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* CullFaceMode */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_FRONT_AND_BACK */ - -/* DataType */ -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_2_BYTES 0x1407 -#define GL_3_BYTES 0x1408 -#define GL_4_BYTES 0x1409 -#define GL_DOUBLE 0x140A - -/* DepthFunction */ -/* GL_NEVER */ -/* GL_LESS */ -/* GL_EQUAL */ -/* GL_LEQUAL */ -/* GL_GREATER */ -/* GL_NOTEQUAL */ -/* GL_GEQUAL */ -/* GL_ALWAYS */ - -/* DrawBufferMode */ -#define GL_NONE 0 -#define GL_FRONT_LEFT 0x0400 -#define GL_FRONT_RIGHT 0x0401 -#define GL_BACK_LEFT 0x0402 -#define GL_BACK_RIGHT 0x0403 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_LEFT 0x0406 -#define GL_RIGHT 0x0407 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_AUX0 0x0409 -#define GL_AUX1 0x040A -#define GL_AUX2 0x040B -#define GL_AUX3 0x040C - -/* Enable */ -/* GL_FOG */ -/* GL_LIGHTING */ -/* GL_TEXTURE_1D */ -/* GL_TEXTURE_2D */ -/* GL_LINE_STIPPLE */ -/* GL_POLYGON_STIPPLE */ -/* GL_CULL_FACE */ -/* GL_ALPHA_TEST */ -/* GL_BLEND */ -/* GL_INDEX_LOGIC_OP */ -/* GL_COLOR_LOGIC_OP */ -/* GL_DITHER */ -/* GL_STENCIL_TEST */ -/* GL_DEPTH_TEST */ -/* GL_CLIP_PLANE0 */ -/* GL_CLIP_PLANE1 */ -/* GL_CLIP_PLANE2 */ -/* GL_CLIP_PLANE3 */ -/* GL_CLIP_PLANE4 */ -/* GL_CLIP_PLANE5 */ -/* GL_LIGHT0 */ -/* GL_LIGHT1 */ -/* GL_LIGHT2 */ -/* GL_LIGHT3 */ -/* GL_LIGHT4 */ -/* GL_LIGHT5 */ -/* GL_LIGHT6 */ -/* GL_LIGHT7 */ -/* GL_TEXTURE_GEN_S */ -/* GL_TEXTURE_GEN_T */ -/* GL_TEXTURE_GEN_R */ -/* GL_TEXTURE_GEN_Q */ -/* GL_MAP1_VERTEX_3 */ -/* GL_MAP1_VERTEX_4 */ -/* GL_MAP1_COLOR_4 */ -/* GL_MAP1_INDEX */ -/* GL_MAP1_NORMAL */ -/* GL_MAP1_TEXTURE_COORD_1 */ -/* GL_MAP1_TEXTURE_COORD_2 */ -/* GL_MAP1_TEXTURE_COORD_3 */ -/* GL_MAP1_TEXTURE_COORD_4 */ -/* GL_MAP2_VERTEX_3 */ -/* GL_MAP2_VERTEX_4 */ -/* GL_MAP2_COLOR_4 */ -/* GL_MAP2_INDEX */ -/* GL_MAP2_NORMAL */ -/* GL_MAP2_TEXTURE_COORD_1 */ -/* GL_MAP2_TEXTURE_COORD_2 */ -/* GL_MAP2_TEXTURE_COORD_3 */ -/* GL_MAP2_TEXTURE_COORD_4 */ -/* GL_POINT_SMOOTH */ -/* GL_LINE_SMOOTH */ -/* GL_POLYGON_SMOOTH */ -/* GL_SCISSOR_TEST */ -/* GL_COLOR_MATERIAL */ -/* GL_NORMALIZE */ -/* GL_AUTO_NORMAL */ -/* GL_VERTEX_ARRAY */ -/* GL_NORMAL_ARRAY */ -/* GL_COLOR_ARRAY */ -/* GL_INDEX_ARRAY */ -/* GL_TEXTURE_COORD_ARRAY */ -/* GL_EDGE_FLAG_ARRAY */ -/* GL_POLYGON_OFFSET_POINT */ -/* GL_POLYGON_OFFSET_LINE */ -/* GL_POLYGON_OFFSET_FILL */ - -/* ErrorCode */ -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_OUT_OF_MEMORY 0x0505 - -/* FeedBackMode */ -#define GL_2D 0x0600 -#define GL_3D 0x0601 -#define GL_3D_COLOR 0x0602 -#define GL_3D_COLOR_TEXTURE 0x0603 -#define GL_4D_COLOR_TEXTURE 0x0604 - -/* FeedBackToken */ -#define GL_PASS_THROUGH_TOKEN 0x0700 -#define GL_POINT_TOKEN 0x0701 -#define GL_LINE_TOKEN 0x0702 -#define GL_POLYGON_TOKEN 0x0703 -#define GL_BITMAP_TOKEN 0x0704 -#define GL_DRAW_PIXEL_TOKEN 0x0705 -#define GL_COPY_PIXEL_TOKEN 0x0706 -#define GL_LINE_RESET_TOKEN 0x0707 - -/* FogMode */ -/* GL_LINEAR */ -#define GL_EXP 0x0800 -#define GL_EXP2 0x0801 - - -/* FogParameter */ -/* GL_FOG_COLOR */ -/* GL_FOG_DENSITY */ -/* GL_FOG_END */ -/* GL_FOG_INDEX */ -/* GL_FOG_MODE */ -/* GL_FOG_START */ - -/* FrontFaceDirection */ -#define GL_CW 0x0900 -#define GL_CCW 0x0901 - -/* GetMapTarget */ -#define GL_COEFF 0x0A00 -#define GL_ORDER 0x0A01 -#define GL_DOMAIN 0x0A02 - -/* GetPixelMap */ -/* GL_PIXEL_MAP_I_TO_I */ -/* GL_PIXEL_MAP_S_TO_S */ -/* GL_PIXEL_MAP_I_TO_R */ -/* GL_PIXEL_MAP_I_TO_G */ -/* GL_PIXEL_MAP_I_TO_B */ -/* GL_PIXEL_MAP_I_TO_A */ -/* GL_PIXEL_MAP_R_TO_R */ -/* GL_PIXEL_MAP_G_TO_G */ -/* GL_PIXEL_MAP_B_TO_B */ -/* GL_PIXEL_MAP_A_TO_A */ - -/* GetPointerTarget */ -/* GL_VERTEX_ARRAY_POINTER */ -/* GL_NORMAL_ARRAY_POINTER */ -/* GL_COLOR_ARRAY_POINTER */ -/* GL_INDEX_ARRAY_POINTER */ -/* GL_TEXTURE_COORD_ARRAY_POINTER */ -/* GL_EDGE_FLAG_ARRAY_POINTER */ - -/* GetTarget */ -#define GL_CURRENT_COLOR 0x0B00 -#define GL_CURRENT_INDEX 0x0B01 -#define GL_CURRENT_NORMAL 0x0B02 -#define GL_CURRENT_TEXTURE_COORDS 0x0B03 -#define GL_CURRENT_RASTER_COLOR 0x0B04 -#define GL_CURRENT_RASTER_INDEX 0x0B05 -#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 -#define GL_CURRENT_RASTER_POSITION 0x0B07 -#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 -#define GL_CURRENT_RASTER_DISTANCE 0x0B09 -#define GL_POINT_SMOOTH 0x0B10 -#define GL_POINT_SIZE 0x0B11 -#define GL_POINT_SIZE_RANGE 0x0B12 -#define GL_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_LINE_SMOOTH 0x0B20 -#define GL_LINE_WIDTH 0x0B21 -#define GL_LINE_WIDTH_RANGE 0x0B22 -#define GL_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_LINE_STIPPLE 0x0B24 -#define GL_LINE_STIPPLE_PATTERN 0x0B25 -#define GL_LINE_STIPPLE_REPEAT 0x0B26 -#define GL_LIST_MODE 0x0B30 -#define GL_MAX_LIST_NESTING 0x0B31 -#define GL_LIST_BASE 0x0B32 -#define GL_LIST_INDEX 0x0B33 -#define GL_POLYGON_MODE 0x0B40 -#define GL_POLYGON_SMOOTH 0x0B41 -#define GL_POLYGON_STIPPLE 0x0B42 -#define GL_EDGE_FLAG 0x0B43 -#define GL_CULL_FACE 0x0B44 -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_LIGHTING 0x0B50 -#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 -#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 -#define GL_LIGHT_MODEL_AMBIENT 0x0B53 -#define GL_SHADE_MODEL 0x0B54 -#define GL_COLOR_MATERIAL_FACE 0x0B55 -#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 -#define GL_COLOR_MATERIAL 0x0B57 -#define GL_FOG 0x0B60 -#define GL_FOG_INDEX 0x0B61 -#define GL_FOG_DENSITY 0x0B62 -#define GL_FOG_START 0x0B63 -#define GL_FOG_END 0x0B64 -#define GL_FOG_MODE 0x0B65 -#define GL_FOG_COLOR 0x0B66 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_TEST 0x0B71 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_ACCUM_CLEAR_VALUE 0x0B80 -#define GL_STENCIL_TEST 0x0B90 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_MATRIX_MODE 0x0BA0 -#define GL_NORMALIZE 0x0BA1 -#define GL_VIEWPORT 0x0BA2 -#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 -#define GL_PROJECTION_STACK_DEPTH 0x0BA4 -#define GL_TEXTURE_STACK_DEPTH 0x0BA5 -#define GL_MODELVIEW_MATRIX 0x0BA6 -#define GL_PROJECTION_MATRIX 0x0BA7 -#define GL_TEXTURE_MATRIX 0x0BA8 -#define GL_ATTRIB_STACK_DEPTH 0x0BB0 -#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 -#define GL_ALPHA_TEST 0x0BC0 -#define GL_ALPHA_TEST_FUNC 0x0BC1 -#define GL_ALPHA_TEST_REF 0x0BC2 -#define GL_DITHER 0x0BD0 -#define GL_BLEND_DST 0x0BE0 -#define GL_BLEND_SRC 0x0BE1 -#define GL_BLEND 0x0BE2 -#define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_INDEX_LOGIC_OP 0x0BF1 -#define GL_COLOR_LOGIC_OP 0x0BF2 -#define GL_AUX_BUFFERS 0x0C00 -#define GL_DRAW_BUFFER 0x0C01 -#define GL_READ_BUFFER 0x0C02 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_INDEX_CLEAR_VALUE 0x0C20 -#define GL_INDEX_WRITEMASK 0x0C21 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_INDEX_MODE 0x0C30 -#define GL_RGBA_MODE 0x0C31 -#define GL_DOUBLEBUFFER 0x0C32 -#define GL_STEREO 0x0C33 -#define GL_RENDER_MODE 0x0C40 -#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 -#define GL_POINT_SMOOTH_HINT 0x0C51 -#define GL_LINE_SMOOTH_HINT 0x0C52 -#define GL_POLYGON_SMOOTH_HINT 0x0C53 -#define GL_FOG_HINT 0x0C54 -#define GL_TEXTURE_GEN_S 0x0C60 -#define GL_TEXTURE_GEN_T 0x0C61 -#define GL_TEXTURE_GEN_R 0x0C62 -#define GL_TEXTURE_GEN_Q 0x0C63 -#define GL_PIXEL_MAP_I_TO_I 0x0C70 -#define GL_PIXEL_MAP_S_TO_S 0x0C71 -#define GL_PIXEL_MAP_I_TO_R 0x0C72 -#define GL_PIXEL_MAP_I_TO_G 0x0C73 -#define GL_PIXEL_MAP_I_TO_B 0x0C74 -#define GL_PIXEL_MAP_I_TO_A 0x0C75 -#define GL_PIXEL_MAP_R_TO_R 0x0C76 -#define GL_PIXEL_MAP_G_TO_G 0x0C77 -#define GL_PIXEL_MAP_B_TO_B 0x0C78 -#define GL_PIXEL_MAP_A_TO_A 0x0C79 -#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 -#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 -#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 -#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 -#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 -#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 -#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 -#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 -#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 -#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 -#define GL_UNPACK_SWAP_BYTES 0x0CF0 -#define GL_UNPACK_LSB_FIRST 0x0CF1 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_SWAP_BYTES 0x0D00 -#define GL_PACK_LSB_FIRST 0x0D01 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAP_COLOR 0x0D10 -#define GL_MAP_STENCIL 0x0D11 -#define GL_INDEX_SHIFT 0x0D12 -#define GL_INDEX_OFFSET 0x0D13 -#define GL_RED_SCALE 0x0D14 -#define GL_RED_BIAS 0x0D15 -#define GL_ZOOM_X 0x0D16 -#define GL_ZOOM_Y 0x0D17 -#define GL_GREEN_SCALE 0x0D18 -#define GL_GREEN_BIAS 0x0D19 -#define GL_BLUE_SCALE 0x0D1A -#define GL_BLUE_BIAS 0x0D1B -#define GL_ALPHA_SCALE 0x0D1C -#define GL_ALPHA_BIAS 0x0D1D -#define GL_DEPTH_SCALE 0x0D1E -#define GL_DEPTH_BIAS 0x0D1F -#define GL_MAX_EVAL_ORDER 0x0D30 -#define GL_MAX_LIGHTS 0x0D31 -#define GL_MAX_CLIP_PLANES 0x0D32 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 -#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 -#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 -#define GL_MAX_NAME_STACK_DEPTH 0x0D37 -#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 -#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_INDEX_BITS 0x0D51 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_ACCUM_RED_BITS 0x0D58 -#define GL_ACCUM_GREEN_BITS 0x0D59 -#define GL_ACCUM_BLUE_BITS 0x0D5A -#define GL_ACCUM_ALPHA_BITS 0x0D5B -#define GL_NAME_STACK_DEPTH 0x0D70 -#define GL_AUTO_NORMAL 0x0D80 -#define GL_MAP1_COLOR_4 0x0D90 -#define GL_MAP1_INDEX 0x0D91 -#define GL_MAP1_NORMAL 0x0D92 -#define GL_MAP1_TEXTURE_COORD_1 0x0D93 -#define GL_MAP1_TEXTURE_COORD_2 0x0D94 -#define GL_MAP1_TEXTURE_COORD_3 0x0D95 -#define GL_MAP1_TEXTURE_COORD_4 0x0D96 -#define GL_MAP1_VERTEX_3 0x0D97 -#define GL_MAP1_VERTEX_4 0x0D98 -#define GL_MAP2_COLOR_4 0x0DB0 -#define GL_MAP2_INDEX 0x0DB1 -#define GL_MAP2_NORMAL 0x0DB2 -#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 -#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 -#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 -#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 -#define GL_MAP2_VERTEX_3 0x0DB7 -#define GL_MAP2_VERTEX_4 0x0DB8 -#define GL_MAP1_GRID_DOMAIN 0x0DD0 -#define GL_MAP1_GRID_SEGMENTS 0x0DD1 -#define GL_MAP2_GRID_DOMAIN 0x0DD2 -#define GL_MAP2_GRID_SEGMENTS 0x0DD3 -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 -#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 -#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 -#define GL_SELECTION_BUFFER_POINTER 0x0DF3 -#define GL_SELECTION_BUFFER_SIZE 0x0DF4 -/* GL_TEXTURE_BINDING_1D */ -/* GL_TEXTURE_BINDING_2D */ -/* GL_VERTEX_ARRAY */ -/* GL_NORMAL_ARRAY */ -/* GL_COLOR_ARRAY */ -/* GL_INDEX_ARRAY */ -/* GL_TEXTURE_COORD_ARRAY */ -/* GL_EDGE_FLAG_ARRAY */ -/* GL_VERTEX_ARRAY_SIZE */ -/* GL_VERTEX_ARRAY_TYPE */ -/* GL_VERTEX_ARRAY_STRIDE */ -/* GL_NORMAL_ARRAY_TYPE */ -/* GL_NORMAL_ARRAY_STRIDE */ -/* GL_COLOR_ARRAY_SIZE */ -/* GL_COLOR_ARRAY_TYPE */ -/* GL_COLOR_ARRAY_STRIDE */ -/* GL_INDEX_ARRAY_TYPE */ -/* GL_INDEX_ARRAY_STRIDE */ -/* GL_TEXTURE_COORD_ARRAY_SIZE */ -/* GL_TEXTURE_COORD_ARRAY_TYPE */ -/* GL_TEXTURE_COORD_ARRAY_STRIDE */ -/* GL_EDGE_FLAG_ARRAY_STRIDE */ -/* GL_POLYGON_OFFSET_FACTOR */ -/* GL_POLYGON_OFFSET_UNITS */ - -/* GetTextureParameter */ -/* GL_TEXTURE_MAG_FILTER */ -/* GL_TEXTURE_MIN_FILTER */ -/* GL_TEXTURE_WRAP_S */ -/* GL_TEXTURE_WRAP_T */ -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_TEXTURE_BORDER 0x1005 -/* GL_TEXTURE_RED_SIZE */ -/* GL_TEXTURE_GREEN_SIZE */ -/* GL_TEXTURE_BLUE_SIZE */ -/* GL_TEXTURE_ALPHA_SIZE */ -/* GL_TEXTURE_LUMINANCE_SIZE */ -/* GL_TEXTURE_INTENSITY_SIZE */ -/* GL_TEXTURE_PRIORITY */ -/* GL_TEXTURE_RESIDENT */ - -/* HintMode */ -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 - -/* HintTarget */ -/* GL_PERSPECTIVE_CORRECTION_HINT */ -/* GL_POINT_SMOOTH_HINT */ -/* GL_LINE_SMOOTH_HINT */ -/* GL_POLYGON_SMOOTH_HINT */ -/* GL_FOG_HINT */ -/* GL_PHONG_HINT */ - -/* IndexPointerType */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* LightModelParameter */ -/* GL_LIGHT_MODEL_AMBIENT */ -/* GL_LIGHT_MODEL_LOCAL_VIEWER */ -/* GL_LIGHT_MODEL_TWO_SIDE */ - -/* LightName */ -#define GL_LIGHT0 0x4000 -#define GL_LIGHT1 0x4001 -#define GL_LIGHT2 0x4002 -#define GL_LIGHT3 0x4003 -#define GL_LIGHT4 0x4004 -#define GL_LIGHT5 0x4005 -#define GL_LIGHT6 0x4006 -#define GL_LIGHT7 0x4007 - -/* LightParameter */ -#define GL_AMBIENT 0x1200 -#define GL_DIFFUSE 0x1201 -#define GL_SPECULAR 0x1202 -#define GL_POSITION 0x1203 -#define GL_SPOT_DIRECTION 0x1204 -#define GL_SPOT_EXPONENT 0x1205 -#define GL_SPOT_CUTOFF 0x1206 -#define GL_CONSTANT_ATTENUATION 0x1207 -#define GL_LINEAR_ATTENUATION 0x1208 -#define GL_QUADRATIC_ATTENUATION 0x1209 - -/* InterleavedArrays */ -/* GL_V2F */ -/* GL_V3F */ -/* GL_C4UB_V2F */ -/* GL_C4UB_V3F */ -/* GL_C3F_V3F */ -/* GL_N3F_V3F */ -/* GL_C4F_N3F_V3F */ -/* GL_T2F_V3F */ -/* GL_T4F_V4F */ -/* GL_T2F_C4UB_V3F */ -/* GL_T2F_C3F_V3F */ -/* GL_T2F_N3F_V3F */ -/* GL_T2F_C4F_N3F_V3F */ -/* GL_T4F_C4F_N3F_V4F */ - -/* ListMode */ -#define GL_COMPILE 0x1300 -#define GL_COMPILE_AND_EXECUTE 0x1301 - -/* ListNameType */ -/* GL_BYTE */ -/* GL_UNSIGNED_BYTE */ -/* GL_SHORT */ -/* GL_UNSIGNED_SHORT */ -/* GL_INT */ -/* GL_UNSIGNED_INT */ -/* GL_FLOAT */ -/* GL_2_BYTES */ -/* GL_3_BYTES */ -/* GL_4_BYTES */ - -/* LogicOp */ -#define GL_CLEAR 0x1500 -#define GL_AND 0x1501 -#define GL_AND_REVERSE 0x1502 -#define GL_COPY 0x1503 -#define GL_AND_INVERTED 0x1504 -#define GL_NOOP 0x1505 -#define GL_XOR 0x1506 -#define GL_OR 0x1507 -#define GL_NOR 0x1508 -#define GL_EQUIV 0x1509 -#define GL_INVERT 0x150A -#define GL_OR_REVERSE 0x150B -#define GL_COPY_INVERTED 0x150C -#define GL_OR_INVERTED 0x150D -#define GL_NAND 0x150E -#define GL_SET 0x150F - -/* MapTarget */ -/* GL_MAP1_COLOR_4 */ -/* GL_MAP1_INDEX */ -/* GL_MAP1_NORMAL */ -/* GL_MAP1_TEXTURE_COORD_1 */ -/* GL_MAP1_TEXTURE_COORD_2 */ -/* GL_MAP1_TEXTURE_COORD_3 */ -/* GL_MAP1_TEXTURE_COORD_4 */ -/* GL_MAP1_VERTEX_3 */ -/* GL_MAP1_VERTEX_4 */ -/* GL_MAP2_COLOR_4 */ -/* GL_MAP2_INDEX */ -/* GL_MAP2_NORMAL */ -/* GL_MAP2_TEXTURE_COORD_1 */ -/* GL_MAP2_TEXTURE_COORD_2 */ -/* GL_MAP2_TEXTURE_COORD_3 */ -/* GL_MAP2_TEXTURE_COORD_4 */ -/* GL_MAP2_VERTEX_3 */ -/* GL_MAP2_VERTEX_4 */ - -/* MaterialFace */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_FRONT_AND_BACK */ - -/* MaterialParameter */ -#define GL_EMISSION 0x1600 -#define GL_SHININESS 0x1601 -#define GL_AMBIENT_AND_DIFFUSE 0x1602 -#define GL_COLOR_INDEXES 0x1603 -/* GL_AMBIENT */ -/* GL_DIFFUSE */ -/* GL_SPECULAR */ - -/* MatrixMode */ -#define GL_MODELVIEW 0x1700 -#define GL_PROJECTION 0x1701 -#define GL_TEXTURE 0x1702 - -/* MeshMode1 */ -/* GL_POINT */ -/* GL_LINE */ - -/* MeshMode2 */ -/* GL_POINT */ -/* GL_LINE */ -/* GL_FILL */ - -/* NormalPointerType */ -/* GL_BYTE */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* PixelCopyType */ -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 - -/* PixelFormat */ -#define GL_COLOR_INDEX 0x1900 -#define GL_STENCIL_INDEX 0x1901 -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_RED 0x1903 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A - -/* PixelMap */ -/* GL_PIXEL_MAP_I_TO_I */ -/* GL_PIXEL_MAP_S_TO_S */ -/* GL_PIXEL_MAP_I_TO_R */ -/* GL_PIXEL_MAP_I_TO_G */ -/* GL_PIXEL_MAP_I_TO_B */ -/* GL_PIXEL_MAP_I_TO_A */ -/* GL_PIXEL_MAP_R_TO_R */ -/* GL_PIXEL_MAP_G_TO_G */ -/* GL_PIXEL_MAP_B_TO_B */ -/* GL_PIXEL_MAP_A_TO_A */ - -/* PixelStore */ -/* GL_UNPACK_SWAP_BYTES */ -/* GL_UNPACK_LSB_FIRST */ -/* GL_UNPACK_ROW_LENGTH */ -/* GL_UNPACK_SKIP_ROWS */ -/* GL_UNPACK_SKIP_PIXELS */ -/* GL_UNPACK_ALIGNMENT */ -/* GL_PACK_SWAP_BYTES */ -/* GL_PACK_LSB_FIRST */ -/* GL_PACK_ROW_LENGTH */ -/* GL_PACK_SKIP_ROWS */ -/* GL_PACK_SKIP_PIXELS */ -/* GL_PACK_ALIGNMENT */ - -/* PixelTransfer */ -/* GL_MAP_COLOR */ -/* GL_MAP_STENCIL */ -/* GL_INDEX_SHIFT */ -/* GL_INDEX_OFFSET */ -/* GL_RED_SCALE */ -/* GL_RED_BIAS */ -/* GL_GREEN_SCALE */ -/* GL_GREEN_BIAS */ -/* GL_BLUE_SCALE */ -/* GL_BLUE_BIAS */ -/* GL_ALPHA_SCALE */ -/* GL_ALPHA_BIAS */ -/* GL_DEPTH_SCALE */ -/* GL_DEPTH_BIAS */ - -/* PixelType */ -#define GL_BITMAP 0x1A00 -/* GL_BYTE */ -/* GL_UNSIGNED_BYTE */ -/* GL_SHORT */ -/* GL_UNSIGNED_SHORT */ -/* GL_INT */ -/* GL_UNSIGNED_INT */ -/* GL_FLOAT */ - -/* PolygonMode */ -#define GL_POINT 0x1B00 -#define GL_LINE 0x1B01 -#define GL_FILL 0x1B02 - -/* ReadBufferMode */ -/* GL_FRONT_LEFT */ -/* GL_FRONT_RIGHT */ -/* GL_BACK_LEFT */ -/* GL_BACK_RIGHT */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_LEFT */ -/* GL_RIGHT */ -/* GL_AUX0 */ -/* GL_AUX1 */ -/* GL_AUX2 */ -/* GL_AUX3 */ - -/* RenderingMode */ -#define GL_RENDER 0x1C00 -#define GL_FEEDBACK 0x1C01 -#define GL_SELECT 0x1C02 - -/* ShadingModel */ -#define GL_FLAT 0x1D00 -#define GL_SMOOTH 0x1D01 - - -/* StencilFunction */ -/* GL_NEVER */ -/* GL_LESS */ -/* GL_EQUAL */ -/* GL_LEQUAL */ -/* GL_GREATER */ -/* GL_NOTEQUAL */ -/* GL_GEQUAL */ -/* GL_ALWAYS */ - -/* StencilOp */ -/* GL_ZERO */ -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -/* GL_INVERT */ - -/* StringName */ -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 - -/* TextureCoordName */ -#define GL_S 0x2000 -#define GL_T 0x2001 -#define GL_R 0x2002 -#define GL_Q 0x2003 - -/* TexCoordPointerType */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* TextureEnvMode */ -#define GL_MODULATE 0x2100 -#define GL_DECAL 0x2101 -/* GL_BLEND */ -/* GL_REPLACE */ - -/* TextureEnvParameter */ -#define GL_TEXTURE_ENV_MODE 0x2200 -#define GL_TEXTURE_ENV_COLOR 0x2201 - -/* TextureEnvTarget */ -#define GL_TEXTURE_ENV 0x2300 - -/* TextureGenMode */ -#define GL_EYE_LINEAR 0x2400 -#define GL_OBJECT_LINEAR 0x2401 -#define GL_SPHERE_MAP 0x2402 - -/* TextureGenParameter */ -#define GL_TEXTURE_GEN_MODE 0x2500 -#define GL_OBJECT_PLANE 0x2501 -#define GL_EYE_PLANE 0x2502 - -/* TextureMagFilter */ -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 - -/* TextureMinFilter */ -/* GL_NEAREST */ -/* GL_LINEAR */ -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 - -/* TextureParameterName */ -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -/* GL_TEXTURE_BORDER_COLOR */ -/* GL_TEXTURE_PRIORITY */ - -/* TextureTarget */ -/* GL_TEXTURE_1D */ -/* GL_TEXTURE_2D */ -/* GL_PROXY_TEXTURE_1D */ -/* GL_PROXY_TEXTURE_2D */ - -/* TextureWrapMode */ -#define GL_CLAMP 0x2900 -#define GL_REPEAT 0x2901 - -/* VertexPointerType */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* ClientAttribMask */ -#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 -#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 -#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff - -/* polygon_offset */ -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_POINT 0x2A01 -#define GL_POLYGON_OFFSET_LINE 0x2A02 -#define GL_POLYGON_OFFSET_FILL 0x8037 - -/* texture */ -#define GL_ALPHA4 0x803B -#define GL_ALPHA8 0x803C -#define GL_ALPHA12 0x803D -#define GL_ALPHA16 0x803E -#define GL_LUMINANCE4 0x803F -#define GL_LUMINANCE8 0x8040 -#define GL_LUMINANCE12 0x8041 -#define GL_LUMINANCE16 0x8042 -#define GL_LUMINANCE4_ALPHA4 0x8043 -#define GL_LUMINANCE6_ALPHA2 0x8044 -#define GL_LUMINANCE8_ALPHA8 0x8045 -#define GL_LUMINANCE12_ALPHA4 0x8046 -#define GL_LUMINANCE12_ALPHA12 0x8047 -#define GL_LUMINANCE16_ALPHA16 0x8048 -#define GL_INTENSITY 0x8049 -#define GL_INTENSITY4 0x804A -#define GL_INTENSITY8 0x804B -#define GL_INTENSITY12 0x804C -#define GL_INTENSITY16 0x804D -#define GL_R3_G3_B2 0x2A10 -#define GL_RGB4 0x804F -#define GL_RGB5 0x8050 -#define GL_RGB8 0x8051 -#define GL_RGB10 0x8052 -#define GL_RGB12 0x8053 -#define GL_RGB16 0x8054 -#define GL_RGBA2 0x8055 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_RGBA12 0x805A -#define GL_RGBA16 0x805B -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE 0x8061 -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_2D 0x8064 - -/* texture_object */ -#define GL_TEXTURE_PRIORITY 0x8066 -#define GL_TEXTURE_RESIDENT 0x8067 -#define GL_TEXTURE_BINDING_1D 0x8068 -#define GL_TEXTURE_BINDING_2D 0x8069 - -/* vertex_array */ -#define GL_VERTEX_ARRAY 0x8074 -#define GL_NORMAL_ARRAY 0x8075 -#define GL_COLOR_ARRAY 0x8076 -#define GL_INDEX_ARRAY 0x8077 -#define GL_TEXTURE_COORD_ARRAY 0x8078 -#define GL_EDGE_FLAG_ARRAY 0x8079 -#define GL_VERTEX_ARRAY_SIZE 0x807A -#define GL_VERTEX_ARRAY_TYPE 0x807B -#define GL_VERTEX_ARRAY_STRIDE 0x807C -#define GL_NORMAL_ARRAY_TYPE 0x807E -#define GL_NORMAL_ARRAY_STRIDE 0x807F -#define GL_COLOR_ARRAY_SIZE 0x8081 -#define GL_COLOR_ARRAY_TYPE 0x8082 -#define GL_COLOR_ARRAY_STRIDE 0x8083 -#define GL_INDEX_ARRAY_TYPE 0x8085 -#define GL_INDEX_ARRAY_STRIDE 0x8086 -#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A -#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C -#define GL_VERTEX_ARRAY_POINTER 0x808E -#define GL_NORMAL_ARRAY_POINTER 0x808F -#define GL_COLOR_ARRAY_POINTER 0x8090 -#define GL_INDEX_ARRAY_POINTER 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 -#define GL_V2F 0x2A20 -#define GL_V3F 0x2A21 -#define GL_C4UB_V2F 0x2A22 -#define GL_C4UB_V3F 0x2A23 -#define GL_C3F_V3F 0x2A24 -#define GL_N3F_V3F 0x2A25 -#define GL_C4F_N3F_V3F 0x2A26 -#define GL_T2F_V3F 0x2A27 -#define GL_T4F_V4F 0x2A28 -#define GL_T2F_C4UB_V3F 0x2A29 -#define GL_T2F_C3F_V3F 0x2A2A -#define GL_T2F_N3F_V3F 0x2A2B -#define GL_T2F_C4F_N3F_V3F 0x2A2C -#define GL_T4F_C4F_N3F_V4F 0x2A2D - -/* Extensions */ -#define GL_EXT_vertex_array 1 -#define GL_EXT_bgra 1 -#define GL_EXT_paletted_texture 1 -#define GL_WIN_swap_hint 1 -#define GL_WIN_draw_range_elements 1 -// #define GL_WIN_phong_shading 1 -// #define GL_WIN_specular_fog 1 - -/* EXT_vertex_array */ -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 -#define GL_DOUBLE_EXT GL_DOUBLE - -/* EXT_bgra */ -#define GL_BGR_EXT 0x80E0 -#define GL_BGRA_EXT 0x80E1 - -/* EXT_paletted_texture */ - -/* These must match the GL_COLOR_TABLE_*_SGI enumerants */ -#define GL_COLOR_TABLE_FORMAT_EXT 0x80D8 -#define GL_COLOR_TABLE_WIDTH_EXT 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_EXT 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_EXT 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_EXT 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_EXT 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80DF - -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 - -/* WIN_draw_range_elements */ -#define GL_MAX_ELEMENTS_VERTICES_WIN 0x80E8 -#define GL_MAX_ELEMENTS_INDICES_WIN 0x80E9 - -/* WIN_phong_shading */ -#define GL_PHONG_WIN 0x80EA -#define GL_PHONG_HINT_WIN 0x80EB - -/* WIN_specular_fog */ -#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC - -/* For compatibility with OpenGL v1.0 */ -#define GL_LOGIC_OP GL_INDEX_LOGIC_OP -#define GL_TEXTURE_COMPONENTS GL_TEXTURE_INTERNAL_FORMAT - -/*************************************************************/ - -WINGDIAPI void APIENTRY glAccum (GLenum op, GLfloat value); -WINGDIAPI void APIENTRY glAlphaFunc (GLenum func, GLclampf ref); -WINGDIAPI GLboolean APIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences); -WINGDIAPI void APIENTRY glArrayElement (GLint i); -WINGDIAPI void APIENTRY glBegin (GLenum mode); -WINGDIAPI void APIENTRY glBindTexture (GLenum target, GLuint texture); -WINGDIAPI void APIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); -WINGDIAPI void APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -WINGDIAPI void APIENTRY glCallList (GLuint list); -WINGDIAPI void APIENTRY glCallLists (GLsizei n, GLenum type, const GLvoid *lists); -WINGDIAPI void APIENTRY glClear (GLbitfield mask); -WINGDIAPI void APIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -WINGDIAPI void APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -WINGDIAPI void APIENTRY glClearDepth (GLclampd depth); -WINGDIAPI void APIENTRY glClearIndex (GLfloat c); -WINGDIAPI void APIENTRY glClearStencil (GLint s); -WINGDIAPI void APIENTRY glClipPlane (GLenum plane, const GLdouble *equation); -WINGDIAPI void APIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue); -WINGDIAPI void APIENTRY glColor3bv (const GLbyte *v); -WINGDIAPI void APIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue); -WINGDIAPI void APIENTRY glColor3dv (const GLdouble *v); -WINGDIAPI void APIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue); -WINGDIAPI void APIENTRY glColor3fv (const GLfloat *v); -WINGDIAPI void APIENTRY glColor3i (GLint red, GLint green, GLint blue); -WINGDIAPI void APIENTRY glColor3iv (const GLint *v); -WINGDIAPI void APIENTRY glColor3s (GLshort red, GLshort green, GLshort blue); -WINGDIAPI void APIENTRY glColor3sv (const GLshort *v); -WINGDIAPI void APIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue); -WINGDIAPI void APIENTRY glColor3ubv (const GLubyte *v); -WINGDIAPI void APIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue); -WINGDIAPI void APIENTRY glColor3uiv (const GLuint *v); -WINGDIAPI void APIENTRY glColor3us (GLushort red, GLushort green, GLushort blue); -WINGDIAPI void APIENTRY glColor3usv (const GLushort *v); -WINGDIAPI void APIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); -WINGDIAPI void APIENTRY glColor4bv (const GLbyte *v); -WINGDIAPI void APIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); -WINGDIAPI void APIENTRY glColor4dv (const GLdouble *v); -WINGDIAPI void APIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -WINGDIAPI void APIENTRY glColor4fv (const GLfloat *v); -WINGDIAPI void APIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha); -WINGDIAPI void APIENTRY glColor4iv (const GLint *v); -WINGDIAPI void APIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha); -WINGDIAPI void APIENTRY glColor4sv (const GLshort *v); -WINGDIAPI void APIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -WINGDIAPI void APIENTRY glColor4ubv (const GLubyte *v); -WINGDIAPI void APIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha); -WINGDIAPI void APIENTRY glColor4uiv (const GLuint *v); -WINGDIAPI void APIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha); -WINGDIAPI void APIENTRY glColor4usv (const GLushort *v); -WINGDIAPI void APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -WINGDIAPI void APIENTRY glColorMaterial (GLenum face, GLenum mode); -WINGDIAPI void APIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -WINGDIAPI void APIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); -WINGDIAPI void APIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); -WINGDIAPI void APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -WINGDIAPI void APIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -WINGDIAPI void APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -WINGDIAPI void APIENTRY glCullFace (GLenum mode); -WINGDIAPI void APIENTRY glDeleteLists (GLuint list, GLsizei range); -WINGDIAPI void APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -WINGDIAPI void APIENTRY glDepthFunc (GLenum func); -WINGDIAPI void APIENTRY glDepthMask (GLboolean flag); -WINGDIAPI void APIENTRY glDepthRange (GLclampd zNear, GLclampd zFar); -WINGDIAPI void APIENTRY glDisable (GLenum cap); -WINGDIAPI void APIENTRY glDisableClientState (GLenum array); -WINGDIAPI void APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -WINGDIAPI void APIENTRY glDrawBuffer (GLenum mode); -WINGDIAPI void APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); -WINGDIAPI void APIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -WINGDIAPI void APIENTRY glEdgeFlag (GLboolean flag); -WINGDIAPI void APIENTRY glEdgeFlagPointer (GLsizei stride, const GLvoid *pointer); -WINGDIAPI void APIENTRY glEdgeFlagv (const GLboolean *flag); -WINGDIAPI void APIENTRY glEnable (GLenum cap); -WINGDIAPI void APIENTRY glEnableClientState (GLenum array); -WINGDIAPI void APIENTRY glEnd (void); -WINGDIAPI void APIENTRY glEndList (void); -WINGDIAPI void APIENTRY glEvalCoord1d (GLdouble u); -WINGDIAPI void APIENTRY glEvalCoord1dv (const GLdouble *u); -WINGDIAPI void APIENTRY glEvalCoord1f (GLfloat u); -WINGDIAPI void APIENTRY glEvalCoord1fv (const GLfloat *u); -WINGDIAPI void APIENTRY glEvalCoord2d (GLdouble u, GLdouble v); -WINGDIAPI void APIENTRY glEvalCoord2dv (const GLdouble *u); -WINGDIAPI void APIENTRY glEvalCoord2f (GLfloat u, GLfloat v); -WINGDIAPI void APIENTRY glEvalCoord2fv (const GLfloat *u); -WINGDIAPI void APIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2); -WINGDIAPI void APIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); -WINGDIAPI void APIENTRY glEvalPoint1 (GLint i); -WINGDIAPI void APIENTRY glEvalPoint2 (GLint i, GLint j); -WINGDIAPI void APIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer); -WINGDIAPI void APIENTRY glFinish (void); -WINGDIAPI void APIENTRY glFlush (void); -WINGDIAPI void APIENTRY glFogf (GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glFogfv (GLenum pname, const GLfloat *params); -WINGDIAPI void APIENTRY glFogi (GLenum pname, GLint param); -WINGDIAPI void APIENTRY glFogiv (GLenum pname, const GLint *params); -WINGDIAPI void APIENTRY glFrontFace (GLenum mode); -WINGDIAPI void APIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -WINGDIAPI GLuint APIENTRY glGenLists (GLsizei range); -WINGDIAPI void APIENTRY glGenTextures (GLsizei n, GLuint *textures); -WINGDIAPI void APIENTRY glGetBooleanv (GLenum pname, GLboolean *params); -WINGDIAPI void APIENTRY glGetClipPlane (GLenum plane, GLdouble *equation); -WINGDIAPI void APIENTRY glGetDoublev (GLenum pname, GLdouble *params); -WINGDIAPI GLenum APIENTRY glGetError (void); -WINGDIAPI void APIENTRY glGetFloatv (GLenum pname, GLfloat *params); -WINGDIAPI void APIENTRY glGetIntegerv (GLenum pname, GLint *params); -WINGDIAPI void APIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params); -WINGDIAPI void APIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params); -WINGDIAPI void APIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v); -WINGDIAPI void APIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v); -WINGDIAPI void APIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v); -WINGDIAPI void APIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); -WINGDIAPI void APIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params); -WINGDIAPI void APIENTRY glGetPixelMapfv (GLenum map, GLfloat *values); -WINGDIAPI void APIENTRY glGetPixelMapuiv (GLenum map, GLuint *values); -WINGDIAPI void APIENTRY glGetPixelMapusv (GLenum map, GLushort *values); -WINGDIAPI void APIENTRY glGetPointerv (GLenum pname, GLvoid* *params); -WINGDIAPI void APIENTRY glGetPolygonStipple (GLubyte *mask); -WINGDIAPI const GLubyte * APIENTRY glGetString (GLenum name); -WINGDIAPI void APIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); -WINGDIAPI void APIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params); -WINGDIAPI void APIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params); -WINGDIAPI void APIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params); -WINGDIAPI void APIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params); -WINGDIAPI void APIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -WINGDIAPI void APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); -WINGDIAPI void APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); -WINGDIAPI void APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -WINGDIAPI void APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -WINGDIAPI void APIENTRY glHint (GLenum target, GLenum mode); -WINGDIAPI void APIENTRY glIndexMask (GLuint mask); -WINGDIAPI void APIENTRY glIndexPointer (GLenum type, GLsizei stride, const GLvoid *pointer); -WINGDIAPI void APIENTRY glIndexd (GLdouble c); -WINGDIAPI void APIENTRY glIndexdv (const GLdouble *c); -WINGDIAPI void APIENTRY glIndexf (GLfloat c); -WINGDIAPI void APIENTRY glIndexfv (const GLfloat *c); -WINGDIAPI void APIENTRY glIndexi (GLint c); -WINGDIAPI void APIENTRY glIndexiv (const GLint *c); -WINGDIAPI void APIENTRY glIndexs (GLshort c); -WINGDIAPI void APIENTRY glIndexsv (const GLshort *c); -WINGDIAPI void APIENTRY glIndexub (GLubyte c); -WINGDIAPI void APIENTRY glIndexubv (const GLubyte *c); -WINGDIAPI void APIENTRY glInitNames (void); -WINGDIAPI void APIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const GLvoid *pointer); -WINGDIAPI GLboolean APIENTRY glIsEnabled (GLenum cap); -WINGDIAPI GLboolean APIENTRY glIsList (GLuint list); -WINGDIAPI GLboolean APIENTRY glIsTexture (GLuint texture); -WINGDIAPI void APIENTRY glLightModelf (GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glLightModelfv (GLenum pname, const GLfloat *params); -WINGDIAPI void APIENTRY glLightModeli (GLenum pname, GLint param); -WINGDIAPI void APIENTRY glLightModeliv (GLenum pname, const GLint *params); -WINGDIAPI void APIENTRY glLightf (GLenum light, GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params); -WINGDIAPI void APIENTRY glLighti (GLenum light, GLenum pname, GLint param); -WINGDIAPI void APIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params); -WINGDIAPI void APIENTRY glLineStipple (GLint factor, GLushort pattern); -WINGDIAPI void APIENTRY glLineWidth (GLfloat width); -WINGDIAPI void APIENTRY glListBase (GLuint base); -WINGDIAPI void APIENTRY glLoadIdentity (void); -WINGDIAPI void APIENTRY glLoadMatrixd (const GLdouble *m); -WINGDIAPI void APIENTRY glLoadMatrixf (const GLfloat *m); -WINGDIAPI void APIENTRY glLoadName (GLuint name); -WINGDIAPI void APIENTRY glLogicOp (GLenum opcode); -WINGDIAPI void APIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -WINGDIAPI void APIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -WINGDIAPI void APIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -WINGDIAPI void APIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -WINGDIAPI void APIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2); -WINGDIAPI void APIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2); -WINGDIAPI void APIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); -WINGDIAPI void APIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); -WINGDIAPI void APIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); -WINGDIAPI void APIENTRY glMateriali (GLenum face, GLenum pname, GLint param); -WINGDIAPI void APIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params); -WINGDIAPI void APIENTRY glMatrixMode (GLenum mode); -WINGDIAPI void APIENTRY glMultMatrixd (const GLdouble *m); -WINGDIAPI void APIENTRY glMultMatrixf (const GLfloat *m); -WINGDIAPI void APIENTRY glNewList (GLuint list, GLenum mode); -WINGDIAPI void APIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz); -WINGDIAPI void APIENTRY glNormal3bv (const GLbyte *v); -WINGDIAPI void APIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz); -WINGDIAPI void APIENTRY glNormal3dv (const GLdouble *v); -WINGDIAPI void APIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); -WINGDIAPI void APIENTRY glNormal3fv (const GLfloat *v); -WINGDIAPI void APIENTRY glNormal3i (GLint nx, GLint ny, GLint nz); -WINGDIAPI void APIENTRY glNormal3iv (const GLint *v); -WINGDIAPI void APIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz); -WINGDIAPI void APIENTRY glNormal3sv (const GLshort *v); -WINGDIAPI void APIENTRY glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer); -WINGDIAPI void APIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -WINGDIAPI void APIENTRY glPassThrough (GLfloat token); -WINGDIAPI void APIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values); -WINGDIAPI void APIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values); -WINGDIAPI void APIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values); -WINGDIAPI void APIENTRY glPixelStoref (GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glPixelStorei (GLenum pname, GLint param); -WINGDIAPI void APIENTRY glPixelTransferf (GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glPixelTransferi (GLenum pname, GLint param); -WINGDIAPI void APIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor); -WINGDIAPI void APIENTRY glPointSize (GLfloat size); -WINGDIAPI void APIENTRY glPolygonMode (GLenum face, GLenum mode); -WINGDIAPI void APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -WINGDIAPI void APIENTRY glPolygonStipple (const GLubyte *mask); -WINGDIAPI void APIENTRY glPopAttrib (void); -WINGDIAPI void APIENTRY glPopClientAttrib (void); -WINGDIAPI void APIENTRY glPopMatrix (void); -WINGDIAPI void APIENTRY glPopName (void); -WINGDIAPI void APIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities); -WINGDIAPI void APIENTRY glPushAttrib (GLbitfield mask); -WINGDIAPI void APIENTRY glPushClientAttrib (GLbitfield mask); -WINGDIAPI void APIENTRY glPushMatrix (void); -WINGDIAPI void APIENTRY glPushName (GLuint name); -WINGDIAPI void APIENTRY glRasterPos2d (GLdouble x, GLdouble y); -WINGDIAPI void APIENTRY glRasterPos2dv (const GLdouble *v); -WINGDIAPI void APIENTRY glRasterPos2f (GLfloat x, GLfloat y); -WINGDIAPI void APIENTRY glRasterPos2fv (const GLfloat *v); -WINGDIAPI void APIENTRY glRasterPos2i (GLint x, GLint y); -WINGDIAPI void APIENTRY glRasterPos2iv (const GLint *v); -WINGDIAPI void APIENTRY glRasterPos2s (GLshort x, GLshort y); -WINGDIAPI void APIENTRY glRasterPos2sv (const GLshort *v); -WINGDIAPI void APIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z); -WINGDIAPI void APIENTRY glRasterPos3dv (const GLdouble *v); -WINGDIAPI void APIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z); -WINGDIAPI void APIENTRY glRasterPos3fv (const GLfloat *v); -WINGDIAPI void APIENTRY glRasterPos3i (GLint x, GLint y, GLint z); -WINGDIAPI void APIENTRY glRasterPos3iv (const GLint *v); -WINGDIAPI void APIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z); -WINGDIAPI void APIENTRY glRasterPos3sv (const GLshort *v); -WINGDIAPI void APIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -WINGDIAPI void APIENTRY glRasterPos4dv (const GLdouble *v); -WINGDIAPI void APIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -WINGDIAPI void APIENTRY glRasterPos4fv (const GLfloat *v); -WINGDIAPI void APIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w); -WINGDIAPI void APIENTRY glRasterPos4iv (const GLint *v); -WINGDIAPI void APIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w); -WINGDIAPI void APIENTRY glRasterPos4sv (const GLshort *v); -WINGDIAPI void APIENTRY glReadBuffer (GLenum mode); -WINGDIAPI void APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); -WINGDIAPI void APIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); -WINGDIAPI void APIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2); -WINGDIAPI void APIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); -WINGDIAPI void APIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2); -WINGDIAPI void APIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2); -WINGDIAPI void APIENTRY glRectiv (const GLint *v1, const GLint *v2); -WINGDIAPI void APIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2); -WINGDIAPI void APIENTRY glRectsv (const GLshort *v1, const GLshort *v2); -WINGDIAPI GLint APIENTRY glRenderMode (GLenum mode); -WINGDIAPI void APIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -WINGDIAPI void APIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -WINGDIAPI void APIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z); -WINGDIAPI void APIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z); -WINGDIAPI void APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -WINGDIAPI void APIENTRY glSelectBuffer (GLsizei size, GLuint *buffer); -WINGDIAPI void APIENTRY glShadeModel (GLenum mode); -WINGDIAPI void APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -WINGDIAPI void APIENTRY glStencilMask (GLuint mask); -WINGDIAPI void APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -WINGDIAPI void APIENTRY glTexCoord1d (GLdouble s); -WINGDIAPI void APIENTRY glTexCoord1dv (const GLdouble *v); -WINGDIAPI void APIENTRY glTexCoord1f (GLfloat s); -WINGDIAPI void APIENTRY glTexCoord1fv (const GLfloat *v); -WINGDIAPI void APIENTRY glTexCoord1i (GLint s); -WINGDIAPI void APIENTRY glTexCoord1iv (const GLint *v); -WINGDIAPI void APIENTRY glTexCoord1s (GLshort s); -WINGDIAPI void APIENTRY glTexCoord1sv (const GLshort *v); -WINGDIAPI void APIENTRY glTexCoord2d (GLdouble s, GLdouble t); -WINGDIAPI void APIENTRY glTexCoord2dv (const GLdouble *v); -WINGDIAPI void APIENTRY glTexCoord2f (GLfloat s, GLfloat t); -WINGDIAPI void APIENTRY glTexCoord2fv (const GLfloat *v); -WINGDIAPI void APIENTRY glTexCoord2i (GLint s, GLint t); -WINGDIAPI void APIENTRY glTexCoord2iv (const GLint *v); -WINGDIAPI void APIENTRY glTexCoord2s (GLshort s, GLshort t); -WINGDIAPI void APIENTRY glTexCoord2sv (const GLshort *v); -WINGDIAPI void APIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r); -WINGDIAPI void APIENTRY glTexCoord3dv (const GLdouble *v); -WINGDIAPI void APIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r); -WINGDIAPI void APIENTRY glTexCoord3fv (const GLfloat *v); -WINGDIAPI void APIENTRY glTexCoord3i (GLint s, GLint t, GLint r); -WINGDIAPI void APIENTRY glTexCoord3iv (const GLint *v); -WINGDIAPI void APIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r); -WINGDIAPI void APIENTRY glTexCoord3sv (const GLshort *v); -WINGDIAPI void APIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q); -WINGDIAPI void APIENTRY glTexCoord4dv (const GLdouble *v); -WINGDIAPI void APIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q); -WINGDIAPI void APIENTRY glTexCoord4fv (const GLfloat *v); -WINGDIAPI void APIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q); -WINGDIAPI void APIENTRY glTexCoord4iv (const GLint *v); -WINGDIAPI void APIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q); -WINGDIAPI void APIENTRY glTexCoord4sv (const GLshort *v); -WINGDIAPI void APIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -WINGDIAPI void APIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); -WINGDIAPI void APIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param); -WINGDIAPI void APIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params); -WINGDIAPI void APIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param); -WINGDIAPI void APIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params); -WINGDIAPI void APIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params); -WINGDIAPI void APIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param); -WINGDIAPI void APIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params); -WINGDIAPI void APIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -WINGDIAPI void APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -WINGDIAPI void APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -WINGDIAPI void APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -WINGDIAPI void APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -WINGDIAPI void APIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -WINGDIAPI void APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -WINGDIAPI void APIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z); -WINGDIAPI void APIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z); -WINGDIAPI void APIENTRY glVertex2d (GLdouble x, GLdouble y); -WINGDIAPI void APIENTRY glVertex2dv (const GLdouble *v); -WINGDIAPI void APIENTRY glVertex2f (GLfloat x, GLfloat y); -WINGDIAPI void APIENTRY glVertex2fv (const GLfloat *v); -WINGDIAPI void APIENTRY glVertex2i (GLint x, GLint y); -WINGDIAPI void APIENTRY glVertex2iv (const GLint *v); -WINGDIAPI void APIENTRY glVertex2s (GLshort x, GLshort y); -WINGDIAPI void APIENTRY glVertex2sv (const GLshort *v); -WINGDIAPI void APIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z); -WINGDIAPI void APIENTRY glVertex3dv (const GLdouble *v); -WINGDIAPI void APIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z); -WINGDIAPI void APIENTRY glVertex3fv (const GLfloat *v); -WINGDIAPI void APIENTRY glVertex3i (GLint x, GLint y, GLint z); -WINGDIAPI void APIENTRY glVertex3iv (const GLint *v); -WINGDIAPI void APIENTRY glVertex3s (GLshort x, GLshort y, GLshort z); -WINGDIAPI void APIENTRY glVertex3sv (const GLshort *v); -WINGDIAPI void APIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -WINGDIAPI void APIENTRY glVertex4dv (const GLdouble *v); -WINGDIAPI void APIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -WINGDIAPI void APIENTRY glVertex4fv (const GLfloat *v); -WINGDIAPI void APIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w); -WINGDIAPI void APIENTRY glVertex4iv (const GLint *v); -WINGDIAPI void APIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w); -WINGDIAPI void APIENTRY glVertex4sv (const GLshort *v); -WINGDIAPI void APIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -WINGDIAPI void APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); - -/* EXT_vertex_array */ -typedef void (APIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i); -typedef void (APIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); -typedef void (APIENTRY * PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params); -typedef void (APIENTRY * PFNGLARRAYELEMENTARRAYEXTPROC)(GLenum mode, GLsizei count, const GLvoid* pi); - -/* WIN_draw_range_elements */ -typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTSWINPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); - -/* WIN_swap_hint */ -typedef void (APIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height); - -/* EXT_paletted_texture */ -typedef void (APIENTRY * PFNGLCOLORTABLEEXTPROC) - (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, - GLenum type, const GLvoid *data); -typedef void (APIENTRY * PFNGLCOLORSUBTABLEEXTPROC) - (GLenum target, GLsizei start, GLsizei count, GLenum format, - GLenum type, const GLvoid *data); -typedef void (APIENTRY * PFNGLGETCOLORTABLEEXTPROC) - (GLenum target, GLenum format, GLenum type, GLvoid *data); -typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) - (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) - (GLenum target, GLenum pname, GLfloat *params); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#ifdef __cplusplus -} -#endif - -#endif /* __GL_H__ */ -#endif /* __gl_h_ */ diff --git a/win64/include/gles/GLU.h b/win64/include/gles/GLU.h deleted file mode 100644 index d10a6821..00000000 --- a/win64/include/gles/GLU.h +++ /dev/null @@ -1,591 +0,0 @@ -/*++ BUILD Version: 0004 // Increment this if a change has global effects - -Copyright (c) 1985-95, Microsoft Corporation - -Module Name: - - glu.h - -Abstract: - - Procedure declarations, constant definitions and macros for the OpenGL - Utility Library. - ---*/ - -#ifndef __glu_h__ -#ifndef __GLU_H__ - -#define __glu_h__ -#define __GLU_H__ - -#include <winapifamily.h> -#include <GL/gl.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 1991-1993, Silicon Graphics, Inc. -** All Rights Reserved. -** -** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.; -** the contents of this file may not be disclosed to third parties, copied or -** duplicated in any form, in whole or in part, without the prior written -** permission of Silicon Graphics, Inc. -** -** RESTRICTED RIGHTS LEGEND: -** Use, duplication or disclosure by the Government is subject to restrictions -** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data -** and Computer Software clause at DFARS 252.227-7013, and/or in similar or -** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished - -** rights reserved under the Copyright Laws of the United States. -*/ - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -/* -** Return the error string associated with a particular error code. -** This will return 0 for an invalid error code. -** -** The generic function prototype that can be compiled for ANSI or Unicode -** is defined as follows: -** -** LPCTSTR APIENTRY gluErrorStringWIN (GLenum errCode); -*/ -#ifdef UNICODE -#define gluErrorStringWIN(errCode) ((LPCSTR) gluErrorUnicodeStringEXT(errCode)) -#else -#define gluErrorStringWIN(errCode) ((LPCWSTR) gluErrorString(errCode)) -#endif - -const GLubyte* APIENTRY gluErrorString ( - GLenum errCode); - -const wchar_t* APIENTRY gluErrorUnicodeStringEXT ( - GLenum errCode); - -const GLubyte* APIENTRY gluGetString ( - GLenum name); - -void APIENTRY gluOrtho2D ( - GLdouble left, - GLdouble right, - GLdouble bottom, - GLdouble top); - -void APIENTRY gluPerspective ( - GLdouble fovy, - GLdouble aspect, - GLdouble zNear, - GLdouble zFar); - -void APIENTRY gluPickMatrix ( - GLdouble x, - GLdouble y, - GLdouble width, - GLdouble height, - GLint viewport[4]); - -void APIENTRY gluLookAt ( - GLdouble eyex, - GLdouble eyey, - GLdouble eyez, - GLdouble centerx, - GLdouble centery, - GLdouble centerz, - GLdouble upx, - GLdouble upy, - GLdouble upz); - -int APIENTRY gluProject ( - GLdouble objx, - GLdouble objy, - GLdouble objz, - const GLdouble modelMatrix[16], - const GLdouble projMatrix[16], - const GLint viewport[4], - GLdouble *winx, - GLdouble *winy, - GLdouble *winz); - -int APIENTRY gluUnProject ( - GLdouble winx, - GLdouble winy, - GLdouble winz, - const GLdouble modelMatrix[16], - const GLdouble projMatrix[16], - const GLint viewport[4], - GLdouble *objx, - GLdouble *objy, - GLdouble *objz); - - -int APIENTRY gluScaleImage ( - GLenum format, - GLint widthin, - GLint heightin, - GLenum typein, - const void *datain, - GLint widthout, - GLint heightout, - GLenum typeout, - void *dataout); - - -int APIENTRY gluBuild1DMipmaps ( - GLenum target, - GLint components, - GLint width, - GLenum format, - GLenum type, - const void *data); - -int APIENTRY gluBuild2DMipmaps ( - GLenum target, - GLint components, - GLint width, - GLint height, - GLenum format, - GLenum type, - const void *data); - -#ifdef __cplusplus - -class GLUnurbs; -class GLUquadric; -class GLUtesselator; - -/* backwards compatibility: */ -typedef class GLUnurbs GLUnurbsObj; -typedef class GLUquadric GLUquadricObj; -typedef class GLUtesselator GLUtesselatorObj; -typedef class GLUtesselator GLUtriangulatorObj; - -#else - -typedef struct GLUnurbs GLUnurbs; -typedef struct GLUquadric GLUquadric; -typedef struct GLUtesselator GLUtesselator; - -/* backwards compatibility: */ -typedef struct GLUnurbs GLUnurbsObj; -typedef struct GLUquadric GLUquadricObj; -typedef struct GLUtesselator GLUtesselatorObj; -typedef struct GLUtesselator GLUtriangulatorObj; - -#endif - - -GLUquadric* APIENTRY gluNewQuadric (void); -void APIENTRY gluDeleteQuadric ( - GLUquadric *state); - -void APIENTRY gluQuadricNormals ( - GLUquadric *quadObject, - GLenum normals); - -void APIENTRY gluQuadricTexture ( - GLUquadric *quadObject, - GLboolean textureCoords); - -void APIENTRY gluQuadricOrientation ( - GLUquadric *quadObject, - GLenum orientation); - -void APIENTRY gluQuadricDrawStyle ( - GLUquadric *quadObject, - GLenum drawStyle); - -void APIENTRY gluCylinder ( - GLUquadric *qobj, - GLdouble baseRadius, - GLdouble topRadius, - GLdouble height, - GLint slices, - GLint stacks); - -void APIENTRY gluDisk ( - GLUquadric *qobj, - GLdouble innerRadius, - GLdouble outerRadius, - GLint slices, - GLint loops); - -void APIENTRY gluPartialDisk ( - GLUquadric *qobj, - GLdouble innerRadius, - GLdouble outerRadius, - GLint slices, - GLint loops, - GLdouble startAngle, - GLdouble sweepAngle); - -void APIENTRY gluSphere ( - GLUquadric *qobj, - GLdouble radius, - GLint slices, - GLint stacks); - -void APIENTRY gluQuadricCallback ( - GLUquadric *qobj, - GLenum which, - void (CALLBACK* fn)()); - -GLUtesselator* APIENTRY gluNewTess( - void ); - -void APIENTRY gluDeleteTess( - GLUtesselator *tess ); - -void APIENTRY gluTessBeginPolygon( - GLUtesselator *tess, - void *polygon_data ); - -void APIENTRY gluTessBeginContour( - GLUtesselator *tess ); - -void APIENTRY gluTessVertex( - GLUtesselator *tess, - GLdouble coords[3], - void *data ); - -void APIENTRY gluTessEndContour( - GLUtesselator *tess ); - -void APIENTRY gluTessEndPolygon( - GLUtesselator *tess ); - -void APIENTRY gluTessProperty( - GLUtesselator *tess, - GLenum which, - GLdouble value ); - -void APIENTRY gluTessNormal( - GLUtesselator *tess, - GLdouble x, - GLdouble y, - GLdouble z ); - -void APIENTRY gluTessCallback( - GLUtesselator *tess, - GLenum which, - void (CALLBACK *fn)()); - -void APIENTRY gluGetTessProperty( - GLUtesselator *tess, - GLenum which, - GLdouble *value ); - -GLUnurbs* APIENTRY gluNewNurbsRenderer (void); - -void APIENTRY gluDeleteNurbsRenderer ( - GLUnurbs *nobj); - -void APIENTRY gluBeginSurface ( - GLUnurbs *nobj); - -void APIENTRY gluBeginCurve ( - GLUnurbs *nobj); - -void APIENTRY gluEndCurve ( - GLUnurbs *nobj); - -void APIENTRY gluEndSurface ( - GLUnurbs *nobj); - -void APIENTRY gluBeginTrim ( - GLUnurbs *nobj); - -void APIENTRY gluEndTrim ( - GLUnurbs *nobj); - -void APIENTRY gluPwlCurve ( - GLUnurbs *nobj, - GLint count, - GLfloat *array, - GLint stride, - GLenum type); - -void APIENTRY gluNurbsCurve ( - GLUnurbs *nobj, - GLint nknots, - GLfloat *knot, - GLint stride, - GLfloat *ctlarray, - GLint order, - GLenum type); - -void APIENTRY -gluNurbsSurface( - GLUnurbs *nobj, - GLint sknot_count, - float *sknot, - GLint tknot_count, - GLfloat *tknot, - GLint s_stride, - GLint t_stride, - GLfloat *ctlarray, - GLint sorder, - GLint torder, - GLenum type); - -void APIENTRY -gluLoadSamplingMatrices ( - GLUnurbs *nobj, - const GLfloat modelMatrix[16], - const GLfloat projMatrix[16], - const GLint viewport[4] ); - -void APIENTRY -gluNurbsProperty ( - GLUnurbs *nobj, - GLenum property, - GLfloat value ); - -void APIENTRY -gluGetNurbsProperty ( - GLUnurbs *nobj, - GLenum property, - GLfloat *value ); - -void APIENTRY -gluNurbsCallback ( - GLUnurbs *nobj, - GLenum which, - void (CALLBACK* fn)() ); - - -/**** Callback function prototypes ****/ - -/* gluQuadricCallback */ -typedef void (CALLBACK* GLUquadricErrorProc) (GLenum); - -/* gluTessCallback */ -typedef void (CALLBACK* GLUtessBeginProc) (GLenum); -typedef void (CALLBACK* GLUtessEdgeFlagProc) (GLboolean); -typedef void (CALLBACK* GLUtessVertexProc) (void *); -typedef void (CALLBACK* GLUtessEndProc) (void); -typedef void (CALLBACK* GLUtessErrorProc) (GLenum); -typedef void (CALLBACK* GLUtessCombineProc) (GLdouble[3], - void*[4], - GLfloat[4], - void** ); -typedef void (CALLBACK* GLUtessBeginDataProc) (GLenum, void *); -typedef void (CALLBACK* GLUtessEdgeFlagDataProc) (GLboolean, void *); -typedef void (CALLBACK* GLUtessVertexDataProc) (void *, void *); -typedef void (CALLBACK* GLUtessEndDataProc) (void *); -typedef void (CALLBACK* GLUtessErrorDataProc) (GLenum, void *); -typedef void (CALLBACK* GLUtessCombineDataProc) (GLdouble[3], - void*[4], - GLfloat[4], - void**, - void* ); - -/* gluNurbsCallback */ -typedef void (CALLBACK* GLUnurbsErrorProc) (GLenum); - - -/**** Generic constants ****/ - -/* Version */ -#define GLU_VERSION_1_1 1 -#define GLU_VERSION_1_2 1 - -/* Errors: (return value 0 = no error) */ -#define GLU_INVALID_ENUM 100900 -#define GLU_INVALID_VALUE 100901 -#define GLU_OUT_OF_MEMORY 100902 -#define GLU_INCOMPATIBLE_GL_VERSION 100903 - -/* StringName */ -#define GLU_VERSION 100800 -#define GLU_EXTENSIONS 100801 - -/* Boolean */ -#define GLU_TRUE GL_TRUE -#define GLU_FALSE GL_FALSE - - -/**** Quadric constants ****/ - -/* QuadricNormal */ -#define GLU_SMOOTH 100000 -#define GLU_FLAT 100001 -#define GLU_NONE 100002 - -/* QuadricDrawStyle */ -#define GLU_POINT 100010 -#define GLU_LINE 100011 -#define GLU_FILL 100012 -#define GLU_SILHOUETTE 100013 - -/* QuadricOrientation */ -#define GLU_OUTSIDE 100020 -#define GLU_INSIDE 100021 - -/* Callback types: */ -/* GLU_ERROR 100103 */ - - -/**** Tesselation constants ****/ - -#define GLU_TESS_MAX_COORD 1.0e150 - -/* TessProperty */ -#define GLU_TESS_WINDING_RULE 100140 -#define GLU_TESS_BOUNDARY_ONLY 100141 -#define GLU_TESS_TOLERANCE 100142 - -/* TessWinding */ -#define GLU_TESS_WINDING_ODD 100130 -#define GLU_TESS_WINDING_NONZERO 100131 -#define GLU_TESS_WINDING_POSITIVE 100132 -#define GLU_TESS_WINDING_NEGATIVE 100133 -#define GLU_TESS_WINDING_ABS_GEQ_TWO 100134 - -/* TessCallback */ -#define GLU_TESS_BEGIN 100100 /* void (CALLBACK*)(GLenum type) */ -#define GLU_TESS_VERTEX 100101 /* void (CALLBACK*)(void *data) */ -#define GLU_TESS_END 100102 /* void (CALLBACK*)(void) */ -#define GLU_TESS_ERROR 100103 /* void (CALLBACK*)(GLenum errno) */ -#define GLU_TESS_EDGE_FLAG 100104 /* void (CALLBACK*)(GLboolean boundaryEdge) */ -#define GLU_TESS_COMBINE 100105 /* void (CALLBACK*)(GLdouble coords[3], - void *data[4], - GLfloat weight[4], - void **dataOut) */ -#define GLU_TESS_BEGIN_DATA 100106 /* void (CALLBACK*)(GLenum type, - void *polygon_data) */ -#define GLU_TESS_VERTEX_DATA 100107 /* void (CALLBACK*)(void *data, - void *polygon_data) */ -#define GLU_TESS_END_DATA 100108 /* void (CALLBACK*)(void *polygon_data) */ -#define GLU_TESS_ERROR_DATA 100109 /* void (CALLBACK*)(GLenum errno, - void *polygon_data) */ -#define GLU_TESS_EDGE_FLAG_DATA 100110 /* void (CALLBACK*)(GLboolean boundaryEdge, - void *polygon_data) */ -#define GLU_TESS_COMBINE_DATA 100111 /* void (CALLBACK*)(GLdouble coords[3], - void *data[4], - GLfloat weight[4], - void **dataOut, - void *polygon_data) */ - -/* TessError */ -#define GLU_TESS_ERROR1 100151 -#define GLU_TESS_ERROR2 100152 -#define GLU_TESS_ERROR3 100153 -#define GLU_TESS_ERROR4 100154 -#define GLU_TESS_ERROR5 100155 -#define GLU_TESS_ERROR6 100156 -#define GLU_TESS_ERROR7 100157 -#define GLU_TESS_ERROR8 100158 - -#define GLU_TESS_MISSING_BEGIN_POLYGON GLU_TESS_ERROR1 -#define GLU_TESS_MISSING_BEGIN_CONTOUR GLU_TESS_ERROR2 -#define GLU_TESS_MISSING_END_POLYGON GLU_TESS_ERROR3 -#define GLU_TESS_MISSING_END_CONTOUR GLU_TESS_ERROR4 -#define GLU_TESS_COORD_TOO_LARGE GLU_TESS_ERROR5 -#define GLU_TESS_NEED_COMBINE_CALLBACK GLU_TESS_ERROR6 - -/**** NURBS constants ****/ - -/* NurbsProperty */ -#define GLU_AUTO_LOAD_MATRIX 100200 -#define GLU_CULLING 100201 -#define GLU_SAMPLING_TOLERANCE 100203 -#define GLU_DISPLAY_MODE 100204 -#define GLU_PARAMETRIC_TOLERANCE 100202 -#define GLU_SAMPLING_METHOD 100205 -#define GLU_U_STEP 100206 -#define GLU_V_STEP 100207 - -/* NurbsSampling */ -#define GLU_PATH_LENGTH 100215 -#define GLU_PARAMETRIC_ERROR 100216 -#define GLU_DOMAIN_DISTANCE 100217 - - -/* NurbsTrim */ -#define GLU_MAP1_TRIM_2 100210 -#define GLU_MAP1_TRIM_3 100211 - -/* NurbsDisplay */ -/* GLU_FILL 100012 */ -#define GLU_OUTLINE_POLYGON 100240 -#define GLU_OUTLINE_PATCH 100241 - -/* NurbsCallback */ -/* GLU_ERROR 100103 */ - -/* NurbsErrors */ -#define GLU_NURBS_ERROR1 100251 -#define GLU_NURBS_ERROR2 100252 -#define GLU_NURBS_ERROR3 100253 -#define GLU_NURBS_ERROR4 100254 -#define GLU_NURBS_ERROR5 100255 -#define GLU_NURBS_ERROR6 100256 -#define GLU_NURBS_ERROR7 100257 -#define GLU_NURBS_ERROR8 100258 -#define GLU_NURBS_ERROR9 100259 -#define GLU_NURBS_ERROR10 100260 -#define GLU_NURBS_ERROR11 100261 -#define GLU_NURBS_ERROR12 100262 -#define GLU_NURBS_ERROR13 100263 -#define GLU_NURBS_ERROR14 100264 -#define GLU_NURBS_ERROR15 100265 -#define GLU_NURBS_ERROR16 100266 -#define GLU_NURBS_ERROR17 100267 -#define GLU_NURBS_ERROR18 100268 -#define GLU_NURBS_ERROR19 100269 -#define GLU_NURBS_ERROR20 100270 -#define GLU_NURBS_ERROR21 100271 -#define GLU_NURBS_ERROR22 100272 -#define GLU_NURBS_ERROR23 100273 -#define GLU_NURBS_ERROR24 100274 -#define GLU_NURBS_ERROR25 100275 -#define GLU_NURBS_ERROR26 100276 -#define GLU_NURBS_ERROR27 100277 -#define GLU_NURBS_ERROR28 100278 -#define GLU_NURBS_ERROR29 100279 -#define GLU_NURBS_ERROR30 100280 -#define GLU_NURBS_ERROR31 100281 -#define GLU_NURBS_ERROR32 100282 -#define GLU_NURBS_ERROR33 100283 -#define GLU_NURBS_ERROR34 100284 -#define GLU_NURBS_ERROR35 100285 -#define GLU_NURBS_ERROR36 100286 -#define GLU_NURBS_ERROR37 100287 - -/**** Backwards compatibility for old tesselator ****/ - -void APIENTRY gluBeginPolygon( GLUtesselator *tess ); - -void APIENTRY gluNextContour( GLUtesselator *tess, - GLenum type ); - -void APIENTRY gluEndPolygon( GLUtesselator *tess ); - -/* Contours types -- obsolete! */ -#define GLU_CW 100120 -#define GLU_CCW 100121 -#define GLU_INTERIOR 100122 -#define GLU_EXTERIOR 100123 -#define GLU_UNKNOWN 100124 - -/* Names without "TESS_" prefix */ -#define GLU_BEGIN GLU_TESS_BEGIN -#define GLU_VERTEX GLU_TESS_VERTEX -#define GLU_END GLU_TESS_END -#define GLU_ERROR GLU_TESS_ERROR -#define GLU_EDGE_FLAG GLU_TESS_EDGE_FLAG - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#ifdef __cplusplus -} -#endif - -#endif /* __GLU_H__ */ -#endif /* __glu_h__ */ diff --git a/win64/include/gles/eglew.h b/win64/include/gles/eglew.h new file mode 100644 index 00000000..46701479 --- /dev/null +++ b/win64/include/gles/eglew.h @@ -0,0 +1,2618 @@ +/* +** The OpenGL Extension Wrangler Library +** Copyright (C) 2008-2017, Nigel Stewart <nigels[]users sourceforge net> +** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org> +** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org> +** Copyright (C) 2002, Lev Povalahev +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are met: +** +** * Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** * The name of the author may be used to endorse or promote products +** derived from this software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +** THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + * Mesa 3-D graphics library + * Version: 7.0 + * + * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* +** Copyright (c) 2007 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#ifndef __eglew_h__ +#define __eglew_h__ +#define __EGLEW_H__ + +#ifdef __eglext_h_ +#error eglext.h included before eglew.h +#endif + +#if defined(__egl_h_) +#error egl.h included before eglew.h +#endif + +#define __eglext_h_ + +#define __egl_h_ + +#ifndef EGLAPIENTRY +#define EGLAPIENTRY +#endif +#ifndef EGLAPI +#define EGLAPI extern +#endif + +/* EGL Types */ +#include <sys/types.h> + +#include <KHR/khrplatform.h> +#include <EGL/eglplatform.h> + +#include <GL/glew.h> + +#ifdef __cplusplus +extern "C" { +#endif + +typedef int32_t EGLint; + +typedef unsigned int EGLBoolean; +typedef void *EGLDisplay; +typedef void *EGLConfig; +typedef void *EGLSurface; +typedef void *EGLContext; +typedef void (*__eglMustCastToProperFunctionPointerType)(void); + +typedef unsigned int EGLenum; +typedef void *EGLClientBuffer; + +typedef void *EGLSync; +typedef intptr_t EGLAttrib; +typedef khronos_utime_nanoseconds_t EGLTime; +typedef void *EGLImage; + +typedef void *EGLSyncKHR; +typedef intptr_t EGLAttribKHR; +typedef void *EGLLabelKHR; +typedef void *EGLObjectKHR; +typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message); +typedef khronos_utime_nanoseconds_t EGLTimeKHR; +typedef void *EGLImageKHR; +typedef void *EGLStreamKHR; +typedef khronos_uint64_t EGLuint64KHR; +typedef int EGLNativeFileDescriptorKHR; +typedef khronos_ssize_t EGLsizeiANDROID; +typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize); +typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize); +typedef void *EGLDeviceEXT; +typedef void *EGLOutputLayerEXT; +typedef void *EGLOutputPortEXT; +typedef void *EGLSyncNV; +typedef khronos_utime_nanoseconds_t EGLTimeNV; +typedef khronos_utime_nanoseconds_t EGLuint64NV; +typedef khronos_stime_nanoseconds_t EGLnsecsANDROID; + +struct EGLClientPixmapHI; + +#define EGL_DONT_CARE ((EGLint)-1) + +#define EGL_NO_CONTEXT ((EGLContext)0) +#define EGL_NO_DISPLAY ((EGLDisplay)0) +#define EGL_NO_IMAGE ((EGLImage)0) +#define EGL_NO_SURFACE ((EGLSurface)0) +#define EGL_NO_SYNC ((EGLSync)0) + +#define EGL_UNKNOWN ((EGLint)-1) + +#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0) + +EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname); +/* ---------------------------- EGL_VERSION_1_0 ---------------------------- */ + +#ifndef EGL_VERSION_1_0 +#define EGL_VERSION_1_0 1 + +#define EGL_FALSE 0 +#define EGL_PBUFFER_BIT 0x0001 +#define EGL_TRUE 1 +#define EGL_PIXMAP_BIT 0x0002 +#define EGL_WINDOW_BIT 0x0004 +#define EGL_SUCCESS 0x3000 +#define EGL_NOT_INITIALIZED 0x3001 +#define EGL_BAD_ACCESS 0x3002 +#define EGL_BAD_ALLOC 0x3003 +#define EGL_BAD_ATTRIBUTE 0x3004 +#define EGL_BAD_CONFIG 0x3005 +#define EGL_BAD_CONTEXT 0x3006 +#define EGL_BAD_CURRENT_SURFACE 0x3007 +#define EGL_BAD_DISPLAY 0x3008 +#define EGL_BAD_MATCH 0x3009 +#define EGL_BAD_NATIVE_PIXMAP 0x300A +#define EGL_BAD_NATIVE_WINDOW 0x300B +#define EGL_BAD_PARAMETER 0x300C +#define EGL_BAD_SURFACE 0x300D +#define EGL_BUFFER_SIZE 0x3020 +#define EGL_ALPHA_SIZE 0x3021 +#define EGL_BLUE_SIZE 0x3022 +#define EGL_GREEN_SIZE 0x3023 +#define EGL_RED_SIZE 0x3024 +#define EGL_DEPTH_SIZE 0x3025 +#define EGL_STENCIL_SIZE 0x3026 +#define EGL_CONFIG_CAVEAT 0x3027 +#define EGL_CONFIG_ID 0x3028 +#define EGL_LEVEL 0x3029 +#define EGL_MAX_PBUFFER_HEIGHT 0x302A +#define EGL_MAX_PBUFFER_PIXELS 0x302B +#define EGL_MAX_PBUFFER_WIDTH 0x302C +#define EGL_NATIVE_RENDERABLE 0x302D +#define EGL_NATIVE_VISUAL_ID 0x302E +#define EGL_NATIVE_VISUAL_TYPE 0x302F +#define EGL_SAMPLES 0x3031 +#define EGL_SAMPLE_BUFFERS 0x3032 +#define EGL_SURFACE_TYPE 0x3033 +#define EGL_TRANSPARENT_TYPE 0x3034 +#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 +#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 +#define EGL_TRANSPARENT_RED_VALUE 0x3037 +#define EGL_NONE 0x3038 +#define EGL_SLOW_CONFIG 0x3050 +#define EGL_NON_CONFORMANT_CONFIG 0x3051 +#define EGL_TRANSPARENT_RGB 0x3052 +#define EGL_VENDOR 0x3053 +#define EGL_VERSION 0x3054 +#define EGL_EXTENSIONS 0x3055 +#define EGL_HEIGHT 0x3056 +#define EGL_WIDTH 0x3057 +#define EGL_LARGEST_PBUFFER 0x3058 +#define EGL_DRAW 0x3059 +#define EGL_READ 0x305A +#define EGL_CORE_NATIVE_ENGINE 0x305B + +typedef EGLBoolean ( * PFNEGLCHOOSECONFIGPROC) (EGLDisplay dpy, const EGLint * attrib_list, EGLConfig * configs, EGLint config_size, EGLint * num_config); +typedef EGLBoolean ( * PFNEGLCOPYBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); +typedef EGLContext ( * PFNEGLCREATECONTEXTPROC) (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint * attrib_list); +typedef EGLSurface ( * PFNEGLCREATEPBUFFERSURFACEPROC) (EGLDisplay dpy, EGLConfig config, const EGLint * attrib_list); +typedef EGLSurface ( * PFNEGLCREATEPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint * attrib_list); +typedef EGLSurface ( * PFNEGLCREATEWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint * attrib_list); +typedef EGLBoolean ( * PFNEGLDESTROYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx); +typedef EGLBoolean ( * PFNEGLDESTROYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface); +typedef EGLBoolean ( * PFNEGLGETCONFIGATTRIBPROC) (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint * value); +typedef EGLBoolean ( * PFNEGLGETCONFIGSPROC) (EGLDisplay dpy, EGLConfig * configs, EGLint config_size, EGLint * num_config); +typedef EGLDisplay ( * PFNEGLGETCURRENTDISPLAYPROC) ( void ); +typedef EGLSurface ( * PFNEGLGETCURRENTSURFACEPROC) (EGLint readdraw); +typedef EGLDisplay ( * PFNEGLGETDISPLAYPROC) (EGLNativeDisplayType display_id); +typedef EGLint ( * PFNEGLGETERRORPROC) ( void ); +typedef EGLBoolean ( * PFNEGLINITIALIZEPROC) (EGLDisplay dpy, EGLint * major, EGLint * minor); +typedef EGLBoolean ( * PFNEGLMAKECURRENTPROC) (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); +typedef EGLBoolean ( * PFNEGLQUERYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint * value); +typedef const char * ( * PFNEGLQUERYSTRINGPROC) (EGLDisplay dpy, EGLint name); +typedef EGLBoolean ( * PFNEGLQUERYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint * value); +typedef EGLBoolean ( * PFNEGLSWAPBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface); +typedef EGLBoolean ( * PFNEGLTERMINATEPROC) (EGLDisplay dpy); +typedef EGLBoolean ( * PFNEGLWAITGLPROC) ( void ); +typedef EGLBoolean ( * PFNEGLWAITNATIVEPROC) (EGLint engine); + +#define eglChooseConfig EGLEW_GET_FUN(__eglewChooseConfig) +#define eglCopyBuffers EGLEW_GET_FUN(__eglewCopyBuffers) +#define eglCreateContext EGLEW_GET_FUN(__eglewCreateContext) +#define eglCreatePbufferSurface EGLEW_GET_FUN(__eglewCreatePbufferSurface) +#define eglCreatePixmapSurface EGLEW_GET_FUN(__eglewCreatePixmapSurface) +#define eglCreateWindowSurface EGLEW_GET_FUN(__eglewCreateWindowSurface) +#define eglDestroyContext EGLEW_GET_FUN(__eglewDestroyContext) +#define eglDestroySurface EGLEW_GET_FUN(__eglewDestroySurface) +#define eglGetConfigAttrib EGLEW_GET_FUN(__eglewGetConfigAttrib) +#define eglGetConfigs EGLEW_GET_FUN(__eglewGetConfigs) +#define eglGetCurrentDisplay EGLEW_GET_FUN(__eglewGetCurrentDisplay) +#define eglGetCurrentSurface EGLEW_GET_FUN(__eglewGetCurrentSurface) +#define eglGetDisplay EGLEW_GET_FUN(__eglewGetDisplay) +#define eglGetError EGLEW_GET_FUN(__eglewGetError) +#define eglInitialize EGLEW_GET_FUN(__eglewInitialize) +#define eglMakeCurrent EGLEW_GET_FUN(__eglewMakeCurrent) +#define eglQueryContext EGLEW_GET_FUN(__eglewQueryContext) +#define eglQueryString EGLEW_GET_FUN(__eglewQueryString) +#define eglQuerySurface EGLEW_GET_FUN(__eglewQuerySurface) +#define eglSwapBuffers EGLEW_GET_FUN(__eglewSwapBuffers) +#define eglTerminate EGLEW_GET_FUN(__eglewTerminate) +#define eglWaitGL EGLEW_GET_FUN(__eglewWaitGL) +#define eglWaitNative EGLEW_GET_FUN(__eglewWaitNative) + +#define EGLEW_VERSION_1_0 EGLEW_GET_VAR(__EGLEW_VERSION_1_0) + +#endif /* EGL_VERSION_1_0 */ + +/* ---------------------------- EGL_VERSION_1_1 ---------------------------- */ + +#ifndef EGL_VERSION_1_1 +#define EGL_VERSION_1_1 1 + +#define EGL_CONTEXT_LOST 0x300E +#define EGL_BIND_TO_TEXTURE_RGB 0x3039 +#define EGL_BIND_TO_TEXTURE_RGBA 0x303A +#define EGL_MIN_SWAP_INTERVAL 0x303B +#define EGL_MAX_SWAP_INTERVAL 0x303C +#define EGL_NO_TEXTURE 0x305C +#define EGL_TEXTURE_RGB 0x305D +#define EGL_TEXTURE_RGBA 0x305E +#define EGL_TEXTURE_2D 0x305F +#define EGL_TEXTURE_FORMAT 0x3080 +#define EGL_TEXTURE_TARGET 0x3081 +#define EGL_MIPMAP_TEXTURE 0x3082 +#define EGL_MIPMAP_LEVEL 0x3083 +#define EGL_BACK_BUFFER 0x3084 + +typedef EGLBoolean ( * PFNEGLBINDTEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer); +typedef EGLBoolean ( * PFNEGLRELEASETEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer); +typedef EGLBoolean ( * PFNEGLSURFACEATTRIBPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); +typedef EGLBoolean ( * PFNEGLSWAPINTERVALPROC) (EGLDisplay dpy, EGLint interval); + +#define eglBindTexImage EGLEW_GET_FUN(__eglewBindTexImage) +#define eglReleaseTexImage EGLEW_GET_FUN(__eglewReleaseTexImage) +#define eglSurfaceAttrib EGLEW_GET_FUN(__eglewSurfaceAttrib) +#define eglSwapInterval EGLEW_GET_FUN(__eglewSwapInterval) + +#define EGLEW_VERSION_1_1 EGLEW_GET_VAR(__EGLEW_VERSION_1_1) + +#endif /* EGL_VERSION_1_1 */ + +/* ---------------------------- EGL_VERSION_1_2 ---------------------------- */ + +#ifndef EGL_VERSION_1_2 +#define EGL_VERSION_1_2 1 + +#define EGL_OPENGL_ES_BIT 0x0001 +#define EGL_OPENVG_BIT 0x0002 +#define EGL_LUMINANCE_SIZE 0x303D +#define EGL_ALPHA_MASK_SIZE 0x303E +#define EGL_COLOR_BUFFER_TYPE 0x303F +#define EGL_RENDERABLE_TYPE 0x3040 +#define EGL_SINGLE_BUFFER 0x3085 +#define EGL_RENDER_BUFFER 0x3086 +#define EGL_COLORSPACE 0x3087 +#define EGL_ALPHA_FORMAT 0x3088 +#define EGL_COLORSPACE_LINEAR 0x308A +#define EGL_ALPHA_FORMAT_NONPRE 0x308B +#define EGL_ALPHA_FORMAT_PRE 0x308C +#define EGL_CLIENT_APIS 0x308D +#define EGL_RGB_BUFFER 0x308E +#define EGL_LUMINANCE_BUFFER 0x308F +#define EGL_HORIZONTAL_RESOLUTION 0x3090 +#define EGL_VERTICAL_RESOLUTION 0x3091 +#define EGL_PIXEL_ASPECT_RATIO 0x3092 +#define EGL_SWAP_BEHAVIOR 0x3093 +#define EGL_BUFFER_PRESERVED 0x3094 +#define EGL_BUFFER_DESTROYED 0x3095 +#define EGL_OPENVG_IMAGE 0x3096 +#define EGL_CONTEXT_CLIENT_TYPE 0x3097 +#define EGL_OPENGL_ES_API 0x30A0 +#define EGL_OPENVG_API 0x30A1 +#define EGL_DISPLAY_SCALING 10000 + +typedef EGLBoolean ( * PFNEGLBINDAPIPROC) (EGLenum api); +typedef EGLSurface ( * PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC) (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint * attrib_list); +typedef EGLenum ( * PFNEGLQUERYAPIPROC) ( void ); +typedef EGLBoolean ( * PFNEGLRELEASETHREADPROC) ( void ); +typedef EGLBoolean ( * PFNEGLWAITCLIENTPROC) ( void ); + +#define eglBindAPI EGLEW_GET_FUN(__eglewBindAPI) +#define eglCreatePbufferFromClientBuffer EGLEW_GET_FUN(__eglewCreatePbufferFromClientBuffer) +#define eglQueryAPI EGLEW_GET_FUN(__eglewQueryAPI) +#define eglReleaseThread EGLEW_GET_FUN(__eglewReleaseThread) +#define eglWaitClient EGLEW_GET_FUN(__eglewWaitClient) + +#define EGLEW_VERSION_1_2 EGLEW_GET_VAR(__EGLEW_VERSION_1_2) + +#endif /* EGL_VERSION_1_2 */ + +/* ---------------------------- EGL_VERSION_1_3 ---------------------------- */ + +#ifndef EGL_VERSION_1_3 +#define EGL_VERSION_1_3 1 + +#define EGL_OPENGL_ES2_BIT 0x0004 +#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 +#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 +#define EGL_MATCH_NATIVE_PIXMAP 0x3041 +#define EGL_CONFORMANT 0x3042 +#define EGL_VG_COLORSPACE 0x3087 +#define EGL_VG_ALPHA_FORMAT 0x3088 +#define EGL_VG_COLORSPACE_LINEAR 0x308A +#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B +#define EGL_VG_ALPHA_FORMAT_PRE 0x308C +#define EGL_CONTEXT_CLIENT_VERSION 0x3098 + +#define EGLEW_VERSION_1_3 EGLEW_GET_VAR(__EGLEW_VERSION_1_3) + +#endif /* EGL_VERSION_1_3 */ + +/* ---------------------------- EGL_VERSION_1_4 ---------------------------- */ + +#ifndef EGL_VERSION_1_4 +#define EGL_VERSION_1_4 1 + +#define EGL_OPENGL_BIT 0x0008 +#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 +#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 +#define EGL_MULTISAMPLE_RESOLVE 0x3099 +#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A +#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B +#define EGL_OPENGL_API 0x30A2 + +typedef EGLContext ( * PFNEGLGETCURRENTCONTEXTPROC) ( void ); + +#define eglGetCurrentContext EGLEW_GET_FUN(__eglewGetCurrentContext) + +#define EGLEW_VERSION_1_4 EGLEW_GET_VAR(__EGLEW_VERSION_1_4) + +#endif /* EGL_VERSION_1_4 */ + +/* ---------------------------- EGL_VERSION_1_5 ---------------------------- */ + +#ifndef EGL_VERSION_1_5 +#define EGL_VERSION_1_5 1 + +#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001 +#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001 +#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define EGL_OPENGL_ES3_BIT 0x00000040 +#define EGL_GL_COLORSPACE_SRGB 0x3089 +#define EGL_GL_COLORSPACE_LINEAR 0x308A +#define EGL_CONTEXT_MAJOR_VERSION 0x3098 +#define EGL_CL_EVENT_HANDLE 0x309C +#define EGL_GL_COLORSPACE 0x309D +#define EGL_GL_TEXTURE_2D 0x30B1 +#define EGL_GL_TEXTURE_3D 0x30B2 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8 +#define EGL_GL_RENDERBUFFER 0x30B9 +#define EGL_GL_TEXTURE_LEVEL 0x30BC +#define EGL_GL_TEXTURE_ZOFFSET 0x30BD +#define EGL_IMAGE_PRESERVED 0x30D2 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0 +#define EGL_SYNC_STATUS 0x30F1 +#define EGL_SIGNALED 0x30F2 +#define EGL_UNSIGNALED 0x30F3 +#define EGL_TIMEOUT_EXPIRED 0x30F5 +#define EGL_CONDITION_SATISFIED 0x30F6 +#define EGL_SYNC_TYPE 0x30F7 +#define EGL_SYNC_CONDITION 0x30F8 +#define EGL_SYNC_FENCE 0x30F9 +#define EGL_CONTEXT_MINOR_VERSION 0x30FB +#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD +#define EGL_SYNC_CL_EVENT 0x30FE +#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF +#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0 +#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2 +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD +#define EGL_NO_RESET_NOTIFICATION 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF +#define EGL_FOREVER 0xFFFFFFFFFFFFFFFF + +typedef EGLint ( * PFNEGLCLIENTWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout); +typedef EGLImage ( * PFNEGLCREATEIMAGEPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib * attrib_list); +typedef EGLSurface ( * PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLAttrib * attrib_list); +typedef EGLSurface ( * PFNEGLCREATEPLATFORMWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void * native_window, const EGLAttrib * attrib_list); +typedef EGLSync ( * PFNEGLCREATESYNCPROC) (EGLDisplay dpy, EGLenum type, const EGLAttrib * attrib_list); +typedef EGLBoolean ( * PFNEGLDESTROYIMAGEPROC) (EGLDisplay dpy, EGLImage image); +typedef EGLBoolean ( * PFNEGLDESTROYSYNCPROC) (EGLDisplay dpy, EGLSync sync); +typedef EGLDisplay ( * PFNEGLGETPLATFORMDISPLAYPROC) (EGLenum platform, void * native_display, const EGLAttrib * attrib_list); +typedef EGLBoolean ( * PFNEGLGETSYNCATTRIBPROC) (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib * value); +typedef EGLBoolean ( * PFNEGLWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags); + +#define eglClientWaitSync EGLEW_GET_FUN(__eglewClientWaitSync) +#define eglCreateImage EGLEW_GET_FUN(__eglewCreateImage) +#define eglCreatePlatformPixmapSurface EGLEW_GET_FUN(__eglewCreatePlatformPixmapSurface) +#define eglCreatePlatformWindowSurface EGLEW_GET_FUN(__eglewCreatePlatformWindowSurface) +#define eglCreateSync EGLEW_GET_FUN(__eglewCreateSync) +#define eglDestroyImage EGLEW_GET_FUN(__eglewDestroyImage) +#define eglDestroySync EGLEW_GET_FUN(__eglewDestroySync) +#define eglGetPlatformDisplay EGLEW_GET_FUN(__eglewGetPlatformDisplay) +#define eglGetSyncAttrib EGLEW_GET_FUN(__eglewGetSyncAttrib) +#define eglWaitSync EGLEW_GET_FUN(__eglewWaitSync) + +#define EGLEW_VERSION_1_5 EGLEW_GET_VAR(__EGLEW_VERSION_1_5) + +#endif /* EGL_VERSION_1_5 */ + +/* ------------------------- EGL_ANDROID_blob_cache ------------------------ */ + +#ifndef EGL_ANDROID_blob_cache +#define EGL_ANDROID_blob_cache 1 + +typedef void ( * PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); + +#define eglSetBlobCacheFuncsANDROID EGLEW_GET_FUN(__eglewSetBlobCacheFuncsANDROID) + +#define EGLEW_ANDROID_blob_cache EGLEW_GET_VAR(__EGLEW_ANDROID_blob_cache) + +#endif /* EGL_ANDROID_blob_cache */ + +/* ---------------- EGL_ANDROID_create_native_client_buffer ---------------- */ + +#ifndef EGL_ANDROID_create_native_client_buffer +#define EGL_ANDROID_create_native_client_buffer 1 + +#define EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID 0x00000001 +#define EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID 0x00000002 +#define EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID 0x00000004 +#define EGL_NATIVE_BUFFER_USAGE_ANDROID 0x3143 + +typedef EGLClientBuffer ( * PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC) (const EGLint * attrib_list); + +#define eglCreateNativeClientBufferANDROID EGLEW_GET_FUN(__eglewCreateNativeClientBufferANDROID) + +#define EGLEW_ANDROID_create_native_client_buffer EGLEW_GET_VAR(__EGLEW_ANDROID_create_native_client_buffer) + +#endif /* EGL_ANDROID_create_native_client_buffer */ + +/* --------------------- EGL_ANDROID_framebuffer_target -------------------- */ + +#ifndef EGL_ANDROID_framebuffer_target +#define EGL_ANDROID_framebuffer_target 1 + +#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147 + +#define EGLEW_ANDROID_framebuffer_target EGLEW_GET_VAR(__EGLEW_ANDROID_framebuffer_target) + +#endif /* EGL_ANDROID_framebuffer_target */ + +/* ----------------- EGL_ANDROID_front_buffer_auto_refresh ----------------- */ + +#ifndef EGL_ANDROID_front_buffer_auto_refresh +#define EGL_ANDROID_front_buffer_auto_refresh 1 + +#define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C + +#define EGLEW_ANDROID_front_buffer_auto_refresh EGLEW_GET_VAR(__EGLEW_ANDROID_front_buffer_auto_refresh) + +#endif /* EGL_ANDROID_front_buffer_auto_refresh */ + +/* -------------------- EGL_ANDROID_image_native_buffer -------------------- */ + +#ifndef EGL_ANDROID_image_native_buffer +#define EGL_ANDROID_image_native_buffer 1 + +#define EGL_NATIVE_BUFFER_ANDROID 0x3140 + +#define EGLEW_ANDROID_image_native_buffer EGLEW_GET_VAR(__EGLEW_ANDROID_image_native_buffer) + +#endif /* EGL_ANDROID_image_native_buffer */ + +/* --------------------- EGL_ANDROID_native_fence_sync --------------------- */ + +#ifndef EGL_ANDROID_native_fence_sync +#define EGL_ANDROID_native_fence_sync 1 + +#define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144 +#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145 +#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146 + +typedef EGLint ( * PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync); + +#define eglDupNativeFenceFDANDROID EGLEW_GET_FUN(__eglewDupNativeFenceFDANDROID) + +#define EGLEW_ANDROID_native_fence_sync EGLEW_GET_VAR(__EGLEW_ANDROID_native_fence_sync) + +#endif /* EGL_ANDROID_native_fence_sync */ + +/* --------------------- EGL_ANDROID_presentation_time --------------------- */ + +#ifndef EGL_ANDROID_presentation_time +#define EGL_ANDROID_presentation_time 1 + +typedef EGLBoolean ( * PFNEGLPRESENTATIONTIMEANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time); + +#define eglPresentationTimeANDROID EGLEW_GET_FUN(__eglewPresentationTimeANDROID) + +#define EGLEW_ANDROID_presentation_time EGLEW_GET_VAR(__EGLEW_ANDROID_presentation_time) + +#endif /* EGL_ANDROID_presentation_time */ + +/* ------------------------- EGL_ANDROID_recordable ------------------------ */ + +#ifndef EGL_ANDROID_recordable +#define EGL_ANDROID_recordable 1 + +#define EGL_RECORDABLE_ANDROID 0x3142 + +#define EGLEW_ANDROID_recordable EGLEW_GET_VAR(__EGLEW_ANDROID_recordable) + +#endif /* EGL_ANDROID_recordable */ + +/* ---------------- EGL_ANGLE_d3d_share_handle_client_buffer --------------- */ + +#ifndef EGL_ANGLE_d3d_share_handle_client_buffer +#define EGL_ANGLE_d3d_share_handle_client_buffer 1 + +#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 + +#define EGLEW_ANGLE_d3d_share_handle_client_buffer EGLEW_GET_VAR(__EGLEW_ANGLE_d3d_share_handle_client_buffer) + +#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */ + +/* -------------------------- EGL_ANGLE_device_d3d ------------------------- */ + +#ifndef EGL_ANGLE_device_d3d +#define EGL_ANGLE_device_d3d 1 + +#define EGL_D3D9_DEVICE_ANGLE 0x33A0 +#define EGL_D3D11_DEVICE_ANGLE 0x33A1 + +#define EGLEW_ANGLE_device_d3d EGLEW_GET_VAR(__EGLEW_ANGLE_device_d3d) + +#endif /* EGL_ANGLE_device_d3d */ + +/* -------------------- EGL_ANGLE_query_surface_pointer -------------------- */ + +#ifndef EGL_ANGLE_query_surface_pointer +#define EGL_ANGLE_query_surface_pointer 1 + +typedef EGLBoolean ( * PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void ** value); + +#define eglQuerySurfacePointerANGLE EGLEW_GET_FUN(__eglewQuerySurfacePointerANGLE) + +#define EGLEW_ANGLE_query_surface_pointer EGLEW_GET_VAR(__EGLEW_ANGLE_query_surface_pointer) + +#endif /* EGL_ANGLE_query_surface_pointer */ + +/* ------------- EGL_ANGLE_surface_d3d_texture_2d_share_handle ------------- */ + +#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle +#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1 + +#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 + +#define EGLEW_ANGLE_surface_d3d_texture_2d_share_handle EGLEW_GET_VAR(__EGLEW_ANGLE_surface_d3d_texture_2d_share_handle) + +#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */ + +/* ---------------------- EGL_ANGLE_window_fixed_size ---------------------- */ + +#ifndef EGL_ANGLE_window_fixed_size +#define EGL_ANGLE_window_fixed_size 1 + +#define EGL_FIXED_SIZE_ANGLE 0x3201 + +#define EGLEW_ANGLE_window_fixed_size EGLEW_GET_VAR(__EGLEW_ANGLE_window_fixed_size) + +#endif /* EGL_ANGLE_window_fixed_size */ + +/* --------------------- EGL_ARM_implicit_external_sync -------------------- */ + +#ifndef EGL_ARM_implicit_external_sync +#define EGL_ARM_implicit_external_sync 1 + +#define EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM 0x328A + +#define EGLEW_ARM_implicit_external_sync EGLEW_GET_VAR(__EGLEW_ARM_implicit_external_sync) + +#endif /* EGL_ARM_implicit_external_sync */ + +/* ------------------- EGL_ARM_pixmap_multisample_discard ------------------ */ + +#ifndef EGL_ARM_pixmap_multisample_discard +#define EGL_ARM_pixmap_multisample_discard 1 + +#define EGL_DISCARD_SAMPLES_ARM 0x3286 + +#define EGLEW_ARM_pixmap_multisample_discard EGLEW_GET_VAR(__EGLEW_ARM_pixmap_multisample_discard) + +#endif /* EGL_ARM_pixmap_multisample_discard */ + +/* --------------------------- EGL_EXT_buffer_age -------------------------- */ + +#ifndef EGL_EXT_buffer_age +#define EGL_EXT_buffer_age 1 + +#define EGL_BUFFER_AGE_EXT 0x313D + +#define EGLEW_EXT_buffer_age EGLEW_GET_VAR(__EGLEW_EXT_buffer_age) + +#endif /* EGL_EXT_buffer_age */ + +/* ----------------------- EGL_EXT_client_extensions ----------------------- */ + +#ifndef EGL_EXT_client_extensions +#define EGL_EXT_client_extensions 1 + +#define EGLEW_EXT_client_extensions EGLEW_GET_VAR(__EGLEW_EXT_client_extensions) + +#endif /* EGL_EXT_client_extensions */ + +/* ------------------- EGL_EXT_create_context_robustness ------------------- */ + +#ifndef EGL_EXT_create_context_robustness +#define EGL_EXT_create_context_robustness 1 + +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 +#define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF + +#define EGLEW_EXT_create_context_robustness EGLEW_GET_VAR(__EGLEW_EXT_create_context_robustness) + +#endif /* EGL_EXT_create_context_robustness */ + +/* -------------------------- EGL_EXT_device_base -------------------------- */ + +#ifndef EGL_EXT_device_base +#define EGL_EXT_device_base 1 + +#define EGL_BAD_DEVICE_EXT 0x322B +#define EGL_DEVICE_EXT 0x322C + +#define EGLEW_EXT_device_base EGLEW_GET_VAR(__EGLEW_EXT_device_base) + +#endif /* EGL_EXT_device_base */ + +/* --------------------------- EGL_EXT_device_drm -------------------------- */ + +#ifndef EGL_EXT_device_drm +#define EGL_EXT_device_drm 1 + +#define EGL_DRM_DEVICE_FILE_EXT 0x3233 + +#define EGLEW_EXT_device_drm EGLEW_GET_VAR(__EGLEW_EXT_device_drm) + +#endif /* EGL_EXT_device_drm */ + +/* ----------------------- EGL_EXT_device_enumeration ---------------------- */ + +#ifndef EGL_EXT_device_enumeration +#define EGL_EXT_device_enumeration 1 + +typedef EGLBoolean ( * PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT * devices, EGLint * num_devices); + +#define eglQueryDevicesEXT EGLEW_GET_FUN(__eglewQueryDevicesEXT) + +#define EGLEW_EXT_device_enumeration EGLEW_GET_VAR(__EGLEW_EXT_device_enumeration) + +#endif /* EGL_EXT_device_enumeration */ + +/* ------------------------- EGL_EXT_device_openwf ------------------------- */ + +#ifndef EGL_EXT_device_openwf +#define EGL_EXT_device_openwf 1 + +#define EGL_OPENWF_DEVICE_ID_EXT 0x3237 + +#define EGLEW_EXT_device_openwf EGLEW_GET_VAR(__EGLEW_EXT_device_openwf) + +#endif /* EGL_EXT_device_openwf */ + +/* -------------------------- EGL_EXT_device_query ------------------------- */ + +#ifndef EGL_EXT_device_query +#define EGL_EXT_device_query 1 + +#define EGL_BAD_DEVICE_EXT 0x322B +#define EGL_DEVICE_EXT 0x322C + +typedef EGLBoolean ( * PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib * value); +typedef const char * ( * PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name); +typedef EGLBoolean ( * PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib * value); + +#define eglQueryDeviceAttribEXT EGLEW_GET_FUN(__eglewQueryDeviceAttribEXT) +#define eglQueryDeviceStringEXT EGLEW_GET_FUN(__eglewQueryDeviceStringEXT) +#define eglQueryDisplayAttribEXT EGLEW_GET_FUN(__eglewQueryDisplayAttribEXT) + +#define EGLEW_EXT_device_query EGLEW_GET_VAR(__EGLEW_EXT_device_query) + +#endif /* EGL_EXT_device_query */ + +/* ------------------ EGL_EXT_gl_colorspace_bt2020_linear ------------------ */ + +#ifndef EGL_EXT_gl_colorspace_bt2020_linear +#define EGL_EXT_gl_colorspace_bt2020_linear 1 + +#define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F + +#define EGLEW_EXT_gl_colorspace_bt2020_linear EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_bt2020_linear) + +#endif /* EGL_EXT_gl_colorspace_bt2020_linear */ + +/* -------------------- EGL_EXT_gl_colorspace_bt2020_pq -------------------- */ + +#ifndef EGL_EXT_gl_colorspace_bt2020_pq +#define EGL_EXT_gl_colorspace_bt2020_pq 1 + +#define EGL_GL_COLORSPACE_BT2020_PQ_EXT 0x3340 + +#define EGLEW_EXT_gl_colorspace_bt2020_pq EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_bt2020_pq) + +#endif /* EGL_EXT_gl_colorspace_bt2020_pq */ + +/* ------------------- EGL_EXT_gl_colorspace_scrgb_linear ------------------ */ + +#ifndef EGL_EXT_gl_colorspace_scrgb_linear +#define EGL_EXT_gl_colorspace_scrgb_linear 1 + +#define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350 + +#define EGLEW_EXT_gl_colorspace_scrgb_linear EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_scrgb_linear) + +#endif /* EGL_EXT_gl_colorspace_scrgb_linear */ + +/* ---------------------- EGL_EXT_image_dma_buf_import --------------------- */ + +#ifndef EGL_EXT_image_dma_buf_import +#define EGL_EXT_image_dma_buf_import 1 + +#define EGL_LINUX_DMA_BUF_EXT 0x3270 +#define EGL_LINUX_DRM_FOURCC_EXT 0x3271 +#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272 +#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273 +#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274 +#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275 +#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276 +#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277 +#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278 +#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279 +#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A +#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B +#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C +#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D +#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E +#define EGL_ITU_REC601_EXT 0x327F +#define EGL_ITU_REC709_EXT 0x3280 +#define EGL_ITU_REC2020_EXT 0x3281 +#define EGL_YUV_FULL_RANGE_EXT 0x3282 +#define EGL_YUV_NARROW_RANGE_EXT 0x3283 +#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284 +#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285 + +#define EGLEW_EXT_image_dma_buf_import EGLEW_GET_VAR(__EGLEW_EXT_image_dma_buf_import) + +#endif /* EGL_EXT_image_dma_buf_import */ + +/* ----------------- EGL_EXT_image_dma_buf_import_modifiers ---------------- */ + +#ifndef EGL_EXT_image_dma_buf_import_modifiers +#define EGL_EXT_image_dma_buf_import_modifiers 1 + +#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440 +#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441 +#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442 +#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443 +#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444 +#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445 +#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446 +#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447 +#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448 +#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449 +#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A + +typedef EGLBoolean ( * PFNEGLQUERYDMABUFFORMATSEXTPROC) (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats); +typedef EGLBoolean ( * PFNEGLQUERYDMABUFMODIFIERSEXTPROC) (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers); + +#define eglQueryDmaBufFormatsEXT EGLEW_GET_FUN(__eglewQueryDmaBufFormatsEXT) +#define eglQueryDmaBufModifiersEXT EGLEW_GET_FUN(__eglewQueryDmaBufModifiersEXT) + +#define EGLEW_EXT_image_dma_buf_import_modifiers EGLEW_GET_VAR(__EGLEW_EXT_image_dma_buf_import_modifiers) + +#endif /* EGL_EXT_image_dma_buf_import_modifiers */ + +/* ------------------------ EGL_EXT_multiview_window ----------------------- */ + +#ifndef EGL_EXT_multiview_window +#define EGL_EXT_multiview_window 1 + +#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134 + +#define EGLEW_EXT_multiview_window EGLEW_GET_VAR(__EGLEW_EXT_multiview_window) + +#endif /* EGL_EXT_multiview_window */ + +/* -------------------------- EGL_EXT_output_base -------------------------- */ + +#ifndef EGL_EXT_output_base +#define EGL_EXT_output_base 1 + +#define EGL_BAD_OUTPUT_LAYER_EXT 0x322D +#define EGL_BAD_OUTPUT_PORT_EXT 0x322E +#define EGL_SWAP_INTERVAL_EXT 0x322F + +typedef EGLBoolean ( * PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib * attrib_list, EGLOutputLayerEXT * layers, EGLint max_layers, EGLint * num_layers); +typedef EGLBoolean ( * PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib * attrib_list, EGLOutputPortEXT * ports, EGLint max_ports, EGLint * num_ports); +typedef EGLBoolean ( * PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); +typedef EGLBoolean ( * PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); +typedef EGLBoolean ( * PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib * value); +typedef const char * ( * PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); +typedef EGLBoolean ( * PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib * value); +typedef const char * ( * PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); + +#define eglGetOutputLayersEXT EGLEW_GET_FUN(__eglewGetOutputLayersEXT) +#define eglGetOutputPortsEXT EGLEW_GET_FUN(__eglewGetOutputPortsEXT) +#define eglOutputLayerAttribEXT EGLEW_GET_FUN(__eglewOutputLayerAttribEXT) +#define eglOutputPortAttribEXT EGLEW_GET_FUN(__eglewOutputPortAttribEXT) +#define eglQueryOutputLayerAttribEXT EGLEW_GET_FUN(__eglewQueryOutputLayerAttribEXT) +#define eglQueryOutputLayerStringEXT EGLEW_GET_FUN(__eglewQueryOutputLayerStringEXT) +#define eglQueryOutputPortAttribEXT EGLEW_GET_FUN(__eglewQueryOutputPortAttribEXT) +#define eglQueryOutputPortStringEXT EGLEW_GET_FUN(__eglewQueryOutputPortStringEXT) + +#define EGLEW_EXT_output_base EGLEW_GET_VAR(__EGLEW_EXT_output_base) + +#endif /* EGL_EXT_output_base */ + +/* --------------------------- EGL_EXT_output_drm -------------------------- */ + +#ifndef EGL_EXT_output_drm +#define EGL_EXT_output_drm 1 + +#define EGL_DRM_CRTC_EXT 0x3234 +#define EGL_DRM_PLANE_EXT 0x3235 +#define EGL_DRM_CONNECTOR_EXT 0x3236 + +#define EGLEW_EXT_output_drm EGLEW_GET_VAR(__EGLEW_EXT_output_drm) + +#endif /* EGL_EXT_output_drm */ + +/* ------------------------- EGL_EXT_output_openwf ------------------------- */ + +#ifndef EGL_EXT_output_openwf +#define EGL_EXT_output_openwf 1 + +#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238 +#define EGL_OPENWF_PORT_ID_EXT 0x3239 + +#define EGLEW_EXT_output_openwf EGLEW_GET_VAR(__EGLEW_EXT_output_openwf) + +#endif /* EGL_EXT_output_openwf */ + +/* ----------------------- EGL_EXT_pixel_format_float ---------------------- */ + +#ifndef EGL_EXT_pixel_format_float +#define EGL_EXT_pixel_format_float 1 + +#define EGL_COLOR_COMPONENT_TYPE_EXT 0x3339 +#define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A +#define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B + +#define EGLEW_EXT_pixel_format_float EGLEW_GET_VAR(__EGLEW_EXT_pixel_format_float) + +#endif /* EGL_EXT_pixel_format_float */ + +/* ------------------------- EGL_EXT_platform_base ------------------------- */ + +#ifndef EGL_EXT_platform_base +#define EGL_EXT_platform_base 1 + +typedef EGLSurface ( * PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLint * attrib_list); +typedef EGLSurface ( * PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void * native_window, const EGLint * attrib_list); +typedef EGLDisplay ( * PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void * native_display, const EGLint * attrib_list); + +#define eglCreatePlatformPixmapSurfaceEXT EGLEW_GET_FUN(__eglewCreatePlatformPixmapSurfaceEXT) +#define eglCreatePlatformWindowSurfaceEXT EGLEW_GET_FUN(__eglewCreatePlatformWindowSurfaceEXT) +#define eglGetPlatformDisplayEXT EGLEW_GET_FUN(__eglewGetPlatformDisplayEXT) + +#define EGLEW_EXT_platform_base EGLEW_GET_VAR(__EGLEW_EXT_platform_base) + +#endif /* EGL_EXT_platform_base */ + +/* ------------------------ EGL_EXT_platform_device ------------------------ */ + +#ifndef EGL_EXT_platform_device +#define EGL_EXT_platform_device 1 + +#define EGL_PLATFORM_DEVICE_EXT 0x313F + +#define EGLEW_EXT_platform_device EGLEW_GET_VAR(__EGLEW_EXT_platform_device) + +#endif /* EGL_EXT_platform_device */ + +/* ------------------------ EGL_EXT_platform_wayland ----------------------- */ + +#ifndef EGL_EXT_platform_wayland +#define EGL_EXT_platform_wayland 1 + +#define EGL_PLATFORM_WAYLAND_EXT 0x31D8 + +#define EGLEW_EXT_platform_wayland EGLEW_GET_VAR(__EGLEW_EXT_platform_wayland) + +#endif /* EGL_EXT_platform_wayland */ + +/* -------------------------- EGL_EXT_platform_x11 ------------------------- */ + +#ifndef EGL_EXT_platform_x11 +#define EGL_EXT_platform_x11 1 + +#define EGL_PLATFORM_X11_EXT 0x31D5 +#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6 + +#define EGLEW_EXT_platform_x11 EGLEW_GET_VAR(__EGLEW_EXT_platform_x11) + +#endif /* EGL_EXT_platform_x11 */ + +/* ----------------------- EGL_EXT_protected_content ----------------------- */ + +#ifndef EGL_EXT_protected_content +#define EGL_EXT_protected_content 1 + +#define EGL_PROTECTED_CONTENT_EXT 0x32C0 + +#define EGLEW_EXT_protected_content EGLEW_GET_VAR(__EGLEW_EXT_protected_content) + +#endif /* EGL_EXT_protected_content */ + +/* ----------------------- EGL_EXT_protected_surface ----------------------- */ + +#ifndef EGL_EXT_protected_surface +#define EGL_EXT_protected_surface 1 + +#define EGL_PROTECTED_CONTENT_EXT 0x32C0 + +#define EGLEW_EXT_protected_surface EGLEW_GET_VAR(__EGLEW_EXT_protected_surface) + +#endif /* EGL_EXT_protected_surface */ + +/* ------------------- EGL_EXT_stream_consumer_egloutput ------------------- */ + +#ifndef EGL_EXT_stream_consumer_egloutput +#define EGL_EXT_stream_consumer_egloutput 1 + +typedef EGLBoolean ( * PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); + +#define eglStreamConsumerOutputEXT EGLEW_GET_FUN(__eglewStreamConsumerOutputEXT) + +#define EGLEW_EXT_stream_consumer_egloutput EGLEW_GET_VAR(__EGLEW_EXT_stream_consumer_egloutput) + +#endif /* EGL_EXT_stream_consumer_egloutput */ + +/* ------------------- EGL_EXT_surface_SMPTE2086_metadata ------------------ */ + +#ifndef EGL_EXT_surface_SMPTE2086_metadata +#define EGL_EXT_surface_SMPTE2086_metadata 1 + +#define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346 +#define EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347 +#define EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348 +#define EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349 +#define EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A + +#define EGLEW_EXT_surface_SMPTE2086_metadata EGLEW_GET_VAR(__EGLEW_EXT_surface_SMPTE2086_metadata) + +#endif /* EGL_EXT_surface_SMPTE2086_metadata */ + +/* -------------------- EGL_EXT_swap_buffers_with_damage ------------------- */ + +#ifndef EGL_EXT_swap_buffers_with_damage +#define EGL_EXT_swap_buffers_with_damage 1 + +typedef EGLBoolean ( * PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, EGLint * rects, EGLint n_rects); + +#define eglSwapBuffersWithDamageEXT EGLEW_GET_FUN(__eglewSwapBuffersWithDamageEXT) + +#define EGLEW_EXT_swap_buffers_with_damage EGLEW_GET_VAR(__EGLEW_EXT_swap_buffers_with_damage) + +#endif /* EGL_EXT_swap_buffers_with_damage */ + +/* -------------------------- EGL_EXT_yuv_surface -------------------------- */ + +#ifndef EGL_EXT_yuv_surface +#define EGL_EXT_yuv_surface 1 + +#define EGL_YUV_BUFFER_EXT 0x3300 +#define EGL_YUV_ORDER_EXT 0x3301 +#define EGL_YUV_ORDER_YUV_EXT 0x3302 +#define EGL_YUV_ORDER_YVU_EXT 0x3303 +#define EGL_YUV_ORDER_YUYV_EXT 0x3304 +#define EGL_YUV_ORDER_UYVY_EXT 0x3305 +#define EGL_YUV_ORDER_YVYU_EXT 0x3306 +#define EGL_YUV_ORDER_VYUY_EXT 0x3307 +#define EGL_YUV_ORDER_AYUV_EXT 0x3308 +#define EGL_YUV_CSC_STANDARD_EXT 0x330A +#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B +#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C +#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D +#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311 +#define EGL_YUV_SUBSAMPLE_EXT 0x3312 +#define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313 +#define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314 +#define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315 +#define EGL_YUV_DEPTH_RANGE_EXT 0x3317 +#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318 +#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319 +#define EGL_YUV_PLANE_BPP_EXT 0x331A +#define EGL_YUV_PLANE_BPP_0_EXT 0x331B +#define EGL_YUV_PLANE_BPP_8_EXT 0x331C +#define EGL_YUV_PLANE_BPP_10_EXT 0x331D + +#define EGLEW_EXT_yuv_surface EGLEW_GET_VAR(__EGLEW_EXT_yuv_surface) + +#endif /* EGL_EXT_yuv_surface */ + +/* -------------------------- EGL_HI_clientpixmap -------------------------- */ + +#ifndef EGL_HI_clientpixmap +#define EGL_HI_clientpixmap 1 + +#define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74 + +typedef EGLSurface ( * PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI * pixmap); + +#define eglCreatePixmapSurfaceHI EGLEW_GET_FUN(__eglewCreatePixmapSurfaceHI) + +#define EGLEW_HI_clientpixmap EGLEW_GET_VAR(__EGLEW_HI_clientpixmap) + +#endif /* EGL_HI_clientpixmap */ + +/* -------------------------- EGL_HI_colorformats -------------------------- */ + +#ifndef EGL_HI_colorformats +#define EGL_HI_colorformats 1 + +#define EGL_COLOR_FORMAT_HI 0x8F70 +#define EGL_COLOR_RGB_HI 0x8F71 +#define EGL_COLOR_RGBA_HI 0x8F72 +#define EGL_COLOR_ARGB_HI 0x8F73 + +#define EGLEW_HI_colorformats EGLEW_GET_VAR(__EGLEW_HI_colorformats) + +#endif /* EGL_HI_colorformats */ + +/* ------------------------ EGL_IMG_context_priority ----------------------- */ + +#ifndef EGL_IMG_context_priority +#define EGL_IMG_context_priority 1 + +#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100 +#define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101 +#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102 +#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103 + +#define EGLEW_IMG_context_priority EGLEW_GET_VAR(__EGLEW_IMG_context_priority) + +#endif /* EGL_IMG_context_priority */ + +/* ---------------------- EGL_IMG_image_plane_attribs ---------------------- */ + +#ifndef EGL_IMG_image_plane_attribs +#define EGL_IMG_image_plane_attribs 1 + +#define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105 +#define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106 + +#define EGLEW_IMG_image_plane_attribs EGLEW_GET_VAR(__EGLEW_IMG_image_plane_attribs) + +#endif /* EGL_IMG_image_plane_attribs */ + +/* ---------------------------- EGL_KHR_cl_event --------------------------- */ + +#ifndef EGL_KHR_cl_event +#define EGL_KHR_cl_event 1 + +#define EGL_CL_EVENT_HANDLE_KHR 0x309C +#define EGL_SYNC_CL_EVENT_KHR 0x30FE +#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF + +#define EGLEW_KHR_cl_event EGLEW_GET_VAR(__EGLEW_KHR_cl_event) + +#endif /* EGL_KHR_cl_event */ + +/* --------------------------- EGL_KHR_cl_event2 --------------------------- */ + +#ifndef EGL_KHR_cl_event2 +#define EGL_KHR_cl_event2 1 + +#define EGL_CL_EVENT_HANDLE_KHR 0x309C +#define EGL_SYNC_CL_EVENT_KHR 0x30FE +#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF + +typedef EGLSyncKHR ( * PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR * attrib_list); + +#define eglCreateSync64KHR EGLEW_GET_FUN(__eglewCreateSync64KHR) + +#define EGLEW_KHR_cl_event2 EGLEW_GET_VAR(__EGLEW_KHR_cl_event2) + +#endif /* EGL_KHR_cl_event2 */ + +/* ----------------- EGL_KHR_client_get_all_proc_addresses ----------------- */ + +#ifndef EGL_KHR_client_get_all_proc_addresses +#define EGL_KHR_client_get_all_proc_addresses 1 + +#define EGLEW_KHR_client_get_all_proc_addresses EGLEW_GET_VAR(__EGLEW_KHR_client_get_all_proc_addresses) + +#endif /* EGL_KHR_client_get_all_proc_addresses */ + +/* ------------------------- EGL_KHR_config_attribs ------------------------ */ + +#ifndef EGL_KHR_config_attribs +#define EGL_KHR_config_attribs 1 + +#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020 +#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040 +#define EGL_CONFORMANT_KHR 0x3042 + +#define EGLEW_KHR_config_attribs EGLEW_GET_VAR(__EGLEW_KHR_config_attribs) + +#endif /* EGL_KHR_config_attribs */ + +/* --------------------- EGL_KHR_context_flush_control --------------------- */ + +#ifndef EGL_KHR_context_flush_control +#define EGL_KHR_context_flush_control 1 + +#define EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR 0 +#define EGL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x2097 +#define EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x2098 + +#define EGLEW_KHR_context_flush_control EGLEW_GET_VAR(__EGLEW_KHR_context_flush_control) + +#endif /* EGL_KHR_context_flush_control */ + +/* ------------------------- EGL_KHR_create_context ------------------------ */ + +#ifndef EGL_KHR_create_context +#define EGL_KHR_create_context 1 + +#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 +#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001 +#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 +#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 +#define EGL_OPENGL_ES3_BIT 0x00000040 +#define EGL_OPENGL_ES3_BIT_KHR 0x00000040 +#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 +#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB +#define EGL_CONTEXT_FLAGS_KHR 0x30FC +#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD +#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF + +#define EGLEW_KHR_create_context EGLEW_GET_VAR(__EGLEW_KHR_create_context) + +#endif /* EGL_KHR_create_context */ + +/* -------------------- EGL_KHR_create_context_no_error -------------------- */ + +#ifndef EGL_KHR_create_context_no_error +#define EGL_KHR_create_context_no_error 1 + +#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3 + +#define EGLEW_KHR_create_context_no_error EGLEW_GET_VAR(__EGLEW_KHR_create_context_no_error) + +#endif /* EGL_KHR_create_context_no_error */ + +/* ----------------------------- EGL_KHR_debug ----------------------------- */ + +#ifndef EGL_KHR_debug +#define EGL_KHR_debug 1 + +#define EGL_OBJECT_THREAD_KHR 0x33B0 +#define EGL_OBJECT_DISPLAY_KHR 0x33B1 +#define EGL_OBJECT_CONTEXT_KHR 0x33B2 +#define EGL_OBJECT_SURFACE_KHR 0x33B3 +#define EGL_OBJECT_IMAGE_KHR 0x33B4 +#define EGL_OBJECT_SYNC_KHR 0x33B5 +#define EGL_OBJECT_STREAM_KHR 0x33B6 +#define EGL_DEBUG_CALLBACK_KHR 0x33B8 +#define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9 +#define EGL_DEBUG_MSG_ERROR_KHR 0x33BA +#define EGL_DEBUG_MSG_WARN_KHR 0x33BB +#define EGL_DEBUG_MSG_INFO_KHR 0x33BC + +typedef EGLint ( * PFNEGLDEBUGMESSAGECONTROLKHRPROC) (EGLDEBUGPROCKHR callback, const EGLAttrib * attrib_list); +typedef EGLint ( * PFNEGLLABELOBJECTKHRPROC) (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); +typedef EGLBoolean ( * PFNEGLQUERYDEBUGKHRPROC) (EGLint attribute, EGLAttrib * value); + +#define eglDebugMessageControlKHR EGLEW_GET_FUN(__eglewDebugMessageControlKHR) +#define eglLabelObjectKHR EGLEW_GET_FUN(__eglewLabelObjectKHR) +#define eglQueryDebugKHR EGLEW_GET_FUN(__eglewQueryDebugKHR) + +#define EGLEW_KHR_debug EGLEW_GET_VAR(__EGLEW_KHR_debug) + +#endif /* EGL_KHR_debug */ + +/* --------------------------- EGL_KHR_fence_sync -------------------------- */ + +#ifndef EGL_KHR_fence_sync +#define EGL_KHR_fence_sync 1 + +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0 +#define EGL_SYNC_CONDITION_KHR 0x30F8 +#define EGL_SYNC_FENCE_KHR 0x30F9 + +#define EGLEW_KHR_fence_sync EGLEW_GET_VAR(__EGLEW_KHR_fence_sync) + +#endif /* EGL_KHR_fence_sync */ + +/* --------------------- EGL_KHR_get_all_proc_addresses -------------------- */ + +#ifndef EGL_KHR_get_all_proc_addresses +#define EGL_KHR_get_all_proc_addresses 1 + +#define EGLEW_KHR_get_all_proc_addresses EGLEW_GET_VAR(__EGLEW_KHR_get_all_proc_addresses) + +#endif /* EGL_KHR_get_all_proc_addresses */ + +/* ------------------------- EGL_KHR_gl_colorspace ------------------------- */ + +#ifndef EGL_KHR_gl_colorspace +#define EGL_KHR_gl_colorspace 1 + +#define EGL_GL_COLORSPACE_SRGB_KHR 0x3089 +#define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A +#define EGL_GL_COLORSPACE_KHR 0x309D + +#define EGLEW_KHR_gl_colorspace EGLEW_GET_VAR(__EGLEW_KHR_gl_colorspace) + +#endif /* EGL_KHR_gl_colorspace */ + +/* --------------------- EGL_KHR_gl_renderbuffer_image --------------------- */ + +#ifndef EGL_KHR_gl_renderbuffer_image +#define EGL_KHR_gl_renderbuffer_image 1 + +#define EGL_GL_RENDERBUFFER_KHR 0x30B9 + +#define EGLEW_KHR_gl_renderbuffer_image EGLEW_GET_VAR(__EGLEW_KHR_gl_renderbuffer_image) + +#endif /* EGL_KHR_gl_renderbuffer_image */ + +/* ---------------------- EGL_KHR_gl_texture_2D_image ---------------------- */ + +#ifndef EGL_KHR_gl_texture_2D_image +#define EGL_KHR_gl_texture_2D_image 1 + +#define EGL_GL_TEXTURE_2D_KHR 0x30B1 +#define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC + +#define EGLEW_KHR_gl_texture_2D_image EGLEW_GET_VAR(__EGLEW_KHR_gl_texture_2D_image) + +#endif /* EGL_KHR_gl_texture_2D_image */ + +/* ---------------------- EGL_KHR_gl_texture_3D_image ---------------------- */ + +#ifndef EGL_KHR_gl_texture_3D_image +#define EGL_KHR_gl_texture_3D_image 1 + +#define EGL_GL_TEXTURE_3D_KHR 0x30B2 +#define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD + +#define EGLEW_KHR_gl_texture_3D_image EGLEW_GET_VAR(__EGLEW_KHR_gl_texture_3D_image) + +#endif /* EGL_KHR_gl_texture_3D_image */ + +/* -------------------- EGL_KHR_gl_texture_cubemap_image ------------------- */ + +#ifndef EGL_KHR_gl_texture_cubemap_image +#define EGL_KHR_gl_texture_cubemap_image 1 + +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8 + +#define EGLEW_KHR_gl_texture_cubemap_image EGLEW_GET_VAR(__EGLEW_KHR_gl_texture_cubemap_image) + +#endif /* EGL_KHR_gl_texture_cubemap_image */ + +/* ----------------------------- EGL_KHR_image ----------------------------- */ + +#ifndef EGL_KHR_image +#define EGL_KHR_image 1 + +#define EGL_NATIVE_PIXMAP_KHR 0x30B0 + +typedef EGLImageKHR ( * PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint * attrib_list); +typedef EGLBoolean ( * PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image); + +#define eglCreateImageKHR EGLEW_GET_FUN(__eglewCreateImageKHR) +#define eglDestroyImageKHR EGLEW_GET_FUN(__eglewDestroyImageKHR) + +#define EGLEW_KHR_image EGLEW_GET_VAR(__EGLEW_KHR_image) + +#endif /* EGL_KHR_image */ + +/* --------------------------- EGL_KHR_image_base -------------------------- */ + +#ifndef EGL_KHR_image_base +#define EGL_KHR_image_base 1 + +#define EGL_IMAGE_PRESERVED_KHR 0x30D2 + +#define EGLEW_KHR_image_base EGLEW_GET_VAR(__EGLEW_KHR_image_base) + +#endif /* EGL_KHR_image_base */ + +/* -------------------------- EGL_KHR_image_pixmap ------------------------- */ + +#ifndef EGL_KHR_image_pixmap +#define EGL_KHR_image_pixmap 1 + +#define EGL_NATIVE_PIXMAP_KHR 0x30B0 + +#define EGLEW_KHR_image_pixmap EGLEW_GET_VAR(__EGLEW_KHR_image_pixmap) + +#endif /* EGL_KHR_image_pixmap */ + +/* -------------------------- EGL_KHR_lock_surface ------------------------- */ + +#ifndef EGL_KHR_lock_surface +#define EGL_KHR_lock_surface 1 + +#define EGL_READ_SURFACE_BIT_KHR 0x0001 +#define EGL_WRITE_SURFACE_BIT_KHR 0x0002 +#define EGL_LOCK_SURFACE_BIT_KHR 0x0080 +#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 +#define EGL_MATCH_FORMAT_KHR 0x3043 +#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 +#define EGL_FORMAT_RGB_565_KHR 0x30C1 +#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 +#define EGL_FORMAT_RGBA_8888_KHR 0x30C3 +#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 +#define EGL_LOCK_USAGE_HINT_KHR 0x30C5 +#define EGL_BITMAP_POINTER_KHR 0x30C6 +#define EGL_BITMAP_PITCH_KHR 0x30C7 +#define EGL_BITMAP_ORIGIN_KHR 0x30C8 +#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 +#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA +#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB +#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC +#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD +#define EGL_LOWER_LEFT_KHR 0x30CE +#define EGL_UPPER_LEFT_KHR 0x30CF + +typedef EGLBoolean ( * PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint * attrib_list); +typedef EGLBoolean ( * PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface); + +#define eglLockSurfaceKHR EGLEW_GET_FUN(__eglewLockSurfaceKHR) +#define eglUnlockSurfaceKHR EGLEW_GET_FUN(__eglewUnlockSurfaceKHR) + +#define EGLEW_KHR_lock_surface EGLEW_GET_VAR(__EGLEW_KHR_lock_surface) + +#endif /* EGL_KHR_lock_surface */ + +/* ------------------------- EGL_KHR_lock_surface2 ------------------------- */ + +#ifndef EGL_KHR_lock_surface2 +#define EGL_KHR_lock_surface2 1 + +#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 + +#define EGLEW_KHR_lock_surface2 EGLEW_GET_VAR(__EGLEW_KHR_lock_surface2) + +#endif /* EGL_KHR_lock_surface2 */ + +/* ------------------------- EGL_KHR_lock_surface3 ------------------------- */ + +#ifndef EGL_KHR_lock_surface3 +#define EGL_KHR_lock_surface3 1 + +#define EGL_READ_SURFACE_BIT_KHR 0x0001 +#define EGL_WRITE_SURFACE_BIT_KHR 0x0002 +#define EGL_LOCK_SURFACE_BIT_KHR 0x0080 +#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 +#define EGL_MATCH_FORMAT_KHR 0x3043 +#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 +#define EGL_FORMAT_RGB_565_KHR 0x30C1 +#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 +#define EGL_FORMAT_RGBA_8888_KHR 0x30C3 +#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 +#define EGL_LOCK_USAGE_HINT_KHR 0x30C5 +#define EGL_BITMAP_POINTER_KHR 0x30C6 +#define EGL_BITMAP_PITCH_KHR 0x30C7 +#define EGL_BITMAP_ORIGIN_KHR 0x30C8 +#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 +#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA +#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB +#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC +#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD +#define EGL_LOWER_LEFT_KHR 0x30CE +#define EGL_UPPER_LEFT_KHR 0x30CF +#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 + +typedef EGLBoolean ( * PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR * value); + +#define eglQuerySurface64KHR EGLEW_GET_FUN(__eglewQuerySurface64KHR) + +#define EGLEW_KHR_lock_surface3 EGLEW_GET_VAR(__EGLEW_KHR_lock_surface3) + +#endif /* EGL_KHR_lock_surface3 */ + +/* --------------------- EGL_KHR_mutable_render_buffer --------------------- */ + +#ifndef EGL_KHR_mutable_render_buffer +#define EGL_KHR_mutable_render_buffer 1 + +#define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000 + +#define EGLEW_KHR_mutable_render_buffer EGLEW_GET_VAR(__EGLEW_KHR_mutable_render_buffer) + +#endif /* EGL_KHR_mutable_render_buffer */ + +/* ----------------------- EGL_KHR_no_config_context ----------------------- */ + +#ifndef EGL_KHR_no_config_context +#define EGL_KHR_no_config_context 1 + +#define EGLEW_KHR_no_config_context EGLEW_GET_VAR(__EGLEW_KHR_no_config_context) + +#endif /* EGL_KHR_no_config_context */ + +/* ------------------------- EGL_KHR_partial_update ------------------------ */ + +#ifndef EGL_KHR_partial_update +#define EGL_KHR_partial_update 1 + +#define EGL_BUFFER_AGE_KHR 0x313D + +typedef EGLBoolean ( * PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint * rects, EGLint n_rects); + +#define eglSetDamageRegionKHR EGLEW_GET_FUN(__eglewSetDamageRegionKHR) + +#define EGLEW_KHR_partial_update EGLEW_GET_VAR(__EGLEW_KHR_partial_update) + +#endif /* EGL_KHR_partial_update */ + +/* ------------------------ EGL_KHR_platform_android ----------------------- */ + +#ifndef EGL_KHR_platform_android +#define EGL_KHR_platform_android 1 + +#define EGL_PLATFORM_ANDROID_KHR 0x3141 + +#define EGLEW_KHR_platform_android EGLEW_GET_VAR(__EGLEW_KHR_platform_android) + +#endif /* EGL_KHR_platform_android */ + +/* -------------------------- EGL_KHR_platform_gbm ------------------------- */ + +#ifndef EGL_KHR_platform_gbm +#define EGL_KHR_platform_gbm 1 + +#define EGL_PLATFORM_GBM_KHR 0x31D7 + +#define EGLEW_KHR_platform_gbm EGLEW_GET_VAR(__EGLEW_KHR_platform_gbm) + +#endif /* EGL_KHR_platform_gbm */ + +/* ------------------------ EGL_KHR_platform_wayland ----------------------- */ + +#ifndef EGL_KHR_platform_wayland +#define EGL_KHR_platform_wayland 1 + +#define EGL_PLATFORM_WAYLAND_KHR 0x31D8 + +#define EGLEW_KHR_platform_wayland EGLEW_GET_VAR(__EGLEW_KHR_platform_wayland) + +#endif /* EGL_KHR_platform_wayland */ + +/* -------------------------- EGL_KHR_platform_x11 ------------------------- */ + +#ifndef EGL_KHR_platform_x11 +#define EGL_KHR_platform_x11 1 + +#define EGL_PLATFORM_X11_KHR 0x31D5 +#define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6 + +#define EGLEW_KHR_platform_x11 EGLEW_GET_VAR(__EGLEW_KHR_platform_x11) + +#endif /* EGL_KHR_platform_x11 */ + +/* ------------------------- EGL_KHR_reusable_sync ------------------------- */ + +#ifndef EGL_KHR_reusable_sync +#define EGL_KHR_reusable_sync 1 + +#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001 +#define EGL_SYNC_STATUS_KHR 0x30F1 +#define EGL_SIGNALED_KHR 0x30F2 +#define EGL_UNSIGNALED_KHR 0x30F3 +#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5 +#define EGL_CONDITION_SATISFIED_KHR 0x30F6 +#define EGL_SYNC_TYPE_KHR 0x30F7 +#define EGL_SYNC_REUSABLE_KHR 0x30FA +#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFF + +typedef EGLint ( * PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); +typedef EGLSyncKHR ( * PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint * attrib_list); +typedef EGLBoolean ( * PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync); +typedef EGLBoolean ( * PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint * value); +typedef EGLBoolean ( * PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); + +#define eglClientWaitSyncKHR EGLEW_GET_FUN(__eglewClientWaitSyncKHR) +#define eglCreateSyncKHR EGLEW_GET_FUN(__eglewCreateSyncKHR) +#define eglDestroySyncKHR EGLEW_GET_FUN(__eglewDestroySyncKHR) +#define eglGetSyncAttribKHR EGLEW_GET_FUN(__eglewGetSyncAttribKHR) +#define eglSignalSyncKHR EGLEW_GET_FUN(__eglewSignalSyncKHR) + +#define EGLEW_KHR_reusable_sync EGLEW_GET_VAR(__EGLEW_KHR_reusable_sync) + +#endif /* EGL_KHR_reusable_sync */ + +/* ----------------------------- EGL_KHR_stream ---------------------------- */ + +#ifndef EGL_KHR_stream +#define EGL_KHR_stream 1 + +#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210 +#define EGL_PRODUCER_FRAME_KHR 0x3212 +#define EGL_CONSUMER_FRAME_KHR 0x3213 +#define EGL_STREAM_STATE_KHR 0x3214 +#define EGL_STREAM_STATE_CREATED_KHR 0x3215 +#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216 +#define EGL_STREAM_STATE_EMPTY_KHR 0x3217 +#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218 +#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219 +#define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A +#define EGL_BAD_STREAM_KHR 0x321B +#define EGL_BAD_STATE_KHR 0x321C + +typedef EGLStreamKHR ( * PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint * attrib_list); +typedef EGLBoolean ( * PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean ( * PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint * value); +typedef EGLBoolean ( * PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR * value); +typedef EGLBoolean ( * PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); + +#define eglCreateStreamKHR EGLEW_GET_FUN(__eglewCreateStreamKHR) +#define eglDestroyStreamKHR EGLEW_GET_FUN(__eglewDestroyStreamKHR) +#define eglQueryStreamKHR EGLEW_GET_FUN(__eglewQueryStreamKHR) +#define eglQueryStreamu64KHR EGLEW_GET_FUN(__eglewQueryStreamu64KHR) +#define eglStreamAttribKHR EGLEW_GET_FUN(__eglewStreamAttribKHR) + +#define EGLEW_KHR_stream EGLEW_GET_VAR(__EGLEW_KHR_stream) + +#endif /* EGL_KHR_stream */ + +/* ------------------------- EGL_KHR_stream_attrib ------------------------- */ + +#ifndef EGL_KHR_stream_attrib +#define EGL_KHR_stream_attrib 1 + +#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210 +#define EGL_STREAM_STATE_KHR 0x3214 +#define EGL_STREAM_STATE_CREATED_KHR 0x3215 +#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216 + +typedef EGLStreamKHR ( * PFNEGLCREATESTREAMATTRIBKHRPROC) (EGLDisplay dpy, const EGLAttrib * attrib_list); +typedef EGLBoolean ( * PFNEGLQUERYSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib * value); +typedef EGLBoolean ( * PFNEGLSETSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value); +typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib * attrib_list); +typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib * attrib_list); + +#define eglCreateStreamAttribKHR EGLEW_GET_FUN(__eglewCreateStreamAttribKHR) +#define eglQueryStreamAttribKHR EGLEW_GET_FUN(__eglewQueryStreamAttribKHR) +#define eglSetStreamAttribKHR EGLEW_GET_FUN(__eglewSetStreamAttribKHR) +#define eglStreamConsumerAcquireAttribKHR EGLEW_GET_FUN(__eglewStreamConsumerAcquireAttribKHR) +#define eglStreamConsumerReleaseAttribKHR EGLEW_GET_FUN(__eglewStreamConsumerReleaseAttribKHR) + +#define EGLEW_KHR_stream_attrib EGLEW_GET_VAR(__EGLEW_KHR_stream_attrib) + +#endif /* EGL_KHR_stream_attrib */ + +/* ------------------- EGL_KHR_stream_consumer_gltexture ------------------- */ + +#ifndef EGL_KHR_stream_consumer_gltexture +#define EGL_KHR_stream_consumer_gltexture 1 + +#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E + +typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); + +#define eglStreamConsumerAcquireKHR EGLEW_GET_FUN(__eglewStreamConsumerAcquireKHR) +#define eglStreamConsumerGLTextureExternalKHR EGLEW_GET_FUN(__eglewStreamConsumerGLTextureExternalKHR) +#define eglStreamConsumerReleaseKHR EGLEW_GET_FUN(__eglewStreamConsumerReleaseKHR) + +#define EGLEW_KHR_stream_consumer_gltexture EGLEW_GET_VAR(__EGLEW_KHR_stream_consumer_gltexture) + +#endif /* EGL_KHR_stream_consumer_gltexture */ + +/* -------------------- EGL_KHR_stream_cross_process_fd -------------------- */ + +#ifndef EGL_KHR_stream_cross_process_fd +#define EGL_KHR_stream_cross_process_fd 1 + +typedef EGLStreamKHR ( * PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); +typedef EGLNativeFileDescriptorKHR ( * PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); + +#define eglCreateStreamFromFileDescriptorKHR EGLEW_GET_FUN(__eglewCreateStreamFromFileDescriptorKHR) +#define eglGetStreamFileDescriptorKHR EGLEW_GET_FUN(__eglewGetStreamFileDescriptorKHR) + +#define EGLEW_KHR_stream_cross_process_fd EGLEW_GET_VAR(__EGLEW_KHR_stream_cross_process_fd) + +#endif /* EGL_KHR_stream_cross_process_fd */ + +/* -------------------------- EGL_KHR_stream_fifo -------------------------- */ + +#ifndef EGL_KHR_stream_fifo +#define EGL_KHR_stream_fifo 1 + +#define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC +#define EGL_STREAM_TIME_NOW_KHR 0x31FD +#define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE +#define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF + +typedef EGLBoolean ( * PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR * value); + +#define eglQueryStreamTimeKHR EGLEW_GET_FUN(__eglewQueryStreamTimeKHR) + +#define EGLEW_KHR_stream_fifo EGLEW_GET_VAR(__EGLEW_KHR_stream_fifo) + +#endif /* EGL_KHR_stream_fifo */ + +/* ----------------- EGL_KHR_stream_producer_aldatalocator ----------------- */ + +#ifndef EGL_KHR_stream_producer_aldatalocator +#define EGL_KHR_stream_producer_aldatalocator 1 + +#define EGLEW_KHR_stream_producer_aldatalocator EGLEW_GET_VAR(__EGLEW_KHR_stream_producer_aldatalocator) + +#endif /* EGL_KHR_stream_producer_aldatalocator */ + +/* ------------------- EGL_KHR_stream_producer_eglsurface ------------------ */ + +#ifndef EGL_KHR_stream_producer_eglsurface +#define EGL_KHR_stream_producer_eglsurface 1 + +#define EGL_STREAM_BIT_KHR 0x0800 + +typedef EGLSurface ( * PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint * attrib_list); + +#define eglCreateStreamProducerSurfaceKHR EGLEW_GET_FUN(__eglewCreateStreamProducerSurfaceKHR) + +#define EGLEW_KHR_stream_producer_eglsurface EGLEW_GET_VAR(__EGLEW_KHR_stream_producer_eglsurface) + +#endif /* EGL_KHR_stream_producer_eglsurface */ + +/* ---------------------- EGL_KHR_surfaceless_context ---------------------- */ + +#ifndef EGL_KHR_surfaceless_context +#define EGL_KHR_surfaceless_context 1 + +#define EGLEW_KHR_surfaceless_context EGLEW_GET_VAR(__EGLEW_KHR_surfaceless_context) + +#endif /* EGL_KHR_surfaceless_context */ + +/* -------------------- EGL_KHR_swap_buffers_with_damage ------------------- */ + +#ifndef EGL_KHR_swap_buffers_with_damage +#define EGL_KHR_swap_buffers_with_damage 1 + +typedef EGLBoolean ( * PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint * rects, EGLint n_rects); + +#define eglSwapBuffersWithDamageKHR EGLEW_GET_FUN(__eglewSwapBuffersWithDamageKHR) + +#define EGLEW_KHR_swap_buffers_with_damage EGLEW_GET_VAR(__EGLEW_KHR_swap_buffers_with_damage) + +#endif /* EGL_KHR_swap_buffers_with_damage */ + +/* ------------------------ EGL_KHR_vg_parent_image ------------------------ */ + +#ifndef EGL_KHR_vg_parent_image +#define EGL_KHR_vg_parent_image 1 + +#define EGL_VG_PARENT_IMAGE_KHR 0x30BA + +#define EGLEW_KHR_vg_parent_image EGLEW_GET_VAR(__EGLEW_KHR_vg_parent_image) + +#endif /* EGL_KHR_vg_parent_image */ + +/* --------------------------- EGL_KHR_wait_sync --------------------------- */ + +#ifndef EGL_KHR_wait_sync +#define EGL_KHR_wait_sync 1 + +typedef EGLint ( * PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); + +#define eglWaitSyncKHR EGLEW_GET_FUN(__eglewWaitSyncKHR) + +#define EGLEW_KHR_wait_sync EGLEW_GET_VAR(__EGLEW_KHR_wait_sync) + +#endif /* EGL_KHR_wait_sync */ + +/* --------------------------- EGL_MESA_drm_image -------------------------- */ + +#ifndef EGL_MESA_drm_image +#define EGL_MESA_drm_image 1 + +#define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001 +#define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002 +#define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 +#define EGL_DRM_BUFFER_USE_MESA 0x31D1 +#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 +#define EGL_DRM_BUFFER_MESA 0x31D3 +#define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 + +typedef EGLImageKHR ( * PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint * attrib_list); +typedef EGLBoolean ( * PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint * name, EGLint * handle, EGLint * stride); + +#define eglCreateDRMImageMESA EGLEW_GET_FUN(__eglewCreateDRMImageMESA) +#define eglExportDRMImageMESA EGLEW_GET_FUN(__eglewExportDRMImageMESA) + +#define EGLEW_MESA_drm_image EGLEW_GET_VAR(__EGLEW_MESA_drm_image) + +#endif /* EGL_MESA_drm_image */ + +/* --------------------- EGL_MESA_image_dma_buf_export --------------------- */ + +#ifndef EGL_MESA_image_dma_buf_export +#define EGL_MESA_image_dma_buf_export 1 + +typedef EGLBoolean ( * PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int * fds, EGLint * strides, EGLint * offsets); +typedef EGLBoolean ( * PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int * fourcc, int * num_planes, EGLuint64KHR * modifiers); + +#define eglExportDMABUFImageMESA EGLEW_GET_FUN(__eglewExportDMABUFImageMESA) +#define eglExportDMABUFImageQueryMESA EGLEW_GET_FUN(__eglewExportDMABUFImageQueryMESA) + +#define EGLEW_MESA_image_dma_buf_export EGLEW_GET_VAR(__EGLEW_MESA_image_dma_buf_export) + +#endif /* EGL_MESA_image_dma_buf_export */ + +/* ------------------------- EGL_MESA_platform_gbm ------------------------- */ + +#ifndef EGL_MESA_platform_gbm +#define EGL_MESA_platform_gbm 1 + +#define EGL_PLATFORM_GBM_MESA 0x31D7 + +#define EGLEW_MESA_platform_gbm EGLEW_GET_VAR(__EGLEW_MESA_platform_gbm) + +#endif /* EGL_MESA_platform_gbm */ + +/* --------------------- EGL_MESA_platform_surfaceless --------------------- */ + +#ifndef EGL_MESA_platform_surfaceless +#define EGL_MESA_platform_surfaceless 1 + +#define EGL_PLATFORM_SURFACELESS_MESA 0x31DD + +#define EGLEW_MESA_platform_surfaceless EGLEW_GET_VAR(__EGLEW_MESA_platform_surfaceless) + +#endif /* EGL_MESA_platform_surfaceless */ + +/* -------------------------- EGL_NOK_swap_region -------------------------- */ + +#ifndef EGL_NOK_swap_region +#define EGL_NOK_swap_region 1 + +typedef EGLBoolean ( * PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint * rects); + +#define eglSwapBuffersRegionNOK EGLEW_GET_FUN(__eglewSwapBuffersRegionNOK) + +#define EGLEW_NOK_swap_region EGLEW_GET_VAR(__EGLEW_NOK_swap_region) + +#endif /* EGL_NOK_swap_region */ + +/* -------------------------- EGL_NOK_swap_region2 ------------------------- */ + +#ifndef EGL_NOK_swap_region2 +#define EGL_NOK_swap_region2 1 + +typedef EGLBoolean ( * PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint * rects); + +#define eglSwapBuffersRegion2NOK EGLEW_GET_FUN(__eglewSwapBuffersRegion2NOK) + +#define EGLEW_NOK_swap_region2 EGLEW_GET_VAR(__EGLEW_NOK_swap_region2) + +#endif /* EGL_NOK_swap_region2 */ + +/* ---------------------- EGL_NOK_texture_from_pixmap ---------------------- */ + +#ifndef EGL_NOK_texture_from_pixmap +#define EGL_NOK_texture_from_pixmap 1 + +#define EGL_Y_INVERTED_NOK 0x307F + +#define EGLEW_NOK_texture_from_pixmap EGLEW_GET_VAR(__EGLEW_NOK_texture_from_pixmap) + +#endif /* EGL_NOK_texture_from_pixmap */ + +/* ------------------------ EGL_NV_3dvision_surface ------------------------ */ + +#ifndef EGL_NV_3dvision_surface +#define EGL_NV_3dvision_surface 1 + +#define EGL_AUTO_STEREO_NV 0x3136 + +#define EGLEW_NV_3dvision_surface EGLEW_GET_VAR(__EGLEW_NV_3dvision_surface) + +#endif /* EGL_NV_3dvision_surface */ + +/* ------------------------- EGL_NV_coverage_sample ------------------------ */ + +#ifndef EGL_NV_coverage_sample +#define EGL_NV_coverage_sample 1 + +#define EGL_COVERAGE_BUFFERS_NV 0x30E0 +#define EGL_COVERAGE_SAMPLES_NV 0x30E1 + +#define EGLEW_NV_coverage_sample EGLEW_GET_VAR(__EGLEW_NV_coverage_sample) + +#endif /* EGL_NV_coverage_sample */ + +/* --------------------- EGL_NV_coverage_sample_resolve -------------------- */ + +#ifndef EGL_NV_coverage_sample_resolve +#define EGL_NV_coverage_sample_resolve 1 + +#define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131 +#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132 +#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133 + +#define EGLEW_NV_coverage_sample_resolve EGLEW_GET_VAR(__EGLEW_NV_coverage_sample_resolve) + +#endif /* EGL_NV_coverage_sample_resolve */ + +/* --------------------------- EGL_NV_cuda_event --------------------------- */ + +#ifndef EGL_NV_cuda_event +#define EGL_NV_cuda_event 1 + +#define EGL_CUDA_EVENT_HANDLE_NV 0x323B +#define EGL_SYNC_CUDA_EVENT_NV 0x323C +#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D + +#define EGLEW_NV_cuda_event EGLEW_GET_VAR(__EGLEW_NV_cuda_event) + +#endif /* EGL_NV_cuda_event */ + +/* ------------------------- EGL_NV_depth_nonlinear ------------------------ */ + +#ifndef EGL_NV_depth_nonlinear +#define EGL_NV_depth_nonlinear 1 + +#define EGL_DEPTH_ENCODING_NONE_NV 0 +#define EGL_DEPTH_ENCODING_NV 0x30E2 +#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3 + +#define EGLEW_NV_depth_nonlinear EGLEW_GET_VAR(__EGLEW_NV_depth_nonlinear) + +#endif /* EGL_NV_depth_nonlinear */ + +/* --------------------------- EGL_NV_device_cuda -------------------------- */ + +#ifndef EGL_NV_device_cuda +#define EGL_NV_device_cuda 1 + +#define EGL_CUDA_DEVICE_NV 0x323A + +#define EGLEW_NV_device_cuda EGLEW_GET_VAR(__EGLEW_NV_device_cuda) + +#endif /* EGL_NV_device_cuda */ + +/* -------------------------- EGL_NV_native_query -------------------------- */ + +#ifndef EGL_NV_native_query +#define EGL_NV_native_query 1 + +typedef EGLBoolean ( * PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType * display_id); +typedef EGLBoolean ( * PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType * pixmap); +typedef EGLBoolean ( * PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType * window); + +#define eglQueryNativeDisplayNV EGLEW_GET_FUN(__eglewQueryNativeDisplayNV) +#define eglQueryNativePixmapNV EGLEW_GET_FUN(__eglewQueryNativePixmapNV) +#define eglQueryNativeWindowNV EGLEW_GET_FUN(__eglewQueryNativeWindowNV) + +#define EGLEW_NV_native_query EGLEW_GET_VAR(__EGLEW_NV_native_query) + +#endif /* EGL_NV_native_query */ + +/* ---------------------- EGL_NV_post_convert_rounding --------------------- */ + +#ifndef EGL_NV_post_convert_rounding +#define EGL_NV_post_convert_rounding 1 + +#define EGLEW_NV_post_convert_rounding EGLEW_GET_VAR(__EGLEW_NV_post_convert_rounding) + +#endif /* EGL_NV_post_convert_rounding */ + +/* ------------------------- EGL_NV_post_sub_buffer ------------------------ */ + +#ifndef EGL_NV_post_sub_buffer +#define EGL_NV_post_sub_buffer 1 + +#define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE + +typedef EGLBoolean ( * PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); + +#define eglPostSubBufferNV EGLEW_GET_FUN(__eglewPostSubBufferNV) + +#define EGLEW_NV_post_sub_buffer EGLEW_GET_VAR(__EGLEW_NV_post_sub_buffer) + +#endif /* EGL_NV_post_sub_buffer */ + +/* ------------------ EGL_NV_robustness_video_memory_purge ----------------- */ + +#ifndef EGL_NV_robustness_video_memory_purge +#define EGL_NV_robustness_video_memory_purge 1 + +#define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C + +#define EGLEW_NV_robustness_video_memory_purge EGLEW_GET_VAR(__EGLEW_NV_robustness_video_memory_purge) + +#endif /* EGL_NV_robustness_video_memory_purge */ + +/* ------------------ EGL_NV_stream_consumer_gltexture_yuv ----------------- */ + +#ifndef EGL_NV_stream_consumer_gltexture_yuv +#define EGL_NV_stream_consumer_gltexture_yuv 1 + +#define EGL_YUV_BUFFER_EXT 0x3300 +#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311 +#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C +#define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D +#define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E + +typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLAttrib *attrib_list); + +#define eglStreamConsumerGLTextureExternalAttribsNV EGLEW_GET_FUN(__eglewStreamConsumerGLTextureExternalAttribsNV) + +#define EGLEW_NV_stream_consumer_gltexture_yuv EGLEW_GET_VAR(__EGLEW_NV_stream_consumer_gltexture_yuv) + +#endif /* EGL_NV_stream_consumer_gltexture_yuv */ + +/* ---------------------- EGL_NV_stream_cross_display ---------------------- */ + +#ifndef EGL_NV_stream_cross_display +#define EGL_NV_stream_cross_display 1 + +#define EGL_STREAM_CROSS_DISPLAY_NV 0x334E + +#define EGLEW_NV_stream_cross_display EGLEW_GET_VAR(__EGLEW_NV_stream_cross_display) + +#endif /* EGL_NV_stream_cross_display */ + +/* ----------------------- EGL_NV_stream_cross_object ---------------------- */ + +#ifndef EGL_NV_stream_cross_object +#define EGL_NV_stream_cross_object 1 + +#define EGL_STREAM_CROSS_OBJECT_NV 0x334D + +#define EGLEW_NV_stream_cross_object EGLEW_GET_VAR(__EGLEW_NV_stream_cross_object) + +#endif /* EGL_NV_stream_cross_object */ + +/* --------------------- EGL_NV_stream_cross_partition --------------------- */ + +#ifndef EGL_NV_stream_cross_partition +#define EGL_NV_stream_cross_partition 1 + +#define EGL_STREAM_CROSS_PARTITION_NV 0x323F + +#define EGLEW_NV_stream_cross_partition EGLEW_GET_VAR(__EGLEW_NV_stream_cross_partition) + +#endif /* EGL_NV_stream_cross_partition */ + +/* ---------------------- EGL_NV_stream_cross_process ---------------------- */ + +#ifndef EGL_NV_stream_cross_process +#define EGL_NV_stream_cross_process 1 + +#define EGL_STREAM_CROSS_PROCESS_NV 0x3245 + +#define EGLEW_NV_stream_cross_process EGLEW_GET_VAR(__EGLEW_NV_stream_cross_process) + +#endif /* EGL_NV_stream_cross_process */ + +/* ----------------------- EGL_NV_stream_cross_system ---------------------- */ + +#ifndef EGL_NV_stream_cross_system +#define EGL_NV_stream_cross_system 1 + +#define EGL_STREAM_CROSS_SYSTEM_NV 0x334F + +#define EGLEW_NV_stream_cross_system EGLEW_GET_VAR(__EGLEW_NV_stream_cross_system) + +#endif /* EGL_NV_stream_cross_system */ + +/* ------------------------ EGL_NV_stream_fifo_next ------------------------ */ + +#ifndef EGL_NV_stream_fifo_next +#define EGL_NV_stream_fifo_next 1 + +#define EGL_PENDING_FRAME_NV 0x3329 +#define EGL_STREAM_TIME_PENDING_NV 0x332A + +#define EGLEW_NV_stream_fifo_next EGLEW_GET_VAR(__EGLEW_NV_stream_fifo_next) + +#endif /* EGL_NV_stream_fifo_next */ + +/* --------------------- EGL_NV_stream_fifo_synchronous -------------------- */ + +#ifndef EGL_NV_stream_fifo_synchronous +#define EGL_NV_stream_fifo_synchronous 1 + +#define EGL_STREAM_FIFO_SYNCHRONOUS_NV 0x3336 + +#define EGLEW_NV_stream_fifo_synchronous EGLEW_GET_VAR(__EGLEW_NV_stream_fifo_synchronous) + +#endif /* EGL_NV_stream_fifo_synchronous */ + +/* ----------------------- EGL_NV_stream_frame_limits ---------------------- */ + +#ifndef EGL_NV_stream_frame_limits +#define EGL_NV_stream_frame_limits 1 + +#define EGL_PRODUCER_MAX_FRAME_HINT_NV 0x3337 +#define EGL_CONSUMER_MAX_FRAME_HINT_NV 0x3338 + +#define EGLEW_NV_stream_frame_limits EGLEW_GET_VAR(__EGLEW_NV_stream_frame_limits) + +#endif /* EGL_NV_stream_frame_limits */ + +/* ------------------------- EGL_NV_stream_metadata ------------------------ */ + +#ifndef EGL_NV_stream_metadata +#define EGL_NV_stream_metadata 1 + +#define EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250 +#define EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251 +#define EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252 +#define EGL_PRODUCER_METADATA_NV 0x3253 +#define EGL_CONSUMER_METADATA_NV 0x3254 +#define EGL_METADATA0_SIZE_NV 0x3255 +#define EGL_METADATA1_SIZE_NV 0x3256 +#define EGL_METADATA2_SIZE_NV 0x3257 +#define EGL_METADATA3_SIZE_NV 0x3258 +#define EGL_METADATA0_TYPE_NV 0x3259 +#define EGL_METADATA1_TYPE_NV 0x325A +#define EGL_METADATA2_TYPE_NV 0x325B +#define EGL_METADATA3_TYPE_NV 0x325C +#define EGL_PENDING_METADATA_NV 0x3328 + +typedef EGLBoolean ( * PFNEGLQUERYDISPLAYATTRIBNVPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib * value); +typedef EGLBoolean ( * PFNEGLQUERYSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void * data); +typedef EGLBoolean ( * PFNEGLSETSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void * data); + +#define eglQueryDisplayAttribNV EGLEW_GET_FUN(__eglewQueryDisplayAttribNV) +#define eglQueryStreamMetadataNV EGLEW_GET_FUN(__eglewQueryStreamMetadataNV) +#define eglSetStreamMetadataNV EGLEW_GET_FUN(__eglewSetStreamMetadataNV) + +#define EGLEW_NV_stream_metadata EGLEW_GET_VAR(__EGLEW_NV_stream_metadata) + +#endif /* EGL_NV_stream_metadata */ + +/* -------------------------- EGL_NV_stream_remote ------------------------- */ + +#ifndef EGL_NV_stream_remote +#define EGL_NV_stream_remote 1 + +#define EGL_STREAM_STATE_INITIALIZING_NV 0x3240 +#define EGL_STREAM_TYPE_NV 0x3241 +#define EGL_STREAM_PROTOCOL_NV 0x3242 +#define EGL_STREAM_ENDPOINT_NV 0x3243 +#define EGL_STREAM_LOCAL_NV 0x3244 +#define EGL_STREAM_PROTOCOL_FD_NV 0x3246 +#define EGL_STREAM_PRODUCER_NV 0x3247 +#define EGL_STREAM_CONSUMER_NV 0x3248 + +#define EGLEW_NV_stream_remote EGLEW_GET_VAR(__EGLEW_NV_stream_remote) + +#endif /* EGL_NV_stream_remote */ + +/* -------------------------- EGL_NV_stream_reset -------------------------- */ + +#ifndef EGL_NV_stream_reset +#define EGL_NV_stream_reset 1 + +#define EGL_SUPPORT_RESET_NV 0x3334 +#define EGL_SUPPORT_REUSE_NV 0x3335 + +typedef EGLBoolean ( * PFNEGLRESETSTREAMNVPROC) (EGLDisplay dpy, EGLStreamKHR stream); + +#define eglResetStreamNV EGLEW_GET_FUN(__eglewResetStreamNV) + +#define EGLEW_NV_stream_reset EGLEW_GET_VAR(__EGLEW_NV_stream_reset) + +#endif /* EGL_NV_stream_reset */ + +/* -------------------------- EGL_NV_stream_socket ------------------------- */ + +#ifndef EGL_NV_stream_socket +#define EGL_NV_stream_socket 1 + +#define EGL_STREAM_PROTOCOL_SOCKET_NV 0x324B +#define EGL_SOCKET_HANDLE_NV 0x324C +#define EGL_SOCKET_TYPE_NV 0x324D + +#define EGLEW_NV_stream_socket EGLEW_GET_VAR(__EGLEW_NV_stream_socket) + +#endif /* EGL_NV_stream_socket */ + +/* ----------------------- EGL_NV_stream_socket_inet ----------------------- */ + +#ifndef EGL_NV_stream_socket_inet +#define EGL_NV_stream_socket_inet 1 + +#define EGL_SOCKET_TYPE_INET_NV 0x324F + +#define EGLEW_NV_stream_socket_inet EGLEW_GET_VAR(__EGLEW_NV_stream_socket_inet) + +#endif /* EGL_NV_stream_socket_inet */ + +/* ----------------------- EGL_NV_stream_socket_unix ----------------------- */ + +#ifndef EGL_NV_stream_socket_unix +#define EGL_NV_stream_socket_unix 1 + +#define EGL_SOCKET_TYPE_UNIX_NV 0x324E + +#define EGLEW_NV_stream_socket_unix EGLEW_GET_VAR(__EGLEW_NV_stream_socket_unix) + +#endif /* EGL_NV_stream_socket_unix */ + +/* --------------------------- EGL_NV_stream_sync -------------------------- */ + +#ifndef EGL_NV_stream_sync +#define EGL_NV_stream_sync 1 + +#define EGL_SYNC_TYPE_KHR 0x30F7 +#define EGL_SYNC_NEW_FRAME_NV 0x321F + +typedef EGLSyncKHR ( * PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint * attrib_list); + +#define eglCreateStreamSyncNV EGLEW_GET_FUN(__eglewCreateStreamSyncNV) + +#define EGLEW_NV_stream_sync EGLEW_GET_VAR(__EGLEW_NV_stream_sync) + +#endif /* EGL_NV_stream_sync */ + +/* ------------------------------ EGL_NV_sync ------------------------------ */ + +#ifndef EGL_NV_sync +#define EGL_NV_sync 1 + +#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6 +#define EGL_SYNC_STATUS_NV 0x30E7 +#define EGL_SIGNALED_NV 0x30E8 +#define EGL_UNSIGNALED_NV 0x30E9 +#define EGL_ALREADY_SIGNALED_NV 0x30EA +#define EGL_TIMEOUT_EXPIRED_NV 0x30EB +#define EGL_CONDITION_SATISFIED_NV 0x30EC +#define EGL_SYNC_TYPE_NV 0x30ED +#define EGL_SYNC_CONDITION_NV 0x30EE +#define EGL_SYNC_FENCE_NV 0x30EF +#define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFF + +typedef EGLint ( * PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); +typedef EGLSyncNV ( * PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint * attrib_list); +typedef EGLBoolean ( * PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync); +typedef EGLBoolean ( * PFNEGLFENCENVPROC) (EGLSyncNV sync); +typedef EGLBoolean ( * PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint * value); +typedef EGLBoolean ( * PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode); + +#define eglClientWaitSyncNV EGLEW_GET_FUN(__eglewClientWaitSyncNV) +#define eglCreateFenceSyncNV EGLEW_GET_FUN(__eglewCreateFenceSyncNV) +#define eglDestroySyncNV EGLEW_GET_FUN(__eglewDestroySyncNV) +#define eglFenceNV EGLEW_GET_FUN(__eglewFenceNV) +#define eglGetSyncAttribNV EGLEW_GET_FUN(__eglewGetSyncAttribNV) +#define eglSignalSyncNV EGLEW_GET_FUN(__eglewSignalSyncNV) + +#define EGLEW_NV_sync EGLEW_GET_VAR(__EGLEW_NV_sync) + +#endif /* EGL_NV_sync */ + +/* --------------------------- EGL_NV_system_time -------------------------- */ + +#ifndef EGL_NV_system_time +#define EGL_NV_system_time 1 + +typedef EGLuint64NV ( * PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) ( void ); +typedef EGLuint64NV ( * PFNEGLGETSYSTEMTIMENVPROC) ( void ); + +#define eglGetSystemTimeFrequencyNV EGLEW_GET_FUN(__eglewGetSystemTimeFrequencyNV) +#define eglGetSystemTimeNV EGLEW_GET_FUN(__eglewGetSystemTimeNV) + +#define EGLEW_NV_system_time EGLEW_GET_VAR(__EGLEW_NV_system_time) + +#endif /* EGL_NV_system_time */ + +/* --------------------- EGL_TIZEN_image_native_buffer --------------------- */ + +#ifndef EGL_TIZEN_image_native_buffer +#define EGL_TIZEN_image_native_buffer 1 + +#define EGL_NATIVE_BUFFER_TIZEN 0x32A0 + +#define EGLEW_TIZEN_image_native_buffer EGLEW_GET_VAR(__EGLEW_TIZEN_image_native_buffer) + +#endif /* EGL_TIZEN_image_native_buffer */ + +/* --------------------- EGL_TIZEN_image_native_surface -------------------- */ + +#ifndef EGL_TIZEN_image_native_surface +#define EGL_TIZEN_image_native_surface 1 + +#define EGL_NATIVE_SURFACE_TIZEN 0x32A1 + +#define EGLEW_TIZEN_image_native_surface EGLEW_GET_VAR(__EGLEW_TIZEN_image_native_surface) + +#endif /* EGL_TIZEN_image_native_surface */ + +/* ------------------------------------------------------------------------- */ + +#define EGLEW_FUN_EXPORT GLEW_FUN_EXPORT +#define EGLEW_VAR_EXPORT GLEW_VAR_EXPORT + +EGLEW_FUN_EXPORT PFNEGLCHOOSECONFIGPROC __eglewChooseConfig; +EGLEW_FUN_EXPORT PFNEGLCOPYBUFFERSPROC __eglewCopyBuffers; +EGLEW_FUN_EXPORT PFNEGLCREATECONTEXTPROC __eglewCreateContext; +EGLEW_FUN_EXPORT PFNEGLCREATEPBUFFERSURFACEPROC __eglewCreatePbufferSurface; +EGLEW_FUN_EXPORT PFNEGLCREATEPIXMAPSURFACEPROC __eglewCreatePixmapSurface; +EGLEW_FUN_EXPORT PFNEGLCREATEWINDOWSURFACEPROC __eglewCreateWindowSurface; +EGLEW_FUN_EXPORT PFNEGLDESTROYCONTEXTPROC __eglewDestroyContext; +EGLEW_FUN_EXPORT PFNEGLDESTROYSURFACEPROC __eglewDestroySurface; +EGLEW_FUN_EXPORT PFNEGLGETCONFIGATTRIBPROC __eglewGetConfigAttrib; +EGLEW_FUN_EXPORT PFNEGLGETCONFIGSPROC __eglewGetConfigs; +EGLEW_FUN_EXPORT PFNEGLGETCURRENTDISPLAYPROC __eglewGetCurrentDisplay; +EGLEW_FUN_EXPORT PFNEGLGETCURRENTSURFACEPROC __eglewGetCurrentSurface; +EGLEW_FUN_EXPORT PFNEGLGETDISPLAYPROC __eglewGetDisplay; +EGLEW_FUN_EXPORT PFNEGLGETERRORPROC __eglewGetError; +EGLEW_FUN_EXPORT PFNEGLINITIALIZEPROC __eglewInitialize; +EGLEW_FUN_EXPORT PFNEGLMAKECURRENTPROC __eglewMakeCurrent; +EGLEW_FUN_EXPORT PFNEGLQUERYCONTEXTPROC __eglewQueryContext; +EGLEW_FUN_EXPORT PFNEGLQUERYSTRINGPROC __eglewQueryString; +EGLEW_FUN_EXPORT PFNEGLQUERYSURFACEPROC __eglewQuerySurface; +EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSPROC __eglewSwapBuffers; +EGLEW_FUN_EXPORT PFNEGLTERMINATEPROC __eglewTerminate; +EGLEW_FUN_EXPORT PFNEGLWAITGLPROC __eglewWaitGL; +EGLEW_FUN_EXPORT PFNEGLWAITNATIVEPROC __eglewWaitNative; + +EGLEW_FUN_EXPORT PFNEGLBINDTEXIMAGEPROC __eglewBindTexImage; +EGLEW_FUN_EXPORT PFNEGLRELEASETEXIMAGEPROC __eglewReleaseTexImage; +EGLEW_FUN_EXPORT PFNEGLSURFACEATTRIBPROC __eglewSurfaceAttrib; +EGLEW_FUN_EXPORT PFNEGLSWAPINTERVALPROC __eglewSwapInterval; + +EGLEW_FUN_EXPORT PFNEGLBINDAPIPROC __eglewBindAPI; +EGLEW_FUN_EXPORT PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC __eglewCreatePbufferFromClientBuffer; +EGLEW_FUN_EXPORT PFNEGLQUERYAPIPROC __eglewQueryAPI; +EGLEW_FUN_EXPORT PFNEGLRELEASETHREADPROC __eglewReleaseThread; +EGLEW_FUN_EXPORT PFNEGLWAITCLIENTPROC __eglewWaitClient; + +EGLEW_FUN_EXPORT PFNEGLGETCURRENTCONTEXTPROC __eglewGetCurrentContext; + +EGLEW_FUN_EXPORT PFNEGLCLIENTWAITSYNCPROC __eglewClientWaitSync; +EGLEW_FUN_EXPORT PFNEGLCREATEIMAGEPROC __eglewCreateImage; +EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC __eglewCreatePlatformPixmapSurface; +EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMWINDOWSURFACEPROC __eglewCreatePlatformWindowSurface; +EGLEW_FUN_EXPORT PFNEGLCREATESYNCPROC __eglewCreateSync; +EGLEW_FUN_EXPORT PFNEGLDESTROYIMAGEPROC __eglewDestroyImage; +EGLEW_FUN_EXPORT PFNEGLDESTROYSYNCPROC __eglewDestroySync; +EGLEW_FUN_EXPORT PFNEGLGETPLATFORMDISPLAYPROC __eglewGetPlatformDisplay; +EGLEW_FUN_EXPORT PFNEGLGETSYNCATTRIBPROC __eglewGetSyncAttrib; +EGLEW_FUN_EXPORT PFNEGLWAITSYNCPROC __eglewWaitSync; + +EGLEW_FUN_EXPORT PFNEGLSETBLOBCACHEFUNCSANDROIDPROC __eglewSetBlobCacheFuncsANDROID; + +EGLEW_FUN_EXPORT PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC __eglewCreateNativeClientBufferANDROID; + +EGLEW_FUN_EXPORT PFNEGLDUPNATIVEFENCEFDANDROIDPROC __eglewDupNativeFenceFDANDROID; + +EGLEW_FUN_EXPORT PFNEGLPRESENTATIONTIMEANDROIDPROC __eglewPresentationTimeANDROID; + +EGLEW_FUN_EXPORT PFNEGLQUERYSURFACEPOINTERANGLEPROC __eglewQuerySurfacePointerANGLE; + +EGLEW_FUN_EXPORT PFNEGLQUERYDEVICESEXTPROC __eglewQueryDevicesEXT; + +EGLEW_FUN_EXPORT PFNEGLQUERYDEVICEATTRIBEXTPROC __eglewQueryDeviceAttribEXT; +EGLEW_FUN_EXPORT PFNEGLQUERYDEVICESTRINGEXTPROC __eglewQueryDeviceStringEXT; +EGLEW_FUN_EXPORT PFNEGLQUERYDISPLAYATTRIBEXTPROC __eglewQueryDisplayAttribEXT; + +EGLEW_FUN_EXPORT PFNEGLQUERYDMABUFFORMATSEXTPROC __eglewQueryDmaBufFormatsEXT; +EGLEW_FUN_EXPORT PFNEGLQUERYDMABUFMODIFIERSEXTPROC __eglewQueryDmaBufModifiersEXT; + +EGLEW_FUN_EXPORT PFNEGLGETOUTPUTLAYERSEXTPROC __eglewGetOutputLayersEXT; +EGLEW_FUN_EXPORT PFNEGLGETOUTPUTPORTSEXTPROC __eglewGetOutputPortsEXT; +EGLEW_FUN_EXPORT PFNEGLOUTPUTLAYERATTRIBEXTPROC __eglewOutputLayerAttribEXT; +EGLEW_FUN_EXPORT PFNEGLOUTPUTPORTATTRIBEXTPROC __eglewOutputPortAttribEXT; +EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC __eglewQueryOutputLayerAttribEXT; +EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC __eglewQueryOutputLayerStringEXT; +EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC __eglewQueryOutputPortAttribEXT; +EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC __eglewQueryOutputPortStringEXT; + +EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC __eglewCreatePlatformPixmapSurfaceEXT; +EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC __eglewCreatePlatformWindowSurfaceEXT; +EGLEW_FUN_EXPORT PFNEGLGETPLATFORMDISPLAYEXTPROC __eglewGetPlatformDisplayEXT; + +EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMEROUTPUTEXTPROC __eglewStreamConsumerOutputEXT; + +EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC __eglewSwapBuffersWithDamageEXT; + +EGLEW_FUN_EXPORT PFNEGLCREATEPIXMAPSURFACEHIPROC __eglewCreatePixmapSurfaceHI; + +EGLEW_FUN_EXPORT PFNEGLCREATESYNC64KHRPROC __eglewCreateSync64KHR; + +EGLEW_FUN_EXPORT PFNEGLDEBUGMESSAGECONTROLKHRPROC __eglewDebugMessageControlKHR; +EGLEW_FUN_EXPORT PFNEGLLABELOBJECTKHRPROC __eglewLabelObjectKHR; +EGLEW_FUN_EXPORT PFNEGLQUERYDEBUGKHRPROC __eglewQueryDebugKHR; + +EGLEW_FUN_EXPORT PFNEGLCREATEIMAGEKHRPROC __eglewCreateImageKHR; +EGLEW_FUN_EXPORT PFNEGLDESTROYIMAGEKHRPROC __eglewDestroyImageKHR; + +EGLEW_FUN_EXPORT PFNEGLLOCKSURFACEKHRPROC __eglewLockSurfaceKHR; +EGLEW_FUN_EXPORT PFNEGLUNLOCKSURFACEKHRPROC __eglewUnlockSurfaceKHR; + +EGLEW_FUN_EXPORT PFNEGLQUERYSURFACE64KHRPROC __eglewQuerySurface64KHR; + +EGLEW_FUN_EXPORT PFNEGLSETDAMAGEREGIONKHRPROC __eglewSetDamageRegionKHR; + +EGLEW_FUN_EXPORT PFNEGLCLIENTWAITSYNCKHRPROC __eglewClientWaitSyncKHR; +EGLEW_FUN_EXPORT PFNEGLCREATESYNCKHRPROC __eglewCreateSyncKHR; +EGLEW_FUN_EXPORT PFNEGLDESTROYSYNCKHRPROC __eglewDestroySyncKHR; +EGLEW_FUN_EXPORT PFNEGLGETSYNCATTRIBKHRPROC __eglewGetSyncAttribKHR; +EGLEW_FUN_EXPORT PFNEGLSIGNALSYNCKHRPROC __eglewSignalSyncKHR; + +EGLEW_FUN_EXPORT PFNEGLCREATESTREAMKHRPROC __eglewCreateStreamKHR; +EGLEW_FUN_EXPORT PFNEGLDESTROYSTREAMKHRPROC __eglewDestroyStreamKHR; +EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMKHRPROC __eglewQueryStreamKHR; +EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMU64KHRPROC __eglewQueryStreamu64KHR; +EGLEW_FUN_EXPORT PFNEGLSTREAMATTRIBKHRPROC __eglewStreamAttribKHR; + +EGLEW_FUN_EXPORT PFNEGLCREATESTREAMATTRIBKHRPROC __eglewCreateStreamAttribKHR; +EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMATTRIBKHRPROC __eglewQueryStreamAttribKHR; +EGLEW_FUN_EXPORT PFNEGLSETSTREAMATTRIBKHRPROC __eglewSetStreamAttribKHR; +EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC __eglewStreamConsumerAcquireAttribKHR; +EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC __eglewStreamConsumerReleaseAttribKHR; + +EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERACQUIREKHRPROC __eglewStreamConsumerAcquireKHR; +EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC __eglewStreamConsumerGLTextureExternalKHR; +EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERRELEASEKHRPROC __eglewStreamConsumerReleaseKHR; + +EGLEW_FUN_EXPORT PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC __eglewCreateStreamFromFileDescriptorKHR; +EGLEW_FUN_EXPORT PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC __eglewGetStreamFileDescriptorKHR; + +EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMTIMEKHRPROC __eglewQueryStreamTimeKHR; + +EGLEW_FUN_EXPORT PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC __eglewCreateStreamProducerSurfaceKHR; + +EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC __eglewSwapBuffersWithDamageKHR; + +EGLEW_FUN_EXPORT PFNEGLWAITSYNCKHRPROC __eglewWaitSyncKHR; + +EGLEW_FUN_EXPORT PFNEGLCREATEDRMIMAGEMESAPROC __eglewCreateDRMImageMESA; +EGLEW_FUN_EXPORT PFNEGLEXPORTDRMIMAGEMESAPROC __eglewExportDRMImageMESA; + +EGLEW_FUN_EXPORT PFNEGLEXPORTDMABUFIMAGEMESAPROC __eglewExportDMABUFImageMESA; +EGLEW_FUN_EXPORT PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC __eglewExportDMABUFImageQueryMESA; + +EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSREGIONNOKPROC __eglewSwapBuffersRegionNOK; + +EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSREGION2NOKPROC __eglewSwapBuffersRegion2NOK; + +EGLEW_FUN_EXPORT PFNEGLQUERYNATIVEDISPLAYNVPROC __eglewQueryNativeDisplayNV; +EGLEW_FUN_EXPORT PFNEGLQUERYNATIVEPIXMAPNVPROC __eglewQueryNativePixmapNV; +EGLEW_FUN_EXPORT PFNEGLQUERYNATIVEWINDOWNVPROC __eglewQueryNativeWindowNV; + +EGLEW_FUN_EXPORT PFNEGLPOSTSUBBUFFERNVPROC __eglewPostSubBufferNV; + +EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC __eglewStreamConsumerGLTextureExternalAttribsNV; + +EGLEW_FUN_EXPORT PFNEGLQUERYDISPLAYATTRIBNVPROC __eglewQueryDisplayAttribNV; +EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMMETADATANVPROC __eglewQueryStreamMetadataNV; +EGLEW_FUN_EXPORT PFNEGLSETSTREAMMETADATANVPROC __eglewSetStreamMetadataNV; + +EGLEW_FUN_EXPORT PFNEGLRESETSTREAMNVPROC __eglewResetStreamNV; + +EGLEW_FUN_EXPORT PFNEGLCREATESTREAMSYNCNVPROC __eglewCreateStreamSyncNV; + +EGLEW_FUN_EXPORT PFNEGLCLIENTWAITSYNCNVPROC __eglewClientWaitSyncNV; +EGLEW_FUN_EXPORT PFNEGLCREATEFENCESYNCNVPROC __eglewCreateFenceSyncNV; +EGLEW_FUN_EXPORT PFNEGLDESTROYSYNCNVPROC __eglewDestroySyncNV; +EGLEW_FUN_EXPORT PFNEGLFENCENVPROC __eglewFenceNV; +EGLEW_FUN_EXPORT PFNEGLGETSYNCATTRIBNVPROC __eglewGetSyncAttribNV; +EGLEW_FUN_EXPORT PFNEGLSIGNALSYNCNVPROC __eglewSignalSyncNV; + +EGLEW_FUN_EXPORT PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC __eglewGetSystemTimeFrequencyNV; +EGLEW_FUN_EXPORT PFNEGLGETSYSTEMTIMENVPROC __eglewGetSystemTimeNV; +EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_0; +EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_1; +EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_2; +EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_3; +EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_4; +EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_5; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_blob_cache; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_create_native_client_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_framebuffer_target; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_front_buffer_auto_refresh; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_image_native_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_native_fence_sync; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_presentation_time; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_recordable; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_d3d_share_handle_client_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_device_d3d; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_query_surface_pointer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_surface_d3d_texture_2d_share_handle; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_window_fixed_size; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ARM_implicit_external_sync; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ARM_pixmap_multisample_discard; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_buffer_age; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_client_extensions; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_create_context_robustness; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_base; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_drm; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_enumeration; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_openwf; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_query; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_bt2020_linear; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_bt2020_pq; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_scrgb_linear; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_image_dma_buf_import; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_image_dma_buf_import_modifiers; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_multiview_window; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_output_base; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_output_drm; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_output_openwf; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_pixel_format_float; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_base; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_device; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_wayland; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_x11; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_protected_content; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_protected_surface; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_stream_consumer_egloutput; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_surface_SMPTE2086_metadata; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_swap_buffers_with_damage; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_yuv_surface; +EGLEW_VAR_EXPORT GLboolean __EGLEW_HI_clientpixmap; +EGLEW_VAR_EXPORT GLboolean __EGLEW_HI_colorformats; +EGLEW_VAR_EXPORT GLboolean __EGLEW_IMG_context_priority; +EGLEW_VAR_EXPORT GLboolean __EGLEW_IMG_image_plane_attribs; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_cl_event; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_cl_event2; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_client_get_all_proc_addresses; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_config_attribs; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_context_flush_control; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_create_context; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_create_context_no_error; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_debug; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_fence_sync; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_get_all_proc_addresses; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_colorspace; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_renderbuffer_image; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_texture_2D_image; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_texture_3D_image; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_texture_cubemap_image; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_image; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_image_base; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_image_pixmap; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_lock_surface; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_lock_surface2; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_lock_surface3; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_mutable_render_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_no_config_context; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_partial_update; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_android; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_gbm; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_wayland; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_x11; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_reusable_sync; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_attrib; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_consumer_gltexture; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_cross_process_fd; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_fifo; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_producer_aldatalocator; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_producer_eglsurface; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_surfaceless_context; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_swap_buffers_with_damage; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_vg_parent_image; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_wait_sync; +EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_drm_image; +EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_image_dma_buf_export; +EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_platform_gbm; +EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_platform_surfaceless; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NOK_swap_region; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NOK_swap_region2; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NOK_texture_from_pixmap; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_3dvision_surface; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_coverage_sample; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_coverage_sample_resolve; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_cuda_event; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_depth_nonlinear; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_device_cuda; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_native_query; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_post_convert_rounding; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_post_sub_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_robustness_video_memory_purge; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_consumer_gltexture_yuv; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_display; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_object; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_partition; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_process; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_system; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_fifo_next; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_fifo_synchronous; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_frame_limits; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_metadata; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_remote; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_reset; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_socket; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_socket_inet; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_socket_unix; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_sync; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_sync; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_system_time; +EGLEW_VAR_EXPORT GLboolean __EGLEW_TIZEN_image_native_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_TIZEN_image_native_surface; +/* ------------------------------------------------------------------------ */ + +GLEWAPI GLenum GLEWAPIENTRY eglewInit (EGLDisplay display); +GLEWAPI GLboolean GLEWAPIENTRY eglewIsSupported (const char *name); + +#define EGLEW_GET_VAR(x) (*(const GLboolean*)&x) +#define EGLEW_GET_FUN(x) x + +GLEWAPI GLboolean GLEWAPIENTRY eglewGetExtension (const char *name); + +#ifdef __cplusplus +} +#endif + +#endif /* __eglew_h__ */ diff --git a/win64/include/libuv/uv.h b/win64/include/uv/uv.h similarity index 100% rename from win64/include/libuv/uv.h rename to win64/include/uv/uv.h diff --git a/win64/include/libuv/uv/aix.h b/win64/include/uv/uv/aix.h similarity index 100% rename from win64/include/libuv/uv/aix.h rename to win64/include/uv/uv/aix.h diff --git a/win64/include/libuv/uv/android-ifaddrs.h b/win64/include/uv/uv/android-ifaddrs.h similarity index 100% rename from win64/include/libuv/uv/android-ifaddrs.h rename to win64/include/uv/uv/android-ifaddrs.h diff --git a/win64/include/libuv/uv/bsd.h b/win64/include/uv/uv/bsd.h similarity index 100% rename from win64/include/libuv/uv/bsd.h rename to win64/include/uv/uv/bsd.h diff --git a/win64/include/libuv/uv/darwin.h b/win64/include/uv/uv/darwin.h similarity index 100% rename from win64/include/libuv/uv/darwin.h rename to win64/include/uv/uv/darwin.h diff --git a/win64/include/libuv/uv/errno.h b/win64/include/uv/uv/errno.h similarity index 100% rename from win64/include/libuv/uv/errno.h rename to win64/include/uv/uv/errno.h diff --git a/win64/include/libuv/uv/linux.h b/win64/include/uv/uv/linux.h similarity index 100% rename from win64/include/libuv/uv/linux.h rename to win64/include/uv/uv/linux.h diff --git a/win64/include/libuv/uv/os390.h b/win64/include/uv/uv/os390.h similarity index 100% rename from win64/include/libuv/uv/os390.h rename to win64/include/uv/uv/os390.h diff --git a/win64/include/libuv/uv/posix.h b/win64/include/uv/uv/posix.h similarity index 100% rename from win64/include/libuv/uv/posix.h rename to win64/include/uv/uv/posix.h diff --git a/win64/include/libuv/uv/stdint-msvc2008.h b/win64/include/uv/uv/stdint-msvc2008.h similarity index 100% rename from win64/include/libuv/uv/stdint-msvc2008.h rename to win64/include/uv/uv/stdint-msvc2008.h diff --git a/win64/include/libuv/uv/sunos.h b/win64/include/uv/uv/sunos.h similarity index 100% rename from win64/include/libuv/uv/sunos.h rename to win64/include/uv/uv/sunos.h diff --git a/win64/include/libuv/uv/threadpool.h b/win64/include/uv/uv/threadpool.h similarity index 100% rename from win64/include/libuv/uv/threadpool.h rename to win64/include/uv/uv/threadpool.h diff --git a/win64/include/libuv/uv/tree.h b/win64/include/uv/uv/tree.h similarity index 100% rename from win64/include/libuv/uv/tree.h rename to win64/include/uv/uv/tree.h diff --git a/win64/include/libuv/uv/unix.h b/win64/include/uv/uv/unix.h similarity index 100% rename from win64/include/libuv/uv/unix.h rename to win64/include/uv/uv/unix.h diff --git a/win64/include/libuv/uv/version.h b/win64/include/uv/uv/version.h similarity index 100% rename from win64/include/libuv/uv/version.h rename to win64/include/uv/uv/version.h diff --git a/win64/include/libuv/uv/win.h b/win64/include/uv/uv/win.h similarity index 100% rename from win64/include/libuv/uv/win.h rename to win64/include/uv/uv/win.h diff --git a/win64/include/webp/config.h.in b/win64/include/webp/config.h.in new file mode 100644 index 00000000..6ac026e6 --- /dev/null +++ b/win64/include/webp/config.h.in @@ -0,0 +1,149 @@ +/* src/webp/config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* Set to 1 if __builtin_bswap16 is available */ +#undef HAVE_BUILTIN_BSWAP16 + +/* Set to 1 if __builtin_bswap32 is available */ +#undef HAVE_BUILTIN_BSWAP32 + +/* Set to 1 if __builtin_bswap64 is available */ +#undef HAVE_BUILTIN_BSWAP64 + +/* Define to 1 if you have the <cpu-features.h> header file. */ +#undef HAVE_CPU_FEATURES_H + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the <GLUT/glut.h> header file. */ +#undef HAVE_GLUT_GLUT_H + +/* Define to 1 if you have the <GL/glut.h> header file. */ +#undef HAVE_GL_GLUT_H + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the <OpenGL/glut.h> header file. */ +#undef HAVE_OPENGL_GLUT_H + +/* Have PTHREAD_PRIO_INHERIT. */ +#undef HAVE_PTHREAD_PRIO_INHERIT + +/* Define to 1 if you have the <shlwapi.h> header file. */ +#undef HAVE_SHLWAPI_H + +/* Define to 1 if you have the <stdint.h> header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the <sys/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have the <wincodec.h> header file. */ +#undef HAVE_WINCODEC_H + +/* Define to 1 if you have the <windows.h> header file. */ +#undef HAVE_WINDOWS_H + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#undef LT_OBJDIR + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +#undef PTHREAD_CREATE_JOINABLE + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION + +/* Set to 1 if GIF library is installed */ +#undef WEBP_HAVE_GIF + +/* Set to 1 if OpenGL is supported */ +#undef WEBP_HAVE_GL + +/* Set to 1 if JPEG library is installed */ +#undef WEBP_HAVE_JPEG + +/* Set to 1 if NEON is supported */ +#undef WEBP_HAVE_NEON + +/* Set to 1 if runtime detection of NEON is enabled */ +#undef WEBP_HAVE_NEON_RTCD + +/* Set to 1 if PNG library is installed */ +#undef WEBP_HAVE_PNG + +/* Set to 1 if SDL library is installed */ +#undef WEBP_HAVE_SDL + +/* Set to 1 if SSE2 is supported */ +#undef WEBP_HAVE_SSE2 + +/* Set to 1 if SSE4.1 is supported */ +#undef WEBP_HAVE_SSE41 + +/* Set to 1 if TIFF library is installed */ +#undef WEBP_HAVE_TIFF + +/* Enable near lossless encoding */ +#undef WEBP_NEAR_LOSSLESS + +/* Undefine this to disable thread support. */ +#undef WEBP_USE_THREAD + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif diff --git a/win64/include/webp/decode.h b/win64/include/webp/decode.h index 80dd0ef0..44fcd64a 100644 --- a/win64/include/webp/decode.h +++ b/win64/include/webp/decode.h @@ -453,7 +453,7 @@ struct WebPDecoderOptions { int scaled_width, scaled_height; // final resolution int use_threads; // if true, use multi-threaded decoding int dithering_strength; // dithering strength (0=Off, 100=full) - int flip; // flip output vertically + int flip; // if true, flip output vertically int alpha_dithering_strength; // alpha dithering strength in [0..100] uint32_t pad[5]; // padding for later use diff --git a/win64/include/webp/encode.h b/win64/include/webp/encode.h index 655166e7..b4c599df 100644 --- a/win64/include/webp/encode.h +++ b/win64/include/webp/encode.h @@ -148,7 +148,8 @@ struct WebPConfig { int use_delta_palette; // reserved for future lossless feature int use_sharp_yuv; // if needed, use sharp (and slow) RGB->YUV conversion - uint32_t pad[2]; // padding for later use + int qmin; // minimum permissible quality factor + int qmax; // maximum permissible quality factor }; // Enumerate some predefined settings for WebPConfig, depending on the type @@ -291,6 +292,11 @@ typedef enum WebPEncodingError { #define WEBP_MAX_DIMENSION 16383 // Main exchange structure (input samples, output bytes, statistics) +// +// Once WebPPictureInit() has been called, it's ok to make all the INPUT fields +// (use_argb, y/u/v, argb, ...) point to user-owned data, even if +// WebPPictureAlloc() has been called. Depending on the value use_argb, +// it's guaranteed that either *argb or *y/*u/*v content will be kept untouched. struct WebPPicture { // INPUT ////////////// diff --git a/win64/include/webp/format_constants.h b/win64/include/webp/format_constants.h new file mode 100644 index 00000000..eca6981a --- /dev/null +++ b/win64/include/webp/format_constants.h @@ -0,0 +1,87 @@ +// Copyright 2012 Google Inc. All Rights Reserved. +// +// Use of this source code is governed by a BSD-style license +// that can be found in the COPYING file in the root of the source +// tree. An additional intellectual property rights grant can be found +// in the file PATENTS. All contributing project authors may +// be found in the AUTHORS file in the root of the source tree. +// ----------------------------------------------------------------------------- +// +// Internal header for constants related to WebP file format. +// +// Author: Urvang (urvang@google.com) + +#ifndef WEBP_WEBP_FORMAT_CONSTANTS_H_ +#define WEBP_WEBP_FORMAT_CONSTANTS_H_ + +// Create fourcc of the chunk from the chunk tag characters. +#define MKFOURCC(a, b, c, d) ((a) | (b) << 8 | (c) << 16 | (uint32_t)(d) << 24) + +// VP8 related constants. +#define VP8_SIGNATURE 0x9d012a // Signature in VP8 data. +#define VP8_MAX_PARTITION0_SIZE (1 << 19) // max size of mode partition +#define VP8_MAX_PARTITION_SIZE (1 << 24) // max size for token partition +#define VP8_FRAME_HEADER_SIZE 10 // Size of the frame header within VP8 data. + +// VP8L related constants. +#define VP8L_SIGNATURE_SIZE 1 // VP8L signature size. +#define VP8L_MAGIC_BYTE 0x2f // VP8L signature byte. +#define VP8L_IMAGE_SIZE_BITS 14 // Number of bits used to store + // width and height. +#define VP8L_VERSION_BITS 3 // 3 bits reserved for version. +#define VP8L_VERSION 0 // version 0 +#define VP8L_FRAME_HEADER_SIZE 5 // Size of the VP8L frame header. + +#define MAX_PALETTE_SIZE 256 +#define MAX_CACHE_BITS 11 +#define HUFFMAN_CODES_PER_META_CODE 5 +#define ARGB_BLACK 0xff000000 + +#define DEFAULT_CODE_LENGTH 8 +#define MAX_ALLOWED_CODE_LENGTH 15 + +#define NUM_LITERAL_CODES 256 +#define NUM_LENGTH_CODES 24 +#define NUM_DISTANCE_CODES 40 +#define CODE_LENGTH_CODES 19 + +#define MIN_HUFFMAN_BITS 2 // min number of Huffman bits +#define MAX_HUFFMAN_BITS 9 // max number of Huffman bits + +#define TRANSFORM_PRESENT 1 // The bit to be written when next data + // to be read is a transform. +#define NUM_TRANSFORMS 4 // Maximum number of allowed transform + // in a bitstream. +typedef enum { + PREDICTOR_TRANSFORM = 0, + CROSS_COLOR_TRANSFORM = 1, + SUBTRACT_GREEN = 2, + COLOR_INDEXING_TRANSFORM = 3 +} VP8LImageTransformType; + +// Alpha related constants. +#define ALPHA_HEADER_LEN 1 +#define ALPHA_NO_COMPRESSION 0 +#define ALPHA_LOSSLESS_COMPRESSION 1 +#define ALPHA_PREPROCESSED_LEVELS 1 + +// Mux related constants. +#define TAG_SIZE 4 // Size of a chunk tag (e.g. "VP8L"). +#define CHUNK_SIZE_BYTES 4 // Size needed to store chunk's size. +#define CHUNK_HEADER_SIZE 8 // Size of a chunk header. +#define RIFF_HEADER_SIZE 12 // Size of the RIFF header ("RIFFnnnnWEBP"). +#define ANMF_CHUNK_SIZE 16 // Size of an ANMF chunk. +#define ANIM_CHUNK_SIZE 6 // Size of an ANIM chunk. +#define VP8X_CHUNK_SIZE 10 // Size of a VP8X chunk. + +#define MAX_CANVAS_SIZE (1 << 24) // 24-bit max for VP8X width/height. +#define MAX_IMAGE_AREA (1ULL << 32) // 32-bit max for width x height. +#define MAX_LOOP_COUNT (1 << 16) // maximum value for loop-count +#define MAX_DURATION (1 << 24) // maximum duration +#define MAX_POSITION_OFFSET (1 << 24) // maximum frame x/y offset + +// Maximum chunk payload is such that adding the header and padding won't +// overflow a uint32_t. +#define MAX_CHUNK_PAYLOAD (~0U - CHUNK_HEADER_SIZE - 1) + +#endif // WEBP_WEBP_FORMAT_CONSTANTS_H_ diff --git a/win64/include/websockets/libwebsockets.h b/win64/include/websockets/libwebsockets.h index 6bde374c..460c7326 100644 --- a/win64/include/websockets/libwebsockets.h +++ b/win64/include/websockets/libwebsockets.h @@ -1,25 +1,22 @@ /* * libwebsockets - small server side websockets and web server implementation * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> + * Copyright (C) 2010-2016 Andy Green <andy@warmcat.com> * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation: + * version 2.1 of the License. * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. + * This library 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 + * Lesser General Public License for more details. * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA */ /** @file */ @@ -30,38 +27,24 @@ #ifdef __cplusplus #include <cstddef> #include <cstdarg> - +# extern "C" { #else #include <stdarg.h> #endif -#include <string.h> -#include <stdlib.h> - #include "lws_config.h" -/* place for one-shot opaque forward references */ - -struct lws_sequencer; -struct lws_dsh; - /* * CARE: everything using cmake defines needs to be below here */ -#define LWS_US_PER_SEC ((lws_usec_t)1000000) -#define LWS_MS_PER_SEC ((lws_usec_t)1000) -#define LWS_US_PER_MS ((lws_usec_t)1000) -#define LWS_NS_PER_US ((lws_usec_t)1000) - -#define LWS_KI (1024) -#define LWS_MI (LWS_KI * 1024) -#define LWS_GI (LWS_MI * 1024) -#define LWS_TI ((uint64_t)LWS_GI * 1024) -#define LWS_PI ((uint64_t)LWS_TI * 1024) - -#define LWS_US_TO_MS(x) ((x + (LWS_US_PER_MS / 2)) / LWS_US_PER_MS) +#if defined(LWS_WITH_ESP8266) +struct sockaddr_in; +#define LWS_POSIX 0 +#else +#define LWS_POSIX 1 +#endif #if defined(LWS_HAS_INTPTR_T) #include <stdint.h> @@ -79,7 +62,6 @@ typedef unsigned long long lws_intptr_t; #include <ws2tcpip.h> #include <stddef.h> #include <basetsd.h> -#include <io.h> #ifndef _WIN32_WCE #include <fcntl.h> #else @@ -87,41 +69,55 @@ typedef unsigned long long lws_intptr_t; #define O_RDONLY _O_RDONLY #endif +// Visual studio older than 2015 and WIN_CE has only _stricmp +#if (defined(_MSC_VER) && _MSC_VER < 1900) || defined(_WIN32_WCE) +#define strcasecmp _stricmp +#elif !defined(__MINGW32__) +#define strcasecmp stricmp +#endif +#define getdtablesize() 30000 + #define LWS_INLINE __inline #define LWS_VISIBLE #define LWS_WARN_UNUSED_RESULT #define LWS_WARN_DEPRECATED #define LWS_FORMAT(string_index) -#if !defined(LWS_EXTERN) #ifdef LWS_DLL #ifdef LWS_INTERNAL #define LWS_EXTERN extern __declspec(dllexport) #else #define LWS_EXTERN extern __declspec(dllimport) #endif -#endif +#else +#define LWS_EXTERN #endif #define LWS_INVALID_FILE INVALID_HANDLE_VALUE -#define LWS_SOCK_INVALID (INVALID_SOCKET) #define LWS_O_RDONLY _O_RDONLY #define LWS_O_WRONLY _O_WRONLY #define LWS_O_CREAT _O_CREAT #define LWS_O_TRUNC _O_TRUNC +#if !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER < 1900) /* Visual Studio 2015 already defines this in <stdio.h> */ +#define lws_snprintf _snprintf +#endif + #ifndef __func__ #define __func__ __FUNCTION__ #endif +#if !defined(__MINGW32__) &&(!defined(_MSC_VER) || _MSC_VER < 1900) && !defined(snprintf) +#define snprintf(buf,len, format,...) _snprintf_s(buf, len,len, format, __VA_ARGS__) +#endif + #else /* NOT WIN32 */ #include <unistd.h> #if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) #include <sys/capability.h> #endif -#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__QNX__) || defined(__OpenBSD__) -#include <sys/socket.h> +#if defined(__NetBSD__) || defined(__FreeBSD__) #include <netinet/in.h> #endif @@ -131,26 +127,19 @@ typedef unsigned long long lws_intptr_t; #define LWS_O_CREAT O_CREAT #define LWS_O_TRUNC O_TRUNC -#if !defined(LWS_PLAT_OPTEE) && !defined(OPTEE_TA) && !defined(LWS_PLAT_FREERTOS) +#if !defined(LWS_WITH_ESP8266) && !defined(OPTEE_TA) && !defined(LWS_WITH_ESP32) #include <poll.h> #include <netdb.h> #define LWS_INVALID_FILE -1 -#define LWS_SOCK_INVALID (-1) #else #define getdtablesize() (30) -#if defined(LWS_PLAT_FREERTOS) +#if defined(LWS_WITH_ESP32) #define LWS_INVALID_FILE NULL -#define LWS_SOCK_INVALID (-1) #else #define LWS_INVALID_FILE NULL -#define LWS_SOCK_INVALID (-1) #endif #endif -#if defined(__FreeBSD__) -#include <sys/signal.h> -#endif - #if defined(__GNUC__) /* warn_unused_result attribute only supported by GCC 3.4 or later */ @@ -171,12 +160,25 @@ typedef unsigned long long lws_intptr_t; #endif #if defined(__ANDROID__) -#include <netinet/in.h> #include <unistd.h> +#define getdtablesize() sysconf(_SC_OPEN_MAX) #endif #endif +#ifdef LWS_WITH_LIBEV +#include <ev.h> +#endif /* LWS_WITH_LIBEV */ +#ifdef LWS_WITH_LIBUV +#include <uv.h> +#ifdef LWS_HAVE_UV_VERSION_H +#include <uv-version.h> +#endif +#endif /* LWS_WITH_LIBUV */ +#ifdef LWS_WITH_LIBEVENT +#include <event2/event.h> +#endif /* LWS_WITH_LIBEVENT */ + #ifndef LWS_EXTERN #define LWS_EXTERN extern #endif @@ -184,129 +186,208 @@ typedef unsigned long long lws_intptr_t; #ifdef _WIN32 #define random rand #else -#if !defined(LWS_PLAT_OPTEE) +#if !defined(OPTEE_TA) #include <sys/time.h> #include <unistd.h> #endif #endif -#if defined(LWS_WITH_LIBUV_INTERNAL) -#include <uv.h> - -#ifdef LWS_HAVE_UV_VERSION_H -#include <uv-version.h> -#endif - -#ifdef LWS_HAVE_NEW_UV_VERSION_H -#include <uv/version.h> -#endif -#endif - -#if defined(LWS_WITH_TLS) +#ifdef LWS_OPENSSL_SUPPORT #ifdef USE_WOLFSSL #ifdef USE_OLD_CYASSL -#ifdef _WIN32 -/* - * Include user-controlled settings for windows from - * <wolfssl-root>/IDE/WIN/user_settings.h - */ -#include <IDE/WIN/user_settings.h> -#include <cyassl/ctaocrypt/settings.h> -#else -#include <cyassl/options.h> -#endif #include <cyassl/openssl/ssl.h> #include <cyassl/error-ssl.h> - #else -#ifdef _WIN32 -/* - * Include user-controlled settings for windows from - * <wolfssl-root>/IDE/WIN/user_settings.h - */ -#include <IDE/WIN/user_settings.h> -#include <wolfssl/wolfcrypt/settings.h> -#else -#include <wolfssl/options.h> -#endif #include <wolfssl/openssl/ssl.h> #include <wolfssl/error-ssl.h> #endif /* not USE_OLD_CYASSL */ #else #if defined(LWS_WITH_MBEDTLS) -#if defined(LWS_PLAT_FREERTOS) +#if defined(LWS_WITH_ESP32) /* this filepath is passed to us but without quotes or <> */ -#if !defined(LWS_AMAZON_RTOS) -/* AMAZON RTOS has its own setting via MTK_MBEDTLS_CONFIG_FILE */ #undef MBEDTLS_CONFIG_FILE #define MBEDTLS_CONFIG_FILE <mbedtls/esp_config.h> #endif -#endif -#if defined(LWS_WITH_TLS) #include <mbedtls/ssl.h> -#include <mbedtls/entropy.h> -#include <mbedtls/ctr_drbg.h> #endif -#else #include <openssl/ssl.h> #if !defined(LWS_WITH_MBEDTLS) #include <openssl/err.h> #endif -#endif #endif /* not USE_WOLFSSL */ #endif -/* - * Helpers for pthread mutex in user code... if lws is built for - * multiple service threads, these resolve to pthread mutex - * operations. In the case LWS_MAX_SMP is 1 (the default), they - * are all NOPs and no pthread type or api is referenced. - */ - -#if LWS_MAX_SMP > 1 - -#include <pthread.h> - -#define lws_pthread_mutex(name) pthread_mutex_t name; - -static LWS_INLINE void -lws_pthread_mutex_init(pthread_mutex_t *lock) -{ - pthread_mutex_init(lock, NULL); -} - -static LWS_INLINE void -lws_pthread_mutex_destroy(pthread_mutex_t *lock) -{ - pthread_mutex_destroy(lock); -} - -static LWS_INLINE void -lws_pthread_mutex_lock(pthread_mutex_t *lock) -{ - pthread_mutex_lock(lock); -} - -static LWS_INLINE void -lws_pthread_mutex_unlock(pthread_mutex_t *lock) -{ - pthread_mutex_unlock(lock); -} - -#else -#define lws_pthread_mutex(name) -#define lws_pthread_mutex_init(_a) -#define lws_pthread_mutex_destroy(_a) -#define lws_pthread_mutex_lock(_a) -#define lws_pthread_mutex_unlock(_a) -#endif - #define CONTEXT_PORT_NO_LISTEN -1 #define CONTEXT_PORT_NO_LISTEN_SERVER -2 -#include <libwebsockets/lws-logs.h> +/** \defgroup log Logging + * + * ##Logging + * + * Lws provides flexible and filterable logging facilities, which can be + * used inside lws and in user code. + * + * Log categories may be individually filtered bitwise, and directed to built-in + * sinks for syslog-compatible logging, or a user-defined function. + */ +///@{ + +enum lws_log_levels { + LLL_ERR = 1 << 0, + LLL_WARN = 1 << 1, + LLL_NOTICE = 1 << 2, + LLL_INFO = 1 << 3, + LLL_DEBUG = 1 << 4, + LLL_PARSER = 1 << 5, + LLL_HEADER = 1 << 6, + LLL_EXT = 1 << 7, + LLL_CLIENT = 1 << 8, + LLL_LATENCY = 1 << 9, + LLL_USER = 1 << 10, + + LLL_COUNT = 11 /* set to count of valid flags */ +}; + +LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...) LWS_FORMAT(2); +LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl); +/** + * lwsl_timestamp: generate logging timestamp string + * + * \param level: logging level + * \param p: char * buffer to take timestamp + * \param len: length of p + * + * returns length written in p + */ +LWS_VISIBLE LWS_EXTERN int +lwsl_timestamp(int level, char *p, int len); + +/* these guys are unconditionally included */ + +#define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__) +#define lwsl_user(...) _lws_log(LLL_USER, __VA_ARGS__) + +#if !defined(LWS_WITH_NO_LOGS) +/* notice and warn are usually included by being compiled in */ +#define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) +#define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) +#endif +/* + * weaker logging can be deselected by telling CMake to build in RELEASE mode + * that gets rid of the overhead of checking while keeping _warn and _err + * active + */ + +#if defined(LWS_WITH_ESP8266) +#undef _DEBUG +#endif + +#ifdef _DEBUG +#if defined(LWS_WITH_NO_LOGS) +/* notice, warn and log are always compiled in */ +#define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) +#define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) +#endif +#define lwsl_info(...) _lws_log(LLL_INFO, __VA_ARGS__) +#define lwsl_debug(...) _lws_log(LLL_DEBUG, __VA_ARGS__) +#define lwsl_parser(...) _lws_log(LLL_PARSER, __VA_ARGS__) +#define lwsl_header(...) _lws_log(LLL_HEADER, __VA_ARGS__) +#define lwsl_ext(...) _lws_log(LLL_EXT, __VA_ARGS__) +#define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__) +#define lwsl_latency(...) _lws_log(LLL_LATENCY, __VA_ARGS__) + +#else /* no debug */ +#if defined(LWS_WITH_NO_LOGS) +#define lwsl_warn(...) do {} while(0) +#define lwsl_notice(...) do {} while(0) +#endif +#define lwsl_info(...) do {} while(0) +#define lwsl_debug(...) do {} while(0) +#define lwsl_parser(...) do {} while(0) +#define lwsl_header(...) do {} while(0) +#define lwsl_ext(...) do {} while(0) +#define lwsl_client(...) do {} while(0) +#define lwsl_latency(...) do {} while(0) + +#endif + +/** + * lwsl_hexdump() - helper to hexdump a buffer + * + * \param level: one of LLL_ constants + * \param buf: buffer start to dump + * \param len: length of buffer to dump + * + * If \p level is visible, does a nice hexdump -C style dump of \p buf for + * \p len bytes. This can be extremely convenient while debugging. + */ +LWS_VISIBLE LWS_EXTERN void +lwsl_hexdump_level(int level, const void *vbuf, size_t len); + +/** + * lwsl_hexdump() - helper to hexdump a buffer (DEBUG builds only) + * + * \param buf: buffer start to dump + * \param len: length of buffer to dump + * + * Calls through to lwsl_hexdump_level(LLL_DEBUG, ... for compatability. + * It's better to use lwsl_hexdump_level(level, ... directly so you can control + * the visibility. + */ +LWS_VISIBLE LWS_EXTERN void +lwsl_hexdump(const void *buf, size_t len); + +/** + * lws_is_be() - returns nonzero if the platform is Big Endian + */ +static LWS_INLINE int lws_is_be(void) { + const int probe = ~0xff; + + return *(const char *)&probe; +} + +/** + * lws_set_log_level() - Set the logging bitfield + * \param level: OR together the LLL_ debug contexts you want output from + * \param log_emit_function: NULL to leave it as it is, or a user-supplied + * function to perform log string emission instead of + * the default stderr one. + * + * log level defaults to "err", "warn" and "notice" contexts enabled and + * emission on stderr. If stderr is a tty (according to isatty()) then + * the output is coloured according to the log level using ANSI escapes. + */ +LWS_VISIBLE LWS_EXTERN void +lws_set_log_level(int level, + void (*log_emit_function)(int level, const char *line)); + +/** + * lwsl_emit_syslog() - helper log emit function writes to system log + * + * \param level: one of LLL_ log level indexes + * \param line: log string + * + * You use this by passing the function pointer to lws_set_log_level(), to set + * it as the log emit function, it is not called directly. + */ +LWS_VISIBLE LWS_EXTERN void +lwsl_emit_syslog(int level, const char *line); + +/** + * lwsl_visible() - returns true if the log level should be printed + * + * \param level: one of LLL_ log level indexes + * + * This is useful if you have to do work to generate the log content, you + * can skip the work if the log level used to print it is not actually + * enabled at runtime. + */ +LWS_VISIBLE LWS_EXTERN int +lwsl_visible(int level); + +///@} #include <stddef.h> @@ -314,9 +395,12 @@ lws_pthread_mutex_unlock(pthread_mutex_t *lock) #ifndef lws_container_of #define lws_container_of(P,T,M) ((T *)((char *)(P) - offsetof(T, M))) #endif -#define LWS_ALIGN_TO(x, bou) x += ((bou) - ((x) % (bou))) % (bou) + struct lws; +#ifndef ARRAY_SIZE +#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) +#endif /* api change list for user code to test against */ @@ -336,144 +420,297 @@ struct lws; #if defined(_WIN32) -#if !defined(LWS_WIN32_HANDLE_TYPES) typedef SOCKET lws_sockfd_type; typedef HANDLE lws_filefd_type; -#endif - +#define lws_sockfd_valid(sfd) (!!sfd) struct lws_pollfd { lws_sockfd_type fd; /**< file descriptor */ SHORT events; /**< which events to respond to */ SHORT revents; /**< which events happened */ - uint8_t write_blocked; }; #define LWS_POLLHUP (FD_CLOSE) #define LWS_POLLIN (FD_READ | FD_ACCEPT) #define LWS_POLLOUT (FD_WRITE) - #else -#if defined(LWS_PLAT_FREERTOS) -#include <libwebsockets/lws-freertos.h> +#if defined(LWS_WITH_ESP8266) + +#include <user_interface.h> +#include <espconn.h> + +typedef struct espconn * lws_sockfd_type; +typedef void * lws_filefd_type; +#define lws_sockfd_valid(sfd) (!!sfd) +struct pollfd { + lws_sockfd_type fd; /**< fd related to */ + short events; /**< which POLL... events to respond to */ + short revents; /**< which POLL... events occurred */ +}; +#define POLLIN 0x0001 +#define POLLPRI 0x0002 +#define POLLOUT 0x0004 +#define POLLERR 0x0008 +#define POLLHUP 0x0010 +#define POLLNVAL 0x0020 + +struct lws_vhost; + +lws_sockfd_type esp8266_create_tcp_listen_socket(struct lws_vhost *vh); +void esp8266_tcp_stream_accept(lws_sockfd_type fd, struct lws *wsi); + +#include <os_type.h> +#include <osapi.h> +#include "ets_sys.h" + +int ets_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3); +#define snprintf ets_snprintf + +typedef os_timer_t uv_timer_t; +typedef void uv_cb_t(uv_timer_t *); + +void os_timer_disarm(void *); +void os_timer_setfn(os_timer_t *, os_timer_func_t *, void *); + +void ets_timer_arm_new(os_timer_t *, int, int, int); + +//void os_timer_arm(os_timer_t *, int, int); + +#define UV_VERSION_MAJOR 1 + +#define lws_uv_getloop(a, b) (NULL) + +static inline void uv_timer_init(void *l, uv_timer_t *t) +{ + (void)l; + memset(t, 0, sizeof(*t)); + os_timer_disarm(t); +} + +static inline void uv_timer_start(uv_timer_t *t, uv_cb_t *cb, int first, int rep) +{ + os_timer_setfn(t, (os_timer_func_t *)cb, t); + /* ms, repeat */ + os_timer_arm(t, first, !!rep); +} + +static inline void uv_timer_stop(uv_timer_t *t) +{ + os_timer_disarm(t); +} + +#else +#if defined(LWS_WITH_ESP32) + +typedef int lws_sockfd_type; +typedef int lws_filefd_type; +#define lws_sockfd_valid(sfd) (sfd >= 0) +struct pollfd { + lws_sockfd_type fd; /**< fd related to */ + short events; /**< which POLL... events to respond to */ + short revents; /**< which POLL... events occurred */ +}; +#define POLLIN 0x0001 +#define POLLPRI 0x0002 +#define POLLOUT 0x0004 +#define POLLERR 0x0008 +#define POLLHUP 0x0010 +#define POLLNVAL 0x0020 + +#include <freertos/FreeRTOS.h> +#include <freertos/event_groups.h> +#include <string.h> +#include "esp_wifi.h" +#include "esp_system.h" +#include "esp_event.h" +#include "esp_event_loop.h" +#include "nvs.h" +#include "driver/gpio.h" +#include "esp_spi_flash.h" +#include "freertos/timers.h" + +#if !defined(CONFIG_FREERTOS_HZ) +#define CONFIG_FREERTOS_HZ 100 +#endif + +typedef TimerHandle_t uv_timer_t; +typedef void uv_cb_t(uv_timer_t *); +typedef void * uv_handle_t; + +struct timer_mapping { + uv_cb_t *cb; + uv_timer_t *t; +}; + +#define UV_VERSION_MAJOR 1 + +#define lws_uv_getloop(a, b) (NULL) + +static inline void uv_timer_init(void *l, uv_timer_t *t) +{ + (void)l; + *t = NULL; +} + +extern void esp32_uvtimer_cb(TimerHandle_t t); + +static inline void uv_timer_start(uv_timer_t *t, uv_cb_t *cb, int first, int rep) +{ + struct timer_mapping *tm = (struct timer_mapping *)malloc(sizeof(*tm)); + + if (!tm) + return; + + tm->t = t; + tm->cb = cb; + + *t = xTimerCreate("x", pdMS_TO_TICKS(first), !!rep, tm, + (TimerCallbackFunction_t)esp32_uvtimer_cb); + xTimerStart(*t, 0); +} + +static inline void uv_timer_stop(uv_timer_t *t) +{ + xTimerStop(*t, 0); +} + +static inline void uv_close(uv_handle_t *h, void *v) +{ + free(pvTimerGetTimerID((uv_timer_t)h)); + xTimerDelete(*(uv_timer_t *)h, 0); +} + +/* ESP32 helper declarations */ + +#include <mdns.h> +#include <esp_partition.h> + +#define LWS_PLUGIN_STATIC +#define LWS_MAGIC_REBOOT_TYPE_ADS 0x50001ffc +#define LWS_MAGIC_REBOOT_TYPE_REQ_FACTORY 0xb00bcafe +#define LWS_MAGIC_REBOOT_TYPE_FORCED_FACTORY 0xfaceb00b +#define LWS_MAGIC_REBOOT_TYPE_FORCED_FACTORY_BUTTON 0xf0cedfac + + +/* user code provides these */ + +extern void +lws_esp32_identify_physical_device(void); + +/* lws-plat-esp32 provides these */ + +typedef void (*lws_cb_scan_done)(uint16_t count, wifi_ap_record_t *recs, void *arg); + +enum genled_state { + LWSESP32_GENLED__INIT, + LWSESP32_GENLED__LOST_NETWORK, + LWSESP32_GENLED__NO_NETWORK, + LWSESP32_GENLED__CONN_AP, + LWSESP32_GENLED__GOT_IP, + LWSESP32_GENLED__OK, +}; + +struct lws_group_member { + struct lws_group_member *next; + uint64_t last_seen; + char model[16]; + char role[16]; + char host[32]; + char mac[20]; + int width, height; + struct ip4_addr addr; + struct ip6_addr addrv6; + uint8_t flags; +}; + +#define LWS_SYSTEM_GROUP_MEMBER_ADD 1 +#define LWS_SYSTEM_GROUP_MEMBER_CHANGE 2 +#define LWS_SYSTEM_GROUP_MEMBER_REMOVE 3 + +#define LWS_GROUP_FLAG_SELF 1 + +struct lws_esp32 { + char sta_ip[16]; + char sta_mask[16]; + char sta_gw[16]; + char serial[16]; + char opts[16]; + char model[16]; + char group[16]; + char role[16]; + char ssid[4][16]; + char password[4][32]; + char active_ssid[32]; + char access_pw[16]; + char hostname[32]; + char mac[20]; + mdns_server_t *mdns; + char region; + char inet; + char conn_ap; + + enum genled_state genled; + uint64_t genled_t; + + lws_cb_scan_done scan_consumer; + void *scan_consumer_arg; + struct lws_group_member *first; + int extant_group_members; +}; + +struct lws_esp32_image { + uint32_t romfs; + uint32_t romfs_len; + uint32_t json; + uint32_t json_len; +}; + +extern struct lws_esp32 lws_esp32; +struct lws_vhost; + +extern esp_err_t +lws_esp32_event_passthru(void *ctx, system_event_t *event); +extern void +lws_esp32_wlan_config(void); +extern void +lws_esp32_wlan_start_ap(void); +extern void +lws_esp32_wlan_start_station(void); +struct lws_context_creation_info; +extern void +lws_esp32_set_creation_defaults(struct lws_context_creation_info *info); +extern struct lws_context * +lws_esp32_init(struct lws_context_creation_info *, struct lws_vhost **pvh); +extern int +lws_esp32_wlan_nvs_get(int retry); +extern esp_err_t +lws_nvs_set_str(nvs_handle handle, const char* key, const char* value); +extern void +lws_esp32_restart_guided(uint32_t type); +extern const esp_partition_t * +lws_esp_ota_get_boot_partition(void); +extern int +lws_esp32_get_image_info(const esp_partition_t *part, struct lws_esp32_image *i, char *json, int json_len); +extern int +lws_esp32_leds_network_indication(void); + +extern uint32_t lws_esp32_get_reboot_type(void); +extern uint16_t lws_esp32_sine_interp(int n); + +/* required in external code by esp32 plat (may just return if no leds) */ +extern void lws_esp32_leds_timer_cb(TimerHandle_t th); #else typedef int lws_sockfd_type; typedef int lws_filefd_type; +#define lws_sockfd_valid(sfd) (sfd >= 0) +#endif #endif -#if defined(LWS_PLAT_OPTEE) -#include <time.h> -struct timeval { - time_t tv_sec; - unsigned int tv_usec; -}; -#if defined(LWS_WITH_NETWORK) -// #include <poll.h> #define lws_pollfd pollfd - -struct timezone; - -int gettimeofday(struct timeval *tv, struct timezone *tz); - - /* Internet address. */ - struct in_addr { - uint32_t s_addr; /* address in network byte order */ - }; - -typedef unsigned short sa_family_t; -typedef unsigned short in_port_t; -typedef uint32_t socklen_t; - -#include <libwebsockets/lws-optee.h> - -#if !defined(TEE_SE_READER_NAME_MAX) - struct addrinfo { - int ai_flags; - int ai_family; - int ai_socktype; - int ai_protocol; - socklen_t ai_addrlen; - struct sockaddr *ai_addr; - char *ai_canonname; - struct addrinfo *ai_next; - }; -#endif - -ssize_t recv(int sockfd, void *buf, size_t len, int flags); -ssize_t send(int sockfd, const void *buf, size_t len, int flags); -ssize_t read(int fd, void *buf, size_t count); -int getsockopt(int sockfd, int level, int optname, - void *optval, socklen_t *optlen); - int setsockopt(int sockfd, int level, int optname, - const void *optval, socklen_t optlen); -int connect(int sockfd, const struct sockaddr *addr, - socklen_t addrlen); - -extern int errno; - -uint16_t ntohs(uint16_t netshort); -uint16_t htons(uint16_t hostshort); - -int bind(int sockfd, const struct sockaddr *addr, - socklen_t addrlen); - - -#define MSG_NOSIGNAL 0x4000 -#define EAGAIN 11 -#define EINTR 4 -#define EWOULDBLOCK EAGAIN -#define EADDRINUSE 98 -#define INADDR_ANY 0 -#define AF_INET 2 -#define SHUT_WR 1 -#define AF_UNSPEC 0 -#define PF_UNSPEC 0 -#define SOCK_STREAM 1 -#define SOCK_DGRAM 2 -# define AI_PASSIVE 0x0001 -#define IPPROTO_UDP 17 -#define SOL_SOCKET 1 -#define SO_SNDBUF 7 -#define EISCONN 106 -#define EALREADY 114 -#define EINPROGRESS 115 -int shutdown(int sockfd, int how); -int close(int fd); -int atoi(const char *nptr); -long long atoll(const char *nptr); - -int socket(int domain, int type, int protocol); - int getaddrinfo(const char *node, const char *service, - const struct addrinfo *hints, - struct addrinfo **res); - - void freeaddrinfo(struct addrinfo *res); - -#if !defined(TEE_SE_READER_NAME_MAX) -struct lws_pollfd -{ - int fd; /* File descriptor to poll. */ - short int events; /* Types of events poller cares about. */ - short int revents; /* Types of events that actually occurred. */ -}; -#endif - -int poll(struct pollfd *fds, int nfds, int timeout); - -#define LWS_POLLHUP (0x18) -#define LWS_POLLIN (1) -#define LWS_POLLOUT (4) -#else -struct lws_pollfd; -struct sockaddr_in; -#endif -#else -#define lws_pollfd pollfd -#define LWS_POLLHUP (POLLHUP | POLLERR) +#define LWS_POLLHUP (POLLHUP|POLLERR) #define LWS_POLLIN (POLLIN) #define LWS_POLLOUT (POLLOUT) #endif -#endif #if (defined(WIN32) || defined(_WIN32)) && !defined(__MINGW32__) @@ -491,11 +728,7 @@ struct sockaddr_in; #else #if defined(WIN32) || defined(_WIN32) /* !!! >:-[ */ -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -typedef __int32 int32_t; typedef unsigned __int32 uint32_t; -typedef __int16 int16_t; typedef unsigned __int16 uint16_t; typedef unsigned __int8 uint8_t; #else @@ -505,14 +738,10 @@ typedef unsigned char uint8_t; #endif #endif -typedef int64_t lws_usec_t; typedef unsigned long long lws_filepos_t; typedef long long lws_fileofs_t; typedef uint32_t lws_fop_flags_t; -#define lws_concat_temp(_t, _l) (_t + sizeof(_t) - _l) -#define lws_concat_used(_t, _l) (sizeof(_t) - _l) - /** struct lws_pollargs - argument structure for all external poll related calls * passed in via 'in' */ struct lws_pollargs { @@ -521,108 +750,5035 @@ struct lws_pollargs { int prev_events; /**< the previous event mask */ }; -struct lws_extension; /* needed even with ws exts disabled for create context */ -struct lws_token_limits; -struct lws_protocols; -struct lws_context; struct lws_tokens; -struct lws_vhost; +struct lws_token_limits; + +/*! \defgroup wsclose Websocket Close + * + * ##Websocket close frame control + * + * When we close a ws connection, we can send a reason code and a short + * UTF-8 description back with the close packet. + */ +///@{ + +/* + * NOTE: These public enums are part of the abi. If you want to add one, + * add it at where specified so existing users are unaffected. + */ +/** enum lws_close_status - RFC6455 close status codes */ +enum lws_close_status { + LWS_CLOSE_STATUS_NOSTATUS = 0, + LWS_CLOSE_STATUS_NORMAL = 1000, + /**< 1000 indicates a normal closure, meaning that the purpose for + which the connection was established has been fulfilled. */ + LWS_CLOSE_STATUS_GOINGAWAY = 1001, + /**< 1001 indicates that an endpoint is "going away", such as a server + going down or a browser having navigated away from a page. */ + LWS_CLOSE_STATUS_PROTOCOL_ERR = 1002, + /**< 1002 indicates that an endpoint is terminating the connection due + to a protocol error. */ + LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE = 1003, + /**< 1003 indicates that an endpoint is terminating the connection + because it has received a type of data it cannot accept (e.g., an + endpoint that understands only text data MAY send this if it + receives a binary message). */ + LWS_CLOSE_STATUS_RESERVED = 1004, + /**< Reserved. The specific meaning might be defined in the future. */ + LWS_CLOSE_STATUS_NO_STATUS = 1005, + /**< 1005 is a reserved value and MUST NOT be set as a status code in a + Close control frame by an endpoint. It is designated for use in + applications expecting a status code to indicate that no status + code was actually present. */ + LWS_CLOSE_STATUS_ABNORMAL_CLOSE = 1006, + /**< 1006 is a reserved value and MUST NOT be set as a status code in a + Close control frame by an endpoint. It is designated for use in + applications expecting a status code to indicate that the + connection was closed abnormally, e.g., without sending or + receiving a Close control frame. */ + LWS_CLOSE_STATUS_INVALID_PAYLOAD = 1007, + /**< 1007 indicates that an endpoint is terminating the connection + because it has received data within a message that was not + consistent with the type of the message (e.g., non-UTF-8 [RFC3629] + data within a text message). */ + LWS_CLOSE_STATUS_POLICY_VIOLATION = 1008, + /**< 1008 indicates that an endpoint is terminating the connection + because it has received a message that violates its policy. This + is a generic status code that can be returned when there is no + other more suitable status code (e.g., 1003 or 1009) or if there + is a need to hide specific details about the policy. */ + LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE = 1009, + /**< 1009 indicates that an endpoint is terminating the connection + because it has received a message that is too big for it to + process. */ + LWS_CLOSE_STATUS_EXTENSION_REQUIRED = 1010, + /**< 1010 indicates that an endpoint (client) is terminating the + connection because it has expected the server to negotiate one or + more extension, but the server didn't return them in the response + message of the WebSocket handshake. The list of extensions that + are needed SHOULD appear in the /reason/ part of the Close frame. + Note that this status code is not used by the server, because it + can fail the WebSocket handshake instead */ + LWS_CLOSE_STATUS_UNEXPECTED_CONDITION = 1011, + /**< 1011 indicates that a server is terminating the connection because + it encountered an unexpected condition that prevented it from + fulfilling the request. */ + LWS_CLOSE_STATUS_TLS_FAILURE = 1015, + /**< 1015 is a reserved value and MUST NOT be set as a status code in a + Close control frame by an endpoint. It is designated for use in + applications expecting a status code to indicate that the + connection was closed due to a failure to perform a TLS handshake + (e.g., the server certificate can't be verified). */ + + /****** add new things just above ---^ ******/ + + LWS_CLOSE_STATUS_NOSTATUS_CONTEXT_DESTROY = 9999, +}; + +/** + * lws_close_reason - Set reason and aux data to send with Close packet + * If you are going to return nonzero from the callback + * requesting the connection to close, you can optionally + * call this to set the reason the peer will be told if + * possible. + * + * \param wsi: The websocket connection to set the close reason on + * \param status: A valid close status from websocket standard + * \param buf: NULL or buffer containing up to 124 bytes of auxiliary data + * \param len: Length of data in \param buf to send + */ +LWS_VISIBLE LWS_EXTERN void +lws_close_reason(struct lws *wsi, enum lws_close_status status, + unsigned char *buf, size_t len); + +///@} + struct lws; +struct lws_context; +/* needed even with extensions disabled for create context */ +struct lws_extension; -#include <libwebsockets/lws-dll2.h> -#include <libwebsockets/lws-timeout-timer.h> -#if defined(LWS_WITH_SYS_SMD) -#include <libwebsockets/lws-smd.h> -#endif -#include <libwebsockets/lws-state.h> -#include <libwebsockets/lws-retry.h> -#include <libwebsockets/lws-adopt.h> -#include <libwebsockets/lws-network-helper.h> -#include <libwebsockets/lws-system.h> -#include <libwebsockets/lws-detailed-latency.h> -#include <libwebsockets/lws-ws-close.h> -#include <libwebsockets/lws-callbacks.h> -#include <libwebsockets/lws-ws-state.h> -#include <libwebsockets/lws-ws-ext.h> -#include <libwebsockets/lws-protocols-plugins.h> +/*! \defgroup lwsmeta lws-meta + * + * ##lws-meta protocol + * + * The protocol wraps other muxed connections inside one tcp connection. + * + * Commands are assigned from 0x41 up (so they are valid unicode) + */ +///@{ -#include <libwebsockets/lws-context-vhost.h> +enum lws_meta_commands { + LWS_META_CMD_OPEN_SUBCHANNEL = 'A', + /**< Client requests to open new subchannel + */ + LWS_META_CMD_OPEN_RESULT, + /**< Result of client request to open new subchannel */ + LWS_META_CMD_CLOSE_NOTIFY, + /**< Notification of subchannel closure */ + LWS_META_CMD_CLOSE_RQ, + /**< client requests to close a subchannel */ + LWS_META_CMD_WRITE, + /**< connection writes something to specific channel index */ -#if defined(LWS_ROLE_MQTT) -#include <libwebsockets/lws-mqtt.h> -#endif -#include <libwebsockets/lws-client.h> -#include <libwebsockets/lws-http.h> -#include <libwebsockets/lws-spa.h> -#include <libwebsockets/lws-purify.h> -#include <libwebsockets/lws-misc.h> -#include <libwebsockets/lws-dsh.h> -#include <libwebsockets/lws-service.h> -#include <libwebsockets/lws-write.h> -#include <libwebsockets/lws-writeable.h> -#include <libwebsockets/lws-ring.h> -#include <libwebsockets/lws-sha1-base64.h> -#include <libwebsockets/lws-x509.h> -#include <libwebsockets/lws-cgi.h> -#if defined(LWS_WITH_FILE_OPS) -#include <libwebsockets/lws-vfs.h> -#endif -#include <libwebsockets/lws-lejp.h> -#include <libwebsockets/lws-stats.h> -#include <libwebsockets/lws-struct.h> -#include <libwebsockets/lws-threadpool.h> -#include <libwebsockets/lws-tokenize.h> -#include <libwebsockets/lws-lwsac.h> -#include <libwebsockets/lws-fts.h> -#include <libwebsockets/lws-diskcache.h> -#include <libwebsockets/lws-sequencer.h> -#include <libwebsockets/lws-secure-streams.h> -#include <libwebsockets/lws-secure-streams-policy.h> -#include <libwebsockets/lws-secure-streams-client.h> + /****** add new things just above ---^ ******/ +}; -#if !defined(LWS_PLAT_FREERTOS) -#include <libwebsockets/abstract/abstract.h> +/* channel numbers are transported offset by 0x20 so they are valid unicode */ -#include <libwebsockets/lws-test-sequencer.h> -#endif -#include <libwebsockets/lws-async-dns.h> +#define LWS_META_TRANSPORT_OFFSET 0x20 -#if defined(LWS_WITH_TLS) +///@} + +/*! \defgroup usercb User Callback + * + * ##User protocol callback + * + * The protocol callback is the primary way lws interacts with + * user code. For one of a list of a few dozen reasons the callback gets + * called at some event to be handled. + * + * All of the events can be ignored, returning 0 is taken as "OK" and returning + * nonzero in most cases indicates that the connection should be closed. + */ +///@{ + +struct lws_ssl_info { + int where; + int ret; +}; + +/* + * NOTE: These public enums are part of the abi. If you want to add one, + * add it at where specified so existing users are unaffected. + */ +/** enum lws_callback_reasons - reason you're getting a protocol callback */ +enum lws_callback_reasons { + LWS_CALLBACK_ESTABLISHED = 0, + /**< (VH) after the server completes a handshake with an incoming + * client. If you built the library with ssl support, in is a + * pointer to the ssl struct associated with the connection or NULL.*/ + LWS_CALLBACK_CLIENT_CONNECTION_ERROR = 1, + /**< the request client connection has been unable to complete a + * handshake with the remote server. If in is non-NULL, you can + * find an error string of length len where it points to + * + * Diagnostic strings that may be returned include + * + * "getaddrinfo (ipv6) failed" + * "unknown address family" + * "getaddrinfo (ipv4) failed" + * "set socket opts failed" + * "insert wsi failed" + * "lws_ssl_client_connect1 failed" + * "lws_ssl_client_connect2 failed" + * "Peer hung up" + * "read failed" + * "HS: URI missing" + * "HS: Redirect code but no Location" + * "HS: URI did not parse" + * "HS: Redirect failed" + * "HS: Server did not return 200" + * "HS: OOM" + * "HS: disallowed by client filter" + * "HS: disallowed at ESTABLISHED" + * "HS: ACCEPT missing" + * "HS: ws upgrade response not 101" + * "HS: UPGRADE missing" + * "HS: Upgrade to something other than websocket" + * "HS: CONNECTION missing" + * "HS: UPGRADE malformed" + * "HS: PROTOCOL malformed" + * "HS: Cannot match protocol" + * "HS: EXT: list too big" + * "HS: EXT: failed setting defaults" + * "HS: EXT: failed parsing defaults" + * "HS: EXT: failed parsing options" + * "HS: EXT: Rejects server options" + * "HS: EXT: unknown ext" + * "HS: Accept hash wrong" + * "HS: Rejected by filter cb" + * "HS: OOM" + * "HS: SO_SNDBUF failed" + * "HS: Rejected at CLIENT_ESTABLISHED" + */ + LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH = 2, + /**< this is the last chance for the client user code to examine the + * http headers and decide to reject the connection. If the + * content in the headers is interesting to the + * client (url, etc) it needs to copy it out at + * this point since it will be destroyed before + * the CLIENT_ESTABLISHED call */ + LWS_CALLBACK_CLIENT_ESTABLISHED = 3, + /**< after your client connection completed + * a handshake with the remote server */ + LWS_CALLBACK_CLOSED = 4, + /**< when the websocket session ends */ + LWS_CALLBACK_CLOSED_HTTP = 5, + /**< when a HTTP (non-websocket) session ends */ + LWS_CALLBACK_RECEIVE = 6, + /**< data has appeared for this server endpoint from a + * remote client, it can be found at *in and is + * len bytes long */ + LWS_CALLBACK_RECEIVE_PONG = 7, + /**< servers receive PONG packets with this callback reason */ + LWS_CALLBACK_CLIENT_RECEIVE = 8, + /**< data has appeared from the server for the client connection, it + * can be found at *in and is len bytes long */ + LWS_CALLBACK_CLIENT_RECEIVE_PONG = 9, + /**< clients receive PONG packets with this callback reason */ + LWS_CALLBACK_CLIENT_WRITEABLE = 10, + /**< If you call lws_callback_on_writable() on a connection, you will + * get one of these callbacks coming when the connection socket + * is able to accept another write packet without blocking. + * If it already was able to take another packet without blocking, + * you'll get this callback at the next call to the service loop + * function. Notice that CLIENTs get LWS_CALLBACK_CLIENT_WRITEABLE + * and servers get LWS_CALLBACK_SERVER_WRITEABLE. */ + LWS_CALLBACK_SERVER_WRITEABLE = 11, + /**< See LWS_CALLBACK_CLIENT_WRITEABLE */ + LWS_CALLBACK_HTTP = 12, + /**< an http request has come from a client that is not + * asking to upgrade the connection to a websocket + * one. This is a chance to serve http content, + * for example, to send a script to the client + * which will then open the websockets connection. + * in points to the URI path requested and + * lws_serve_http_file() makes it very + * simple to send back a file to the client. + * Normally after sending the file you are done + * with the http connection, since the rest of the + * activity will come by websockets from the script + * that was delivered by http, so you will want to + * return 1; to close and free up the connection. */ + LWS_CALLBACK_HTTP_BODY = 13, + /**< the next len bytes data from the http + * request body HTTP connection is now available in in. */ + LWS_CALLBACK_HTTP_BODY_COMPLETION = 14, + /**< the expected amount of http request body has been delivered */ + LWS_CALLBACK_HTTP_FILE_COMPLETION = 15, + /**< a file requested to be sent down http link has completed. */ + LWS_CALLBACK_HTTP_WRITEABLE = 16, + /**< you can write more down the http protocol link now. */ + LWS_CALLBACK_FILTER_NETWORK_CONNECTION = 17, + /**< called when a client connects to + * the server at network level; the connection is accepted but then + * passed to this callback to decide whether to hang up immediately + * or not, based on the client IP. in contains the connection + * socket's descriptor. Since the client connection information is + * not available yet, wsi still pointing to the main server socket. + * Return non-zero to terminate the connection before sending or + * receiving anything. Because this happens immediately after the + * network connection from the client, there's no websocket protocol + * selected yet so this callback is issued only to protocol 0. */ + LWS_CALLBACK_FILTER_HTTP_CONNECTION = 18, + /**< called when the request has + * been received and parsed from the client, but the response is + * not sent yet. Return non-zero to disallow the connection. + * user is a pointer to the connection user space allocation, + * in is the URI, eg, "/" + * In your handler you can use the public APIs + * lws_hdr_total_length() / lws_hdr_copy() to access all of the + * headers using the header enums lws_token_indexes from + * libwebsockets.h to check for and read the supported header + * presence and content before deciding to allow the http + * connection to proceed or to kill the connection. */ + LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED = 19, + /**< A new client just had + * been connected, accepted, and instantiated into the pool. This + * callback allows setting any relevant property to it. Because this + * happens immediately after the instantiation of a new client, + * there's no websocket protocol selected yet so this callback is + * issued only to protocol 0. Only wsi is defined, pointing to the + * new client, and the return value is ignored. */ + LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION = 20, + /**< called when the handshake has + * been received and parsed from the client, but the response is + * not sent yet. Return non-zero to disallow the connection. + * user is a pointer to the connection user space allocation, + * in is the requested protocol name + * In your handler you can use the public APIs + * lws_hdr_total_length() / lws_hdr_copy() to access all of the + * headers using the header enums lws_token_indexes from + * libwebsockets.h to check for and read the supported header + * presence and content before deciding to allow the handshake + * to proceed or to kill the connection. */ + LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS = 21, + /**< if configured for + * including OpenSSL support, this callback allows your user code + * to perform extra SSL_CTX_load_verify_locations() or similar + * calls to direct OpenSSL where to find certificates the client + * can use to confirm the remote server identity. user is the + * OpenSSL SSL_CTX* */ + LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS = 22, + /**< if configured for + * including OpenSSL support, this callback allows your user code + * to load extra certificates into the server which allow it to + * verify the validity of certificates returned by clients. user + * is the server's OpenSSL SSL_CTX* */ + LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION = 23, + /**< if the libwebsockets vhost was created with the option + * LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT, then this + * callback is generated during OpenSSL verification of the cert + * sent from the client. It is sent to protocol[0] callback as + * no protocol has been negotiated on the connection yet. + * Notice that the libwebsockets context and wsi are both NULL + * during this callback. See + * http://www.openssl.org/docs/ssl/SSL_CTX_set_verify.html + * to understand more detail about the OpenSSL callback that + * generates this libwebsockets callback and the meanings of the + * arguments passed. In this callback, user is the x509_ctx, + * in is the ssl pointer and len is preverify_ok + * Notice that this callback maintains libwebsocket return + * conventions, return 0 to mean the cert is OK or 1 to fail it. + * This also means that if you don't handle this callback then + * the default callback action of returning 0 allows the client + * certificates. */ + LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER = 24, + /**< this callback happens + * when a client handshake is being compiled. user is NULL, + * in is a char **, it's pointing to a char * which holds the + * next location in the header buffer where you can add + * headers, and len is the remaining space in the header buffer, + * which is typically some hundreds of bytes. So, to add a canned + * cookie, your handler code might look similar to: + * + * char **p = (char **)in; + * + * if (len < 100) + * return 1; + * + * *p += sprintf(*p, "Cookie: a=b\x0d\x0a"); + * + * return 0; + * + * Notice if you add anything, you just have to take care about + * the CRLF on the line you added. Obviously this callback is + * optional, if you don't handle it everything is fine. + * + * Notice the callback is coming to protocols[0] all the time, + * because there is no specific protocol negotiated yet. */ + LWS_CALLBACK_CONFIRM_EXTENSION_OKAY = 25, + /**< When the server handshake code + * sees that it does support a requested extension, before + * accepting the extension by additing to the list sent back to + * the client it gives this callback just to check that it's okay + * to use that extension. It calls back to the requested protocol + * and with in being the extension name, len is 0 and user is + * valid. Note though at this time the ESTABLISHED callback hasn't + * happened yet so if you initialize user content there, user + * content during this callback might not be useful for anything. */ + LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED = 26, + /**< When a client + * connection is being prepared to start a handshake to a server, + * each supported extension is checked with protocols[0] callback + * with this reason, giving the user code a chance to suppress the + * claim to support that extension by returning non-zero. If + * unhandled, by default 0 will be returned and the extension + * support included in the header to the server. Notice this + * callback comes to protocols[0]. */ + LWS_CALLBACK_PROTOCOL_INIT = 27, + /**< One-time call per protocol, per-vhost using it, so it can + * do initial setup / allocations etc */ + LWS_CALLBACK_PROTOCOL_DESTROY = 28, + /**< One-time call per protocol, per-vhost using it, indicating + * this protocol won't get used at all after this callback, the + * vhost is getting destroyed. Take the opportunity to + * deallocate everything that was allocated by the protocol. */ + LWS_CALLBACK_WSI_CREATE = 29, + /**< outermost (earliest) wsi create notification to protocols[0] */ + LWS_CALLBACK_WSI_DESTROY = 30, + /**< outermost (latest) wsi destroy notification to protocols[0] */ + LWS_CALLBACK_GET_THREAD_ID = 31, + /**< lws can accept callback when writable requests from other + * threads, if you implement this callback and return an opaque + * current thread ID integer. */ + + /* external poll() management support */ + LWS_CALLBACK_ADD_POLL_FD = 32, + /**< lws normally deals with its poll() or other event loop + * internally, but in the case you are integrating with another + * server you will need to have lws sockets share a + * polling array with the other server. This and the other + * POLL_FD related callbacks let you put your specialized + * poll array interface code in the callback for protocol 0, the + * first protocol you support, usually the HTTP protocol in the + * serving case. + * This callback happens when a socket needs to be + * added to the polling loop: in points to a struct + * lws_pollargs; the fd member of the struct is the file + * descriptor, and events contains the active events + * + * If you are using the internal lws polling / event loop + * you can just ignore these callbacks. */ + LWS_CALLBACK_DEL_POLL_FD = 33, + /**< This callback happens when a socket descriptor + * needs to be removed from an external polling array. in is + * again the struct lws_pollargs containing the fd member + * to be removed. If you are using the internal polling + * loop, you can just ignore it. */ + LWS_CALLBACK_CHANGE_MODE_POLL_FD = 34, + /**< This callback happens when lws wants to modify the events for + * a connection. + * in is the struct lws_pollargs with the fd to change. + * The new event mask is in events member and the old mask is in + * the prev_events member. + * If you are using the internal polling loop, you can just ignore + * it. */ + LWS_CALLBACK_LOCK_POLL = 35, + /**< These allow the external poll changes driven + * by lws to participate in an external thread locking + * scheme around the changes, so the whole thing is threadsafe. + * These are called around three activities in the library, + * - inserting a new wsi in the wsi / fd table (len=1) + * - deleting a wsi from the wsi / fd table (len=1) + * - changing a wsi's POLLIN/OUT state (len=0) + * Locking and unlocking external synchronization objects when + * len == 1 allows external threads to be synchronized against + * wsi lifecycle changes if it acquires the same lock for the + * duration of wsi dereference from the other thread context. */ + LWS_CALLBACK_UNLOCK_POLL = 36, + /**< See LWS_CALLBACK_LOCK_POLL, ignore if using lws internal poll */ + + LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY = 37, + /**< if configured for including OpenSSL support but no private key + * file has been specified (ssl_private_key_filepath is NULL), this is + * called to allow the user to set the private key directly via + * libopenssl and perform further operations if required; this might be + * useful in situations where the private key is not directly accessible + * by the OS, for example if it is stored on a smartcard. + * user is the server's OpenSSL SSL_CTX* */ + LWS_CALLBACK_WS_PEER_INITIATED_CLOSE = 38, + /**< The peer has sent an unsolicited Close WS packet. in and + * len are the optional close code (first 2 bytes, network + * order) and the optional additional information which is not + * defined in the standard, and may be a string or non-human- readable data. + * If you return 0 lws will echo the close and then close the + * connection. If you return nonzero lws will just close the + * connection. */ + + LWS_CALLBACK_WS_EXT_DEFAULTS = 39, + /**< Gives client connections an opportunity to adjust negotiated + * extension defaults. `user` is the extension name that was + * negotiated (eg, "permessage-deflate"). `in` points to a + * buffer and `len` is the buffer size. The user callback can + * set the buffer to a string describing options the extension + * should parse. Or just ignore for defaults. */ + + LWS_CALLBACK_CGI = 40, + /**< CGI: CGI IO events on stdin / out / err are sent here on + * protocols[0]. The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. */ + LWS_CALLBACK_CGI_TERMINATED = 41, + /**< CGI: The related CGI process ended, this is called before + * the wsi is closed. Used to, eg, terminate chunking. + * The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. The child PID that terminated is in len. */ + LWS_CALLBACK_CGI_STDIN_DATA = 42, + /**< CGI: Data is, to be sent to the CGI process stdin, eg from + * a POST body. The provided `lws_callback_http_dummy()` + * handles this and the callback should be directed there if + * you use CGI. */ + LWS_CALLBACK_CGI_STDIN_COMPLETED = 43, + /**< CGI: no more stdin is coming. The provided + * `lws_callback_http_dummy()` handles this and the callback + * should be directed there if you use CGI. */ + LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44, + /**< The HTTP client connection has succeeded, and is now + * connected to the server */ + LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45, + /**< The HTTP client connection is closing */ + LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46, + /**< This simply indicates data was received on the HTTP client + * connection. It does NOT drain or provide the data. + * This exists to neatly allow a proxying type situation, + * where this incoming data will go out on another connection. + * If the outgoing connection stalls, we should stall processing + * the incoming data. So a handler for this in that case should + * simply set a flag to indicate there is incoming data ready + * and ask for a writeable callback on the outgoing connection. + * In the writable callback he can check the flag and then get + * and drain the waiting incoming data using lws_http_client_read(). + * This will use callbacks to LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ + * to get and drain the incoming data, where it should be sent + * back out on the outgoing connection. */ + LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47, + /**< The client transaction completed... at the moment this + * is the same as closing since transaction pipelining on + * client side is not yet supported. */ + LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48, + /**< This is generated by lws_http_client_read() used to drain + * incoming data. In the case the incoming data was chunked, + * it will be split into multiple smaller callbacks for each + * chunk block, removing the chunk headers. If not chunked, + * it will appear all in one callback. */ + LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49, + /**< By default, all HTTP handling is done in protocols[0]. + * However you can bind different protocols (by name) to + * different parts of the URL space using callback mounts. This + * callback occurs in the new protocol when a wsi is bound + * to that protocol. Any protocol allocation related to the + * http transaction processing should be created then. + * These specific callbacks are necessary because with HTTP/1.1, + * a single connection may perform at series of different + * transactions at different URLs, thus the lifetime of the + * protocol bind is just for one transaction, not connection. */ + LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50, + /**< This is called when a transaction is unbound from a protocol. + * It indicates the connection completed its transaction and may + * do something different now. Any protocol allocation related + * to the http transaction processing should be destroyed. */ + LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51, + /**< This gives the user code a chance to forbid an http access. + * `in` points to a `struct lws_process_html_args`, which + * describes the URL, and a bit mask describing the type of + * authentication required. If the callback returns nonzero, + * the transaction ends with HTTP_STATUS_UNAUTHORIZED. */ + LWS_CALLBACK_PROCESS_HTML = 52, + /**< This gives your user code a chance to mangle outgoing + * HTML. `in` points to a `struct lws_process_html_args` + * which describes the buffer containing outgoing HTML. + * The buffer may grow up to `.max_len` (currently +128 + * bytes per buffer). + * */ + LWS_CALLBACK_ADD_HEADERS = 53, + /**< This gives your user code a chance to add headers to a + * transaction bound to your protocol. `in` points to a + * `struct lws_process_html_args` describing a buffer and length + * you can add headers into using the normal lws apis. + * + * Only `args->p` and `args->len` are valid, and `args->p` should + * be moved on by the amount of bytes written, if any. Eg + * + * case LWS_CALLBACK_ADD_HEADERS: + * + * struct lws_process_html_args *args = + * (struct lws_process_html_args *)in; + * + * if (lws_add_http_header_by_name(wsi, + * (unsigned char *)"set-cookie:", + * (unsigned char *)cookie, cookie_len, + * (unsigned char **)&args->p, + * (unsigned char *)args->p + args->max_len)) + * return 1; + * + * break; + */ + LWS_CALLBACK_SESSION_INFO = 54, + /**< This is only generated by user code using generic sessions. + * It's used to get a `struct lws_session_info` filled in by + * generic sessions with information about the logged-in user. + * See the messageboard sample for an example of how to use. */ + + LWS_CALLBACK_GS_EVENT = 55, + /**< Indicates an event happened to the Generic Sessions session. + * `in` contains a `struct lws_gs_event_args` describing the event. */ + LWS_CALLBACK_HTTP_PMO = 56, + /**< per-mount options for this connection, called before + * the normal LWS_CALLBACK_HTTP when the mount has per-mount + * options. + */ + LWS_CALLBACK_CLIENT_HTTP_WRITEABLE = 57, + /**< when doing an HTTP type client connection, you can call + * lws_client_http_body_pending(wsi, 1) from + * LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER to get these callbacks + * sending the HTTP headers. + * + * From this callback, when you have sent everything, you should let + * lws know by calling lws_client_http_body_pending(wsi, 0) + */ + LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION = 58, + /**< Similar to LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION + * this callback is called during OpenSSL verification of the cert + * sent from the server to the client. It is sent to protocol[0] + * callback as no protocol has been negotiated on the connection yet. + * Notice that the wsi is set because lws_client_connect_via_info was + * successful. + * + * See http://www.openssl.org/docs/ssl/SSL_CTX_set_verify.html + * to understand more detail about the OpenSSL callback that + * generates this libwebsockets callback and the meanings of the + * arguments passed. In this callback, user is the x509_ctx, + * in is the ssl pointer and len is preverify_ok. + * + * THIS IS NOT RECOMMENDED BUT if a cert validation error shall be + * overruled and cert shall be accepted as ok, + * X509_STORE_CTX_set_error((X509_STORE_CTX*)user, X509_V_OK); must be + * called and return value must be 0 to mean the cert is OK; + * returning 1 will fail the cert in any case. + * + * This also means that if you don't handle this callback then + * the default callback action of returning 0 will not accept the + * certificate in case of a validation error decided by the SSL lib. + * + * This is expected and secure behaviour when validating certificates. + * + * Note: LCCSCF_ALLOW_SELFSIGNED and + * LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK still work without this + * callback being implemented. + */ + LWS_CALLBACK_RAW_RX = 59, + /**< RAW mode connection RX */ + LWS_CALLBACK_RAW_CLOSE = 60, + /**< RAW mode connection is closing */ + LWS_CALLBACK_RAW_WRITEABLE = 61, + /**< RAW mode connection may be written */ + LWS_CALLBACK_RAW_ADOPT = 62, + /**< RAW mode connection was adopted (equivalent to 'wsi created') */ + LWS_CALLBACK_RAW_ADOPT_FILE = 63, + /**< RAW mode file was adopted (equivalent to 'wsi created') */ + LWS_CALLBACK_RAW_RX_FILE = 64, + /**< RAW mode file has something to read */ + LWS_CALLBACK_RAW_WRITEABLE_FILE = 65, + /**< RAW mode file is writeable */ + LWS_CALLBACK_RAW_CLOSE_FILE = 66, + /**< RAW mode wsi that adopted a file is closing */ + LWS_CALLBACK_SSL_INFO = 67, + /**< SSL connections only. An event you registered an + * interest in at the vhost has occurred on a connection + * using the vhost. in is a pointer to a + * struct lws_ssl_info containing information about the + * event*/ + LWS_CALLBACK_CHILD_WRITE_VIA_PARENT = 68, + /**< Child has been marked with parent_carries_io attribute, so + * lws_write directs the to this callback at the parent, + * in is a struct lws_write_passthru containing the args + * the lws_write() was called with. + */ + LWS_CALLBACK_CHILD_CLOSING = 69, + /**< Sent to parent to notify them a child is closing / being + * destroyed. in is the child wsi. + */ + LWS_CALLBACK_CGI_PROCESS_ATTACH = 70, + /**< CGI: Sent when the CGI process is spawned for the wsi. The + * len parameter is the PID of the child process */ + + /****** add new things just above ---^ ******/ + + LWS_CALLBACK_USER = 1000, + /**< user code can use any including above without fear of clashes */ +}; + + + +/** + * typedef lws_callback_function() - User server actions + * \param wsi: Opaque websocket instance pointer + * \param reason: The reason for the call + * \param user: Pointer to per-session user data allocated by library + * \param in: Pointer used for some callback reasons + * \param len: Length set for some callback reasons + * + * This callback is the way the user controls what is served. All the + * protocol detail is hidden and handled by the library. + * + * For each connection / session there is user data allocated that is + * pointed to by "user". You set the size of this user data area when + * the library is initialized with lws_create_server. + */ +typedef int +lws_callback_function(struct lws *wsi, enum lws_callback_reasons reason, + void *user, void *in, size_t len); + +#define LWS_CB_REASON_AUX_BF__CGI 1 +#define LWS_CB_REASON_AUX_BF__PROXY 2 +#define LWS_CB_REASON_AUX_BF__CGI_CHUNK_END 4 +#define LWS_CB_REASON_AUX_BF__CGI_HEADERS 8 +///@} + +/*! \defgroup generic hash + * ## Generic Hash related functions + * + * Lws provides generic hash / digest accessors that abstract the ones + * provided by whatever OpenSSL library you are linking against. + * + * It lets you use the same code if you build against mbedtls or OpenSSL + * for example. + */ +///@{ + +#ifdef LWS_OPENSSL_SUPPORT #if defined(LWS_WITH_MBEDTLS) -#include <mbedtls/md5.h> #include <mbedtls/sha1.h> #include <mbedtls/sha256.h> #include <mbedtls/sha512.h> #endif -#include <libwebsockets/lws-gencrypto.h> -#include <libwebsockets/lws-genhash.h> -#include <libwebsockets/lws-genrsa.h> -#include <libwebsockets/lws-genaes.h> -#include <libwebsockets/lws-genec.h> +#define LWS_GENHASH_TYPE_SHA1 0 +#define LWS_GENHASH_TYPE_SHA256 1 +#define LWS_GENHASH_TYPE_SHA512 2 -#include <libwebsockets/lws-jwk.h> -#include <libwebsockets/lws-jose.h> -#include <libwebsockets/lws-jws.h> -#include <libwebsockets/lws-jwe.h> +struct lws_genhash_ctx { + uint8_t type; +#if defined(LWS_WITH_MBEDTLS) + union { + mbedtls_sha1_context sha1; + mbedtls_sha256_context sha256; + mbedtls_sha512_context sha512; + } u; +#else + const EVP_MD *evp_type; + EVP_MD_CTX *mdctx; +#endif +}; + +/** lws_genhash_size() - get hash size in bytes + * + * \param type: one of LWS_GENHASH_TYPE_... + * + * Returns number of bytes in this type of hash + */ +LWS_VISIBLE LWS_EXTERN size_t LWS_WARN_UNUSED_RESULT +lws_genhash_size(int type); + +/** lws_genhash_init() - prepare your struct lws_genhash_ctx for use + * + * \param ctx: your struct lws_genhash_ctx + * \param type: one of LWS_GENHASH_TYPE_... + * + * Initializes the hash context for the type you requested + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_genhash_init(struct lws_genhash_ctx *ctx, int type); + +/** lws_genhash_update() - digest len bytes of the buffer starting at in + * + * \param ctx: your struct lws_genhash_ctx + * \param in: start of the bytes to digest + * \param len: count of bytes to digest + * + * Updates the state of your hash context to reflect digesting len bytes from in + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_genhash_update(struct lws_genhash_ctx *ctx, const void *in, size_t len); + +/** lws_genhash_destroy() - copy out the result digest and destroy the ctx + * + * \param ctx: your struct lws_genhash_ctx + * \param result: NULL, or where to copy the result hash + * + * Finalizes the hash and copies out the digest. Destroys any allocations such + * that ctx can safely go out of scope after calling this. + * + * NULL result is supported so that you can destroy the ctx cleanly on error + * conditions, where there is no valid result. + */ +LWS_VISIBLE LWS_EXTERN int +lws_genhash_destroy(struct lws_genhash_ctx *ctx, void *result); #endif -#include <libwebsockets/lws-eventlib-exports.h> -#include <libwebsockets/lws-i2c.h> -#include <libwebsockets/lws-spi.h> -#include <libwebsockets/lws-gpio.h> -#include <libwebsockets/lws-bb-i2c.h> -#include <libwebsockets/lws-bb-spi.h> -#include <libwebsockets/lws-button.h> -#include <libwebsockets/lws-led.h> -#include <libwebsockets/lws-pwm.h> -#include <libwebsockets/lws-display.h> -#include <libwebsockets/lws-ssd1306-i2c.h> -#include <libwebsockets/lws-ili9341-spi.h> -#include <libwebsockets/lws-settings.h> -#include <libwebsockets/lws-netdev.h> +///@} + +/*! \defgroup extensions Extension related functions + * ##Extension releated functions + * + * Ws defines optional extensions, lws provides the ability to implement these + * in user code if so desired. + * + * We provide one extensions permessage-deflate. + */ +///@{ + +/* + * NOTE: These public enums are part of the abi. If you want to add one, + * add it at where specified so existing users are unaffected. + */ +enum lws_extension_callback_reasons { + LWS_EXT_CB_SERVER_CONTEXT_CONSTRUCT = 0, + LWS_EXT_CB_CLIENT_CONTEXT_CONSTRUCT = 1, + LWS_EXT_CB_SERVER_CONTEXT_DESTRUCT = 2, + LWS_EXT_CB_CLIENT_CONTEXT_DESTRUCT = 3, + LWS_EXT_CB_CONSTRUCT = 4, + LWS_EXT_CB_CLIENT_CONSTRUCT = 5, + LWS_EXT_CB_CHECK_OK_TO_REALLY_CLOSE = 6, + LWS_EXT_CB_CHECK_OK_TO_PROPOSE_EXTENSION = 7, + LWS_EXT_CB_DESTROY = 8, + LWS_EXT_CB_DESTROY_ANY_WSI_CLOSING = 9, + LWS_EXT_CB_ANY_WSI_ESTABLISHED = 10, + LWS_EXT_CB_PACKET_RX_PREPARSE = 11, + LWS_EXT_CB_PACKET_TX_PRESEND = 12, + LWS_EXT_CB_PACKET_TX_DO_SEND = 13, + LWS_EXT_CB_HANDSHAKE_REPLY_TX = 14, + LWS_EXT_CB_FLUSH_PENDING_TX = 15, + LWS_EXT_CB_EXTENDED_PAYLOAD_RX = 16, + LWS_EXT_CB_CAN_PROXY_CLIENT_CONNECTION = 17, + LWS_EXT_CB_1HZ = 18, + LWS_EXT_CB_REQUEST_ON_WRITEABLE = 19, + LWS_EXT_CB_IS_WRITEABLE = 20, + LWS_EXT_CB_PAYLOAD_TX = 21, + LWS_EXT_CB_PAYLOAD_RX = 22, + LWS_EXT_CB_OPTION_DEFAULT = 23, + LWS_EXT_CB_OPTION_SET = 24, + LWS_EXT_CB_OPTION_CONFIRM = 25, + LWS_EXT_CB_NAMED_OPTION_SET = 26, + + /****** add new things just above ---^ ******/ +}; + +/** enum lws_ext_options_types */ +enum lws_ext_options_types { + EXTARG_NONE, /**< does not take an argument */ + EXTARG_DEC, /**< requires a decimal argument */ + EXTARG_OPT_DEC /**< may have an optional decimal argument */ + + /* Add new things just above here ---^ + * This is part of the ABI, don't needlessly break compatibility */ +}; + +/** struct lws_ext_options - Option arguments to the extension. These are + * used in the negotiation at ws upgrade time. + * The helper function lws_ext_parse_options() + * uses these to generate callbacks */ +struct lws_ext_options { + const char *name; /**< Option name, eg, "server_no_context_takeover" */ + enum lws_ext_options_types type; /**< What kind of args the option can take */ + + /* Add new things just above here ---^ + * This is part of the ABI, don't needlessly break compatibility */ +}; + +/** struct lws_ext_option_arg */ +struct lws_ext_option_arg { + const char *option_name; /**< may be NULL, option_index used then */ + int option_index; /**< argument ordinal to use if option_name missing */ + const char *start; /**< value */ + int len; /**< length of value */ +}; + +/** + * typedef lws_extension_callback_function() - Hooks to allow extensions to operate + * \param context: Websockets context + * \param ext: This extension + * \param wsi: Opaque websocket instance pointer + * \param reason: The reason for the call + * \param user: Pointer to ptr to per-session user data allocated by library + * \param in: Pointer used for some callback reasons + * \param len: Length set for some callback reasons + * + * Each extension that is active on a particular connection receives + * callbacks during the connection lifetime to allow the extension to + * operate on websocket data and manage itself. + * + * Libwebsockets takes care of allocating and freeing "user" memory for + * each active extension on each connection. That is what is pointed to + * by the user parameter. + * + * LWS_EXT_CB_CONSTRUCT: called when the server has decided to + * select this extension from the list provided by the client, + * just before the server will send back the handshake accepting + * the connection with this extension active. This gives the + * extension a chance to initialize its connection context found + * in user. + * + * LWS_EXT_CB_CLIENT_CONSTRUCT: same as LWS_EXT_CB_CONSTRUCT + * but called when client is instantiating this extension. Some + * extensions will work the same on client and server side and then + * you can just merge handlers for both CONSTRUCTS. + * + * LWS_EXT_CB_DESTROY: called when the connection the extension was + * being used on is about to be closed and deallocated. It's the + * last chance for the extension to deallocate anything it has + * allocated in the user data (pointed to by user) before the + * user data is deleted. This same callback is used whether you + * are in client or server instantiation context. + * + * LWS_EXT_CB_PACKET_RX_PREPARSE: when this extension was active on + * a connection, and a packet of data arrived at the connection, + * it is passed to this callback to give the extension a chance to + * change the data, eg, decompress it. user is pointing to the + * extension's private connection context data, in is pointing + * to an lws_tokens struct, it consists of a char * pointer called + * token, and an int called token_len. At entry, these are + * set to point to the received buffer and set to the content + * length. If the extension will grow the content, it should use + * a new buffer allocated in its private user context data and + * set the pointed-to lws_tokens members to point to its buffer. + * + * LWS_EXT_CB_PACKET_TX_PRESEND: this works the same way as + * LWS_EXT_CB_PACKET_RX_PREPARSE above, except it gives the + * extension a chance to change websocket data just before it will + * be sent out. Using the same lws_token pointer scheme in in, + * the extension can change the buffer and the length to be + * transmitted how it likes. Again if it wants to grow the + * buffer safely, it should copy the data into its own buffer and + * set the lws_tokens token pointer to it. + * + * LWS_EXT_CB_ARGS_VALIDATE: + */ +typedef int +lws_extension_callback_function(struct lws_context *context, + const struct lws_extension *ext, struct lws *wsi, + enum lws_extension_callback_reasons reason, + void *user, void *in, size_t len); + +/** struct lws_extension - An extension we support */ +struct lws_extension { + const char *name; /**< Formal extension name, eg, "permessage-deflate" */ + lws_extension_callback_function *callback; /**< Service callback */ + const char *client_offer; /**< String containing exts and options client offers */ + + /* Add new things just above here ---^ + * This is part of the ABI, don't needlessly break compatibility */ +}; + +/** + * lws_set_extension_option(): set extension option if possible + * + * \param wsi: websocket connection + * \param ext_name: name of ext, like "permessage-deflate" + * \param opt_name: name of option, like "rx_buf_size" + * \param opt_val: value to set option to + */ +LWS_VISIBLE LWS_EXTERN int +lws_set_extension_option(struct lws *wsi, const char *ext_name, + const char *opt_name, const char *opt_val); + +#ifndef LWS_NO_EXTENSIONS +/* lws_get_internal_extensions() - DEPRECATED + * + * \Deprecated There is no longer a set internal extensions table. The table is provided + * by user code along with application-specific settings. See the test + * client and server for how to do. + */ +static LWS_INLINE LWS_WARN_DEPRECATED const struct lws_extension * +lws_get_internal_extensions(void) { return NULL; } + +/** + * lws_ext_parse_options() - deal with parsing negotiated extension options + * + * \param ext: related extension struct + * \param wsi: websocket connection + * \param ext_user: per-connection extension private data + * \param opts: list of supported options + * \param o: option string to parse + * \param len: length + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_ext_parse_options(const struct lws_extension *ext, struct lws *wsi, + void *ext_user, const struct lws_ext_options *opts, + const char *o, int len); +#endif + +/** lws_extension_callback_pm_deflate() - extension for RFC7692 + * + * \param context: lws context + * \param ext: related lws_extension struct + * \param wsi: websocket connection + * \param reason: incoming callback reason + * \param user: per-connection extension private data + * \param in: pointer parameter + * \param len: length parameter + * + * Built-in callback implementing RFC7692 permessage-deflate + */ +LWS_EXTERN +int lws_extension_callback_pm_deflate( + struct lws_context *context, const struct lws_extension *ext, + struct lws *wsi, enum lws_extension_callback_reasons reason, + void *user, void *in, size_t len); + +/* + * The internal exts are part of the public abi + * If we add more extensions, publish the callback here ------v + */ +///@} + +/*! \defgroup Protocols-and-Plugins Protocols and Plugins + * \ingroup lwsapi + * + * ##Protocol and protocol plugin -related apis + * + * Protocols bind ws protocol names to a custom callback specific to that + * protocol implementaion. + * + * A list of protocols can be passed in at context creation time, but it is + * also legal to leave that NULL and add the protocols and their callback code + * using plugins. + * + * Plugins are much preferable compared to cut and pasting code into an + * application each time, since they can be used standalone. + */ +///@{ +/** struct lws_protocols - List of protocols and handlers client or server + * supports. */ + +struct lws_protocols { + const char *name; + /**< Protocol name that must match the one given in the client + * Javascript new WebSocket(url, 'protocol') name. */ + lws_callback_function *callback; + /**< The service callback used for this protocol. It allows the + * service action for an entire protocol to be encapsulated in + * the protocol-specific callback */ + size_t per_session_data_size; + /**< Each new connection using this protocol gets + * this much memory allocated on connection establishment and + * freed on connection takedown. A pointer to this per-connection + * allocation is passed into the callback in the 'user' parameter */ + size_t rx_buffer_size; + /**< lws allocates this much space for rx data and informs callback + * when something came. Due to rx flow control, the callback may not + * be able to consume it all without having to return to the event + * loop. That is supported in lws. + * + * If .tx_packet_size is 0, this also controls how much may be sent at once + * for backwards compatibility. + */ + unsigned int id; + /**< ignored by lws, but useful to contain user information bound + * to the selected protocol. For example if this protocol was + * called "myprotocol-v2", you might set id to 2, and the user + * code that acts differently according to the version can do so by + * switch (wsi->protocol->id), user code might use some bits as + * capability flags based on selected protocol version, etc. */ + void *user; /**< ignored by lws, but user code can pass a pointer + here it can later access from the protocol callback */ + size_t tx_packet_size; + /**< 0 indicates restrict send() size to .rx_buffer_size for backwards- + * compatibility. + * If greater than zero, a single send() is restricted to this amount + * and any remainder is buffered by lws and sent afterwards also in + * these size chunks. Since that is expensive, it's preferable + * to restrict one fragment you are trying to send to match this + * size. + */ + + /* Add new things just above here ---^ + * This is part of the ABI, don't needlessly break compatibility */ +}; + +struct lws_vhost; + +/** + * lws_vhost_name_to_protocol() - get vhost's protocol object from its name + * + * \param vh: vhost to search + * \param name: protocol name + * + * Returns NULL or a pointer to the vhost's protocol of the requested name + */ +LWS_VISIBLE LWS_EXTERN const struct lws_protocols * +lws_vhost_name_to_protocol(struct lws_vhost *vh, const char *name); + +/** + * lws_get_protocol() - Returns a protocol pointer from a websocket + * connection. + * \param wsi: pointer to struct websocket you want to know the protocol of + * + * + * Some apis can act on all live connections of a given protocol, + * this is how you can get a pointer to the active protocol if needed. + */ +LWS_VISIBLE LWS_EXTERN const struct lws_protocols * +lws_get_protocol(struct lws *wsi); + +/** lws_protocol_get() - deprecated: use lws_get_protocol */ +LWS_VISIBLE LWS_EXTERN const struct lws_protocols * +lws_protocol_get(struct lws *wsi) LWS_WARN_DEPRECATED; + +/** + * lws_protocol_vh_priv_zalloc() - Allocate and zero down a protocol's per-vhost + * storage + * \param vhost: vhost the instance is related to + * \param prot: protocol the instance is related to + * \param size: bytes to allocate + * + * Protocols often find it useful to allocate a per-vhost struct, this is a + * helper to be called in the per-vhost init LWS_CALLBACK_PROTOCOL_INIT + */ +LWS_VISIBLE LWS_EXTERN void * +lws_protocol_vh_priv_zalloc(struct lws_vhost *vhost, const struct lws_protocols *prot, + int size); + +/** + * lws_protocol_vh_priv_get() - retreive a protocol's per-vhost storage + * + * \param vhost: vhost the instance is related to + * \param prot: protocol the instance is related to + * + * Recover a pointer to the allocated per-vhost storage for the protocol created + * by lws_protocol_vh_priv_zalloc() earlier + */ +LWS_VISIBLE LWS_EXTERN void * +lws_protocol_vh_priv_get(struct lws_vhost *vhost, const struct lws_protocols *prot); + +/** + * lws_adjust_protocol_psds - change a vhost protocol's per session data size + * + * \param wsi: a connection with the protocol to change + * \param new_size: the new size of the per session data size for the protocol + * + * Returns user_space for the wsi, after allocating + * + * This should not be used except to initalize a vhost protocol's per session + * data size one time, before any connections are accepted. + * + * Sometimes the protocol wraps another protocol and needs to discover and set + * its per session data size at runtime. + */ +LWS_VISIBLE LWS_EXTERN void * +lws_adjust_protocol_psds(struct lws *wsi, size_t new_size); + +/** + * lws_finalize_startup() - drop initial process privileges + * + * \param context: lws context + * + * This is called after the end of the vhost protocol initializations, but + * you may choose to call it earlier + */ +LWS_VISIBLE LWS_EXTERN int +lws_finalize_startup(struct lws_context *context); + +LWS_VISIBLE LWS_EXTERN int +lws_protocol_init(struct lws_context *context); + +#ifdef LWS_WITH_PLUGINS + +/* PLUGINS implies LIBUV */ + +#define LWS_PLUGIN_API_MAGIC 180 + +/** struct lws_plugin_capability - how a plugin introduces itself to lws */ +struct lws_plugin_capability { + unsigned int api_magic; /**< caller fills this in, plugin fills rest */ + const struct lws_protocols *protocols; /**< array of supported protocols provided by plugin */ + int count_protocols; /**< how many protocols */ + const struct lws_extension *extensions; /**< array of extensions provided by plugin */ + int count_extensions; /**< how many extensions */ +}; + +typedef int (*lws_plugin_init_func)(struct lws_context *, + struct lws_plugin_capability *); +typedef int (*lws_plugin_destroy_func)(struct lws_context *); + +/** struct lws_plugin */ +struct lws_plugin { + struct lws_plugin *list; /**< linked list */ +#if (UV_VERSION_MAJOR > 0) + uv_lib_t lib; /**< shared library pointer */ +#else + void *l; /**< so we can compile on ancient libuv */ +#endif + char name[64]; /**< name of the plugin */ + struct lws_plugin_capability caps; /**< plugin capabilities */ +}; + +#endif + +///@} + + +/*! \defgroup generic-sessions plugin: generic-sessions + * \ingroup Protocols-and-Plugins + * + * ##Plugin Generic-sessions related + * + * generic-sessions plugin provides a reusable, generic session and login / + * register / forgot password framework including email verification. + */ +///@{ + +#define LWSGS_EMAIL_CONTENT_SIZE 16384 +/**< Maximum size of email we might send */ + +/* SHA-1 binary and hexified versions */ +/** typedef struct lwsgw_hash_bin */ +typedef struct { unsigned char bin[20]; /**< binary representation of hash */} lwsgw_hash_bin; +/** typedef struct lwsgw_hash */ +typedef struct { char id[41]; /**< ascii hex representation of hash */ } lwsgw_hash; + +/** enum lwsgs_auth_bits */ +enum lwsgs_auth_bits { + LWSGS_AUTH_LOGGED_IN = 1, /**< user is logged in as somebody */ + LWSGS_AUTH_ADMIN = 2, /**< logged in as the admin user */ + LWSGS_AUTH_VERIFIED = 4, /**< user has verified his email */ + LWSGS_AUTH_FORGOT_FLOW = 8, /**< he just completed "forgot password" flow */ +}; + +/** struct lws_session_info - information about user session status */ +struct lws_session_info { + char username[32]; /**< username logged in as, or empty string */ + char email[100]; /**< email address associated with login, or empty string */ + char ip[72]; /**< ip address session was started from */ + unsigned int mask; /**< access rights mask associated with session + * see enum lwsgs_auth_bits */ + char session[42]; /**< session id string, usable as opaque uid when not logged in */ +}; + +/** enum lws_gs_event */ +enum lws_gs_event { + LWSGSE_CREATED, /**< a new user was created */ + LWSGSE_DELETED /**< an existing user was deleted */ +}; + +/** struct lws_gs_event_args */ +struct lws_gs_event_args { + enum lws_gs_event event; /**< which event happened */ + const char *username; /**< which username the event happened to */ + const char *email; /**< the email address of that user */ +}; + +///@} + + +/*! \defgroup context-and-vhost context and vhost related functions + * ##Context and Vhost releated functions + * \ingroup lwsapi + * + * + * LWS requires that there is one context, in which you may define multiple + * vhosts. Each vhost is a virtual host, with either its own listen port + * or sharing an existing one. Each vhost has its own SSL context that can + * be set up individually or left disabled. + * + * If you don't care about multiple "site" support, you can ignore it and + * lws will create a single default vhost at context creation time. + */ +///@{ + +/* + * NOTE: These public enums are part of the abi. If you want to add one, + * add it at where specified so existing users are unaffected. + */ + +/** enum lws_context_options - context and vhost options */ +enum lws_context_options { + LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT = (1 << 1) | + (1 << 12), + /**< (VH) Don't allow the connection unless the client has a + * client cert that we recognize; provides + * LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT */ + LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME = (1 << 2), + /**< (CTX) Don't try to get the server's hostname */ + LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT = (1 << 3) | + (1 << 12), + /**< (VH) Allow non-SSL (plaintext) connections on the same + * port as SSL is listening... undermines the security of SSL; + * provides LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT */ + LWS_SERVER_OPTION_LIBEV = (1 << 4), + /**< (CTX) Use libev event loop */ + LWS_SERVER_OPTION_DISABLE_IPV6 = (1 << 5), + /**< (VH) Disable IPV6 support */ + LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS = (1 << 6), + /**< (VH) Don't load OS CA certs, you will need to load your + * own CA cert(s) */ + LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED = (1 << 7), + /**< (VH) Accept connections with no valid Cert (eg, selfsigned) */ + LWS_SERVER_OPTION_VALIDATE_UTF8 = (1 << 8), + /**< (VH) Check UT-8 correctness */ + LWS_SERVER_OPTION_SSL_ECDH = (1 << 9) | + (1 << 12), + /**< (VH) initialize ECDH ciphers */ + LWS_SERVER_OPTION_LIBUV = (1 << 10), + /**< (CTX) Use libuv event loop */ + LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS = (1 << 11) | + (1 << 12), + /**< (VH) Use http redirect to force http to https + * (deprecated: use mount redirection) */ + LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT = (1 << 12), + /**< (CTX) Initialize the SSL library at all */ + LWS_SERVER_OPTION_EXPLICIT_VHOSTS = (1 << 13), + /**< (CTX) Only create the context when calling context + * create api, implies user code will create its own vhosts */ + LWS_SERVER_OPTION_UNIX_SOCK = (1 << 14), + /**< (VH) Use Unix socket */ + LWS_SERVER_OPTION_STS = (1 << 15), + /**< (VH) Send Strict Transport Security header, making + * clients subsequently go to https even if user asked for http */ + LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY = (1 << 16), + /**< (VH) Enable LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE to take effect */ + LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE = (1 << 17), + /**< (VH) if set, only ipv6 allowed on the vhost */ + LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN = (1 << 18), + /**< (CTX) Libuv only: Do not spin on SIGSEGV / SIGFPE. A segfault + * normally makes the lib spin so you can attach a debugger to it + * even if it happened without a debugger in place. You can disable + * that by giving this option. + */ + LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN = (1 << 19), + /**< For backwards-compatibility reasons, by default + * lws prepends "http://" to the origin you give in the client + * connection info struct. If you give this flag when you create + * the context, only the string you give in the client connect + * info for .origin (if any) will be used directly. + */ + LWS_SERVER_OPTION_FALLBACK_TO_RAW = (1 << 20), + /**< (VH) if invalid http is coming in the first line, */ + LWS_SERVER_OPTION_LIBEVENT = (1 << 21), + /**< (CTX) Use libevent event loop */ + LWS_SERVER_OPTION_ONLY_RAW = (1 << 22), + /**< (VH) All connections to this vhost / port are RAW as soon as + * the connection is accepted, no HTTP is going to be coming. + */ + LWS_SERVER_OPTION_ALLOW_LISTEN_SHARE = (1 << 23), + /**< (VH) Set to allow multiple listen sockets on one interface + + * address + port. The default is to strictly allow only one + * listen socket at a time. This is automatically selected if you + * have multiple service threads. + */ + LWS_SERVER_OPTION_CREATE_VHOST_SSL_CTX = (1 << 24), + /**< (VH) Force setting up the vhost SSL_CTX, even though the user + * code doesn't explicitly provide a cert in the info struct. It + * implies the user code is going to provide a cert at the + * LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS callback, which + * provides the vhost SSL_CTX * in the user parameter. + */ + + /****** add new things just above ---^ ******/ +}; + +#define lws_check_opt(c, f) (((c) & (f)) == (f)) + +struct lws_plat_file_ops; + +/** struct lws_context_creation_info - parameters to create context and /or vhost with + * + * This is also used to create vhosts.... if LWS_SERVER_OPTION_EXPLICIT_VHOSTS + * is not given, then for backwards compatibility one vhost is created at + * context-creation time using the info from this struct. + * + * If LWS_SERVER_OPTION_EXPLICIT_VHOSTS is given, then no vhosts are created + * at the same time as the context, they are expected to be created afterwards. + */ +struct lws_context_creation_info { + int port; + /**< VHOST: Port to listen on. Use CONTEXT_PORT_NO_LISTEN to suppress + * listening for a client. Use CONTEXT_PORT_NO_LISTEN_SERVER if you are + * writing a server but you are using \ref sock-adopt instead of the + * built-in listener */ + const char *iface; + /**< VHOST: NULL to bind the listen socket to all interfaces, or the + * interface name, eg, "eth2" + * If options specifies LWS_SERVER_OPTION_UNIX_SOCK, this member is + * the pathname of a UNIX domain socket. you can use the UNIX domain + * sockets in abstract namespace, by prepending an at symbol to the + * socket name. */ + const struct lws_protocols *protocols; + /**< VHOST: Array of structures listing supported protocols and a protocol- + * specific callback for each one. The list is ended with an + * entry that has a NULL callback pointer. */ + const struct lws_extension *extensions; + /**< VHOST: NULL or array of lws_extension structs listing the + * extensions this context supports. */ + const struct lws_token_limits *token_limits; + /**< CONTEXT: NULL or struct lws_token_limits pointer which is initialized + * with a token length limit for each possible WSI_TOKEN_ */ + const char *ssl_private_key_password; + /**< VHOST: NULL or the passphrase needed for the private key. (For + * backwards compatibility, this can also be used to pass the client + * cert passphrase when setting up a vhost client SSL context, but it is + * preferred to use .client_ssl_private_key_password for that.) */ + const char *ssl_cert_filepath; + /**< VHOST: If libwebsockets was compiled to use ssl, and you want + * to listen using SSL, set to the filepath to fetch the + * server cert from, otherwise NULL for unencrypted. (For backwards + * compatibility, this can also be used to pass the client certificate + * when setting up a vhost client SSL context, but it is preferred to + * use .client_ssl_cert_filepath for that.) */ + const char *ssl_private_key_filepath; + /**< VHOST: filepath to private key if wanting SSL mode; + * if this is set to NULL but ssl_cert_filepath is set, the + * OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY callback is called + * to allow setting of the private key directly via openSSL + * library calls. (For backwards compatibility, this can also be used + * to pass the client cert private key filepath when setting up a + * vhost client SSL context, but it is preferred to use + * .client_ssl_private_key_filepath for that.) */ + const char *ssl_ca_filepath; + /**< VHOST: CA certificate filepath or NULL. (For backwards + * compatibility, this can also be used to pass the client CA + * filepath when setting up a vhost client SSL context, + * but it is preferred to use .client_ssl_ca_filepath for that.) */ + const char *ssl_cipher_list; + /**< VHOST: List of valid ciphers to use (eg, + * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" + * or you can leave it as NULL to get "DEFAULT" (For backwards + * compatibility, this can also be used to pass the client cipher + * list when setting up a vhost client SSL context, + * but it is preferred to use .client_ssl_cipher_list for that.)*/ + const char *http_proxy_address; + /**< VHOST: If non-NULL, attempts to proxy via the given address. + * If proxy auth is required, use format "username:password\@server:port" */ + unsigned int http_proxy_port; + /**< VHOST: If http_proxy_address was non-NULL, uses this port */ + int gid; + /**< CONTEXT: group id to change to after setting listen socket, or -1. */ + int uid; + /**< CONTEXT: user id to change to after setting listen socket, or -1. */ + unsigned int options; + /**< VHOST + CONTEXT: 0, or LWS_SERVER_OPTION_... bitfields */ + void *user; + /**< VHOST + CONTEXT: optional user pointer that will be associated + * with the context when creating the context (and can be retrieved by + * lws_context_user(context), or with the vhost when creating the vhost + * (and can be retrieved by lws_vhost_user(vhost)). You will need to + * use LWS_SERVER_OPTION_EXPLICIT_VHOSTS and create the vhost separately + * if you care about giving the context and vhost different user pointer + * values. + */ + int ka_time; + /**< CONTEXT: 0 for no TCP keepalive, otherwise apply this keepalive + * timeout to all libwebsocket sockets, client or server */ + int ka_probes; + /**< CONTEXT: if ka_time was nonzero, after the timeout expires how many + * times to try to get a response from the peer before giving up + * and killing the connection */ + int ka_interval; + /**< CONTEXT: if ka_time was nonzero, how long to wait before each ka_probes + * attempt */ +#ifdef LWS_OPENSSL_SUPPORT + SSL_CTX *provided_client_ssl_ctx; + /**< CONTEXT: If non-null, swap out libwebsockets ssl + * implementation for the one provided by provided_ssl_ctx. + * Libwebsockets no longer is responsible for freeing the context + * if this option is selected. */ +#else /* maintain structure layout either way */ + void *provided_client_ssl_ctx; /**< dummy if ssl disabled */ +#endif + + short max_http_header_data; + /**< CONTEXT: The max amount of header payload that can be handled + * in an http request (unrecognized header payload is dropped) */ + short max_http_header_pool; + /**< CONTEXT: The max number of connections with http headers that + * can be processed simultaneously (the corresponding memory is + * allocated for the lifetime of the context). If the pool is + * busy new incoming connections must wait for accept until one + * becomes free. */ + + unsigned int count_threads; + /**< CONTEXT: how many contexts to create in an array, 0 = 1 */ + unsigned int fd_limit_per_thread; + /**< CONTEXT: nonzero means restrict each service thread to this + * many fds, 0 means the default which is divide the process fd + * limit by the number of threads. */ + unsigned int timeout_secs; + /**< VHOST: various processes involving network roundtrips in the + * library are protected from hanging forever by timeouts. If + * nonzero, this member lets you set the timeout used in seconds. + * Otherwise a default timeout is used. */ + const char *ecdh_curve; + /**< VHOST: if NULL, defaults to initializing server with "prime256v1" */ + const char *vhost_name; + /**< VHOST: name of vhost, must match external DNS name used to + * access the site, like "warmcat.com" as it's used to match + * Host: header and / or SNI name for SSL. */ + const char * const *plugin_dirs; + /**< CONTEXT: NULL, or NULL-terminated array of directories to + * scan for lws protocol plugins at context creation time */ + const struct lws_protocol_vhost_options *pvo; + /**< VHOST: pointer to optional linked list of per-vhost + * options made accessible to protocols */ + int keepalive_timeout; + /**< VHOST: (default = 0 = 60s) seconds to allow remote + * client to hold on to an idle HTTP/1.1 connection */ + const char *log_filepath; + /**< VHOST: filepath to append logs to... this is opened before + * any dropping of initial privileges */ + const struct lws_http_mount *mounts; + /**< VHOST: optional linked list of mounts for this vhost */ + const char *server_string; + /**< CONTEXT: string used in HTTP headers to identify server + * software, if NULL, "libwebsockets". */ + unsigned int pt_serv_buf_size; + /**< CONTEXT: 0 = default of 4096. This buffer is used by + * various service related features including file serving, it + * defines the max chunk of file that can be sent at once. + * At the risk of lws having to buffer failed large sends, it + * can be increased to, eg, 128KiB to improve throughput. */ + unsigned int max_http_header_data2; + /**< CONTEXT: if max_http_header_data is 0 and this + * is nonzero, this will be used in place of the default. It's + * like this for compatibility with the original short version, + * this is unsigned int length. */ + long ssl_options_set; + /**< VHOST: Any bits set here will be set as SSL options */ + long ssl_options_clear; + /**< VHOST: Any bits set here will be cleared as SSL options */ + unsigned short ws_ping_pong_interval; + /**< CONTEXT: 0 for none, else interval in seconds between sending + * PINGs on idle websocket connections. When the PING is sent, + * the PONG must come within the normal timeout_secs timeout period + * or the connection will be dropped. + * Any RX or TX traffic on the connection restarts the interval timer, + * so a connection which always sends or receives something at intervals + * less than the interval given here will never send PINGs / expect + * PONGs. Conversely as soon as the ws connection is established, an + * idle connection will do the PING / PONG roundtrip as soon as + * ws_ping_pong_interval seconds has passed without traffic + */ + const struct lws_protocol_vhost_options *headers; + /**< VHOST: pointer to optional linked list of per-vhost + * canned headers that are added to server responses */ + + const struct lws_protocol_vhost_options *reject_service_keywords; + /**< CONTEXT: Optional list of keywords and rejection codes + text. + * + * The keywords are checked for existing in the user agent string. + * + * Eg, "badrobot" "404 Not Found" + */ + void *external_baggage_free_on_destroy; + /**< CONTEXT: NULL, or pointer to something externally malloc'd, that + * should be freed when the context is destroyed. This allows you to + * automatically sync the freeing action to the context destruction + * action, so there is no need for an external free() if the context + * succeeded to create. + */ + + const char *client_ssl_private_key_password; + /**< VHOST: Client SSL context init: NULL or the passphrase needed + * for the private key */ + const char *client_ssl_cert_filepath; + /**< VHOST: Client SSL context init:T he certificate the client + * should present to the peer on connection */ + const char *client_ssl_private_key_filepath; + /**< VHOST: Client SSL context init: filepath to client private key + * if this is set to NULL but client_ssl_cert_filepath is set, you + * can handle the LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS + * callback of protocols[0] to allow setting of the private key directly + * via openSSL library calls */ + const char *client_ssl_ca_filepath; + /**< VHOST: Client SSL context init: CA certificate filepath or NULL */ + const char *client_ssl_cipher_list; + /**< VHOST: Client SSL context init: List of valid ciphers to use (eg, + * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" + * or you can leave it as NULL to get "DEFAULT" */ + + const struct lws_plat_file_ops *fops; + /**< CONTEXT: NULL, or pointer to an array of fops structs, terminated + * by a sentinel with NULL .open. + * + * If NULL, lws provides just the platform file operations struct for + * backwards compatibility. + */ + int simultaneous_ssl_restriction; + /**< CONTEXT: 0 (no limit) or limit of simultaneous SSL sessions possible.*/ + const char *socks_proxy_address; + /**< VHOST: If non-NULL, attempts to proxy via the given address. + * If proxy auth is required, use format "username:password\@server:port" */ + unsigned int socks_proxy_port; + /**< VHOST: If socks_proxy_address was non-NULL, uses this port */ +#if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) + cap_value_t caps[4]; + /**< CONTEXT: array holding Linux capabilities you want to + * continue to be available to the server after it transitions + * to a noprivileged user. Usually none are needed but for, eg, + * .bind_iface, CAP_NET_RAW is required. This gives you a way + * to still have the capability but drop root. + */ + char count_caps; + /**< CONTEXT: count of Linux capabilities in .caps[]. 0 means + * no capabilities will be inherited from root (the default) */ +#endif + int bind_iface; + /**< VHOST: nonzero to strictly bind sockets to the interface name in + * .iface (eg, "eth2"), using SO_BIND_TO_DEVICE. + * + * Requires SO_BINDTODEVICE support from your OS and CAP_NET_RAW + * capability. + * + * Notice that common things like access network interface IP from + * your local machine use your lo / loopback interface and will be + * disallowed by this. + */ + int ssl_info_event_mask; + /**< VHOST: mask of ssl events to be reported on LWS_CALLBACK_SSL_INFO + * callback for connections on this vhost. The mask values are of + * the form SSL_CB_ALERT, defined in openssl/ssl.h. The default of + * 0 means no info events will be reported. + */ + unsigned int timeout_secs_ah_idle; + /**< VHOST: seconds to allow a client to hold an ah without using it. + * 0 defaults to 10s. */ + unsigned short ip_limit_ah; + /**< CONTEXT: max number of ah a single IP may use simultaneously + * 0 is no limit. This is a soft limit: if the limit is + * reached, connections from that IP will wait in the ah + * waiting list and not be able to acquire an ah until + * a connection belonging to the IP relinquishes one it + * already has. + */ + unsigned short ip_limit_wsi; + /**< CONTEXT: max number of wsi a single IP may use simultaneously. + * 0 is no limit. This is a hard limit, connections from + * the same IP will simply be dropped once it acquires the + * amount of simultaneous wsi / accepted connections + * given here. + */ + uint32_t http2_settings[7]; + /**< CONTEXT: after context creation http2_settings[1] thru [6] have + * been set to the lws platform default values. + * VHOST: if http2_settings[0] is nonzero, the values given in + * http2_settings[1]..[6] are used instead of the lws + * platform default values. + * Just leave all at 0 if you don't care. + */ + + /* Add new things just above here ---^ + * This is part of the ABI, don't needlessly break compatibility + * + * The below is to ensure later library versions with new + * members added above will see 0 (default) even if the app + * was not built against the newer headers. + */ + + void *_unused[8]; /**< dummy */ +}; + +/** + * lws_create_context() - Create the websocket handler + * \param info: pointer to struct with parameters + * + * This function creates the listening socket (if serving) and takes care + * of all initialization in one step. + * + * If option LWS_SERVER_OPTION_EXPLICIT_VHOSTS is given, no vhost is + * created; you're expected to create your own vhosts afterwards using + * lws_create_vhost(). Otherwise a vhost named "default" is also created + * using the information in the vhost-related members, for compatibility. + * + * After initialization, it returns a struct lws_context * that + * represents this server. After calling, user code needs to take care + * of calling lws_service() with the context pointer to get the + * server's sockets serviced. This must be done in the same process + * context as the initialization call. + * + * The protocol callback functions are called for a handful of events + * including http requests coming in, websocket connections becoming + * established, and data arriving; it's also called periodically to allow + * async transmission. + * + * HTTP requests are sent always to the FIRST protocol in protocol, since + * at that time websocket protocol has not been negotiated. Other + * protocols after the first one never see any HTTP callback activity. + * + * The server created is a simple http server by default; part of the + * websocket standard is upgrading this http connection to a websocket one. + * + * This allows the same server to provide files like scripts and favicon / + * images or whatever over http and dynamic data over websockets all in + * one place; they're all handled in the user callback. + */ +LWS_VISIBLE LWS_EXTERN struct lws_context * +lws_create_context(struct lws_context_creation_info *info); + +/** + * lws_context_destroy() - Destroy the websocket context + * \param context: Websocket context + * + * This function closes any active connections and then frees the + * context. After calling this, any further use of the context is + * undefined. + */ +LWS_VISIBLE LWS_EXTERN void +lws_context_destroy(struct lws_context *context); + +LWS_VISIBLE LWS_EXTERN void +lws_context_destroy2(struct lws_context *context); + +typedef int (*lws_reload_func)(void); + +/** + * lws_context_deprecate() - Deprecate the websocket context + * + * \param context: Websocket context + * \param cb: Callback notified when old context listen sockets are closed + * + * This function is used on an existing context before superceding it + * with a new context. + * + * It closes any listen sockets in the context, so new connections are + * not possible. + * + * And it marks the context to be deleted when the number of active + * connections into it falls to zero. + * + * Otherwise if you attach the deprecated context to the replacement + * context when it has been created using lws_context_attach_deprecated() + * both any deprecated and the new context will service their connections. + * + * This is aimed at allowing seamless configuration reloads. + * + * The callback cb will be called after the listen sockets are actually + * closed and may be reopened. In the callback the new context should be + * configured and created. (With libuv, socket close happens async after + * more loop events). + */ +LWS_VISIBLE LWS_EXTERN void +lws_context_deprecate(struct lws_context *context, lws_reload_func cb); + +LWS_VISIBLE LWS_EXTERN int +lws_context_is_deprecated(struct lws_context *context); + +/** + * lws_set_proxy() - Setups proxy to lws_context. + * \param vhost: pointer to struct lws_vhost you want set proxy for + * \param proxy: pointer to c string containing proxy in format address:port + * + * Returns 0 if proxy string was parsed and proxy was setup. + * Returns -1 if proxy is NULL or has incorrect format. + * + * This is only required if your OS does not provide the http_proxy + * environment variable (eg, OSX) + * + * IMPORTANT! You should call this function right after creation of the + * lws_context and before call to connect. If you call this + * function after connect behavior is undefined. + * This function will override proxy settings made on lws_context + * creation with genenv() call. + */ +LWS_VISIBLE LWS_EXTERN int +lws_set_proxy(struct lws_vhost *vhost, const char *proxy); + +/** + * lws_set_socks() - Setup socks to lws_context. + * \param vhost: pointer to struct lws_vhost you want set socks for + * \param socks: pointer to c string containing socks in format address:port + * + * Returns 0 if socks string was parsed and socks was setup. + * Returns -1 if socks is NULL or has incorrect format. + * + * This is only required if your OS does not provide the socks_proxy + * environment variable (eg, OSX) + * + * IMPORTANT! You should call this function right after creation of the + * lws_context and before call to connect. If you call this + * function after connect behavior is undefined. + * This function will override proxy settings made on lws_context + * creation with genenv() call. + */ +LWS_VISIBLE LWS_EXTERN int +lws_set_socks(struct lws_vhost *vhost, const char *socks); + +struct lws_vhost; + +/** + * lws_create_vhost() - Create a vhost (virtual server context) + * \param context: pointer to result of lws_create_context() + * \param info: pointer to struct with parameters + * + * This function creates a virtual server (vhost) using the vhost-related + * members of the info struct. You can create many vhosts inside one context + * if you created the context with the option LWS_SERVER_OPTION_EXPLICIT_VHOSTS + */ +LWS_VISIBLE LWS_EXTERN struct lws_vhost * +lws_create_vhost(struct lws_context *context, + struct lws_context_creation_info *info); + +/** + * lws_vhost_destroy() - Destroy a vhost (virtual server context) + * + * \param vh: pointer to result of lws_create_vhost() + * + * This function destroys a vhost. Normally, if you just want to exit, + * then lws_destroy_context() will take care of everything. If you want + * to destroy an individual vhost and all connections and allocations, you + * can do it with this. + * + * If the vhost has a listen sockets shared by other vhosts, it will be given + * to one of the vhosts sharing it rather than closed. + */ +LWS_VISIBLE LWS_EXTERN void +lws_vhost_destroy(struct lws_vhost *vh); + +/** + * lwsws_get_config_globals() - Parse a JSON server config file + * \param info: pointer to struct with parameters + * \param d: filepath of the config file + * \param config_strings: storage for the config strings extracted from JSON, + * the pointer is incremented as strings are stored + * \param len: pointer to the remaining length left in config_strings + * the value is decremented as strings are stored + * + * This function prepares a n lws_context_creation_info struct with global + * settings from a file d. + * + * Requires CMake option LWS_WITH_LEJP_CONF to have been enabled + */ +LWS_VISIBLE LWS_EXTERN int +lwsws_get_config_globals(struct lws_context_creation_info *info, const char *d, + char **config_strings, int *len); + +/** + * lwsws_get_config_vhosts() - Create vhosts from a JSON server config file + * \param context: pointer to result of lws_create_context() + * \param info: pointer to struct with parameters + * \param d: filepath of the config file + * \param config_strings: storage for the config strings extracted from JSON, + * the pointer is incremented as strings are stored + * \param len: pointer to the remaining length left in config_strings + * the value is decremented as strings are stored + * + * This function creates vhosts into a context according to the settings in + *JSON files found in directory d. + * + * Requires CMake option LWS_WITH_LEJP_CONF to have been enabled + */ +LWS_VISIBLE LWS_EXTERN int +lwsws_get_config_vhosts(struct lws_context *context, + struct lws_context_creation_info *info, const char *d, + char **config_strings, int *len); + +/** lws_vhost_get() - \deprecated deprecated: use lws_get_vhost() */ +LWS_VISIBLE LWS_EXTERN struct lws_vhost * +lws_vhost_get(struct lws *wsi) LWS_WARN_DEPRECATED; + +/** + * lws_get_vhost() - return the vhost a wsi belongs to + * + * \param wsi: which connection + */ +LWS_VISIBLE LWS_EXTERN struct lws_vhost * +lws_get_vhost(struct lws *wsi); + +/** + * lws_json_dump_vhost() - describe vhost state and stats in JSON + * + * \param vh: the vhost + * \param buf: buffer to fill with JSON + * \param len: max length of buf + */ +LWS_VISIBLE LWS_EXTERN int +lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len); + +/** + * lws_json_dump_context() - describe context state and stats in JSON + * + * \param context: the context + * \param buf: buffer to fill with JSON + * \param len: max length of buf + * \param hide_vhosts: nonzero to not provide per-vhost mount etc information + * + * Generates a JSON description of vhost state into buf + */ +LWS_VISIBLE LWS_EXTERN int +lws_json_dump_context(const struct lws_context *context, char *buf, int len, + int hide_vhosts); + +/** + * lws_vhost_user() - get the user data associated with the vhost + * \param vhost: Websocket vhost + * + * This returns the optional user pointer that can be attached to + * a vhost when it was created. Lws never dereferences this pointer, it only + * sets it when the vhost is created, and returns it using this api. + */ +LWS_VISIBLE LWS_EXTERN void * +lws_vhost_user(struct lws_vhost *vhost); + +/** + * lws_context_user() - get the user data associated with the context + * \param context: Websocket context + * + * This returns the optional user allocation that can be attached to + * the context the sockets live in at context_create time. It's a way + * to let all sockets serviced in the same context share data without + * using globals statics in the user code. + */ +LWS_VISIBLE LWS_EXTERN void * +lws_context_user(struct lws_context *context); + +/*! \defgroup vhost-mounts Vhost mounts and options + * \ingroup context-and-vhost-creation + * + * ##Vhost mounts and options + */ +///@{ +/** struct lws_protocol_vhost_options - linked list of per-vhost protocol + * name=value options + * + * This provides a general way to attach a linked-list of name=value pairs, + * which can also have an optional child link-list using the options member. + */ +struct lws_protocol_vhost_options { + const struct lws_protocol_vhost_options *next; /**< linked list */ + const struct lws_protocol_vhost_options *options; /**< child linked-list of more options for this node */ + const char *name; /**< name of name=value pair */ + const char *value; /**< value of name=value pair */ +}; + +/** enum lws_mount_protocols + * This specifies the mount protocol for a mountpoint, whether it is to be + * served from a filesystem, or it is a cgi etc. + */ +enum lws_mount_protocols { + LWSMPRO_HTTP = 0, /**< http reverse proxy */ + LWSMPRO_HTTPS = 1, /**< https reverse proxy */ + LWSMPRO_FILE = 2, /**< serve from filesystem directory */ + LWSMPRO_CGI = 3, /**< pass to CGI to handle */ + LWSMPRO_REDIR_HTTP = 4, /**< redirect to http:// url */ + LWSMPRO_REDIR_HTTPS = 5, /**< redirect to https:// url */ + LWSMPRO_CALLBACK = 6, /**< hand by named protocol's callback */ +}; + +/** struct lws_http_mount + * + * arguments for mounting something in a vhost's url namespace + */ +struct lws_http_mount { + const struct lws_http_mount *mount_next; + /**< pointer to next struct lws_http_mount */ + const char *mountpoint; + /**< mountpoint in http pathspace, eg, "/" */ + const char *origin; + /**< path to be mounted, eg, "/var/www/warmcat.com" */ + const char *def; + /**< default target, eg, "index.html" */ + const char *protocol; + /**<"protocol-name" to handle mount */ + + const struct lws_protocol_vhost_options *cgienv; + /**< optional linked-list of cgi options. These are created + * as environment variables for the cgi process + */ + const struct lws_protocol_vhost_options *extra_mimetypes; + /**< optional linked-list of mimetype mappings */ + const struct lws_protocol_vhost_options *interpret; + /**< optional linked-list of files to be interpreted */ + + int cgi_timeout; + /**< seconds cgi is allowed to live, if cgi://mount type */ + int cache_max_age; + /**< max-age for reuse of client cache of files, seconds */ + unsigned int auth_mask; + /**< bits set here must be set for authorized client session */ + + unsigned int cache_reusable:1; /**< set if client cache may reuse this */ + unsigned int cache_revalidate:1; /**< set if client cache should revalidate on use */ + unsigned int cache_intermediaries:1; /**< set if intermediaries are allowed to cache */ + + unsigned char origin_protocol; /**< one of enum lws_mount_protocols */ + unsigned char mountpoint_len; /**< length of mountpoint string */ + + const char *basic_auth_login_file; + /**<NULL, or filepath to use to check basic auth logins against */ + + /* Add new things just above here ---^ + * This is part of the ABI, don't needlessly break compatibility + * + * The below is to ensure later library versions with new + * members added above will see 0 (default) even if the app + * was not built against the newer headers. + */ + + void *_unused[2]; /**< dummy */ +}; +///@} +///@} + +/*! \defgroup client Client related functions + * ##Client releated functions + * \ingroup lwsapi + * + * */ +///@{ + +/** enum lws_client_connect_ssl_connection_flags - flags that may be used + * with struct lws_client_connect_info ssl_connection member to control if + * and how SSL checks apply to the client connection being created + */ + +enum lws_client_connect_ssl_connection_flags { + LCCSCF_USE_SSL = (1 << 0), + LCCSCF_ALLOW_SELFSIGNED = (1 << 1), + LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK = (1 << 2), + LCCSCF_ALLOW_EXPIRED = (1 << 3) +}; + +/** struct lws_client_connect_info - parameters to connect with when using + * lws_client_connect_via_info() */ + +struct lws_client_connect_info { + struct lws_context *context; + /**< lws context to create connection in */ + const char *address; + /**< remote address to connect to */ + int port; + /**< remote port to connect to */ + int ssl_connection; + /**< nonzero for ssl */ + const char *path; + /**< uri path */ + const char *host; + /**< content of host header */ + const char *origin; + /**< content of origin header */ + const char *protocol; + /**< list of ws protocols we could accept */ + int ietf_version_or_minus_one; + /**< deprecated: currently leave at 0 or -1 */ + void *userdata; + /**< if non-NULL, use this as wsi user_data instead of malloc it */ + const void *client_exts; + /**< UNUSED... provide in info.extensions at context creation time */ + const char *method; + /**< if non-NULL, do this http method instead of ws[s] upgrade. + * use "GET" to be a simple http client connection */ + struct lws *parent_wsi; + /**< if another wsi is responsible for this connection, give it here. + * this is used to make sure if the parent closes so do any + * child connections first. */ + const char *uri_replace_from; + /**< if non-NULL, when this string is found in URIs in + * text/html content-encoding, it's replaced with uri_replace_to */ + const char *uri_replace_to; + /**< see uri_replace_from */ + struct lws_vhost *vhost; + /**< vhost to bind to (used to determine related SSL_CTX) */ + struct lws **pwsi; + /**< if not NULL, store the new wsi here early in the connection + * process. Although we return the new wsi, the call to create the + * client connection does progress the connection somewhat and may + * meet an error that will result in the connection being scrubbed and + * NULL returned. While the wsi exists though, he may process a + * callback like CLIENT_CONNECTION_ERROR with his wsi: this gives the + * user callback a way to identify which wsi it is that faced the error + * even before the new wsi is returned and even if ultimately no wsi + * is returned. + */ + const char *iface; + /**< NULL to allow routing on any interface, or interface name or IP + * to bind the socket to */ + + /* Add new things just above here ---^ + * This is part of the ABI, don't needlessly break compatibility + * + * The below is to ensure later library versions with new + * members added above will see 0 (default) even if the app + * was not built against the newer headers. + */ + + void *_unused[4]; /**< dummy */ +}; + +/** + * lws_client_connect_via_info() - Connect to another websocket server + * \param ccinfo: pointer to lws_client_connect_info struct + * + * This function creates a connection to a remote server using the + * information provided in ccinfo. + */ +LWS_VISIBLE LWS_EXTERN struct lws * +lws_client_connect_via_info(struct lws_client_connect_info * ccinfo); + +/** + * lws_client_connect() - Connect to another websocket server + * \deprecated DEPRECATED use lws_client_connect_via_info + * \param clients: Websocket context + * \param address: Remote server address, eg, "myserver.com" + * \param port: Port to connect to on the remote server, eg, 80 + * \param ssl_connection: 0 = ws://, 1 = wss:// encrypted, 2 = wss:// allow self + * signed certs + * \param path: Websocket path on server + * \param host: Hostname on server + * \param origin: Socket origin name + * \param protocol: Comma-separated list of protocols being asked for from + * the server, or just one. The server will pick the one it + * likes best. If you don't want to specify a protocol, which is + * legal, use NULL here. + * \param ietf_version_or_minus_one: -1 to ask to connect using the default, latest + * protocol supported, or the specific protocol ordinal + * + * This function creates a connection to a remote server + */ +/* deprecated, use lws_client_connect_via_info() */ +LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT +lws_client_connect(struct lws_context *clients, const char *address, + int port, int ssl_connection, const char *path, + const char *host, const char *origin, const char *protocol, + int ietf_version_or_minus_one) LWS_WARN_DEPRECATED; +/* deprecated, use lws_client_connect_via_info() */ +/** + * lws_client_connect_extended() - Connect to another websocket server + * \deprecated DEPRECATED use lws_client_connect_via_info + * \param clients: Websocket context + * \param address: Remote server address, eg, "myserver.com" + * \param port: Port to connect to on the remote server, eg, 80 + * \param ssl_connection: 0 = ws://, 1 = wss:// encrypted, 2 = wss:// allow self + * signed certs + * \param path: Websocket path on server + * \param host: Hostname on server + * \param origin: Socket origin name + * \param protocol: Comma-separated list of protocols being asked for from + * the server, or just one. The server will pick the one it + * likes best. + * \param ietf_version_or_minus_one: -1 to ask to connect using the default, latest + * protocol supported, or the specific protocol ordinal + * \param userdata: Pre-allocated user data + * + * This function creates a connection to a remote server + */ +LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT +lws_client_connect_extended(struct lws_context *clients, const char *address, + int port, int ssl_connection, const char *path, + const char *host, const char *origin, + const char *protocol, int ietf_version_or_minus_one, + void *userdata) LWS_WARN_DEPRECATED; + +/** + * lws_init_vhost_client_ssl() - also enable client SSL on an existing vhost + * + * \param info: client ssl related info + * \param vhost: which vhost to initialize client ssl operations on + * + * You only need to call this if you plan on using SSL client connections on + * the vhost. For non-SSL client connections, it's not necessary to call this. + * + * The following members of info are used during the call + * + * - options must have LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT set, + * otherwise the call does nothing + * - provided_client_ssl_ctx must be NULL to get a generated client + * ssl context, otherwise you can pass a prepared one in by setting it + * - ssl_cipher_list may be NULL or set to the client valid cipher list + * - ssl_ca_filepath may be NULL or client cert filepath + * - ssl_cert_filepath may be NULL or client cert filepath + * - ssl_private_key_filepath may be NULL or client cert private key + * + * You must create your vhost explicitly if you want to use this, so you have + * a pointer to the vhost. Create the context first with the option flag + * LWS_SERVER_OPTION_EXPLICIT_VHOSTS and then call lws_create_vhost() with + * the same info struct. + */ +LWS_VISIBLE LWS_EXTERN int +lws_init_vhost_client_ssl(const struct lws_context_creation_info *info, + struct lws_vhost *vhost); +/** + * lws_http_client_read() - consume waiting received http client data + * + * \param wsi: client connection + * \param buf: pointer to buffer pointer - fill with pointer to your buffer + * \param len: pointer to chunk length - fill with max length of buffer + * + * This is called when the user code is notified client http data has arrived. + * The user code may choose to delay calling it to consume the data, for example + * waiting until an onward connection is writeable. + * + * For non-chunked connections, up to len bytes of buf are filled with the + * received content. len is set to the actual amount filled before return. + * + * For chunked connections, the linear buffer content contains the chunking + * headers and it cannot be passed in one lump. Instead, this function will + * call back LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ with in pointing to the + * chunk start and len set to the chunk length. There will be as many calls + * as there are chunks or partial chunks in the buffer. + */ +LWS_VISIBLE LWS_EXTERN int +lws_http_client_read(struct lws *wsi, char **buf, int *len); + +/** + * lws_http_client_http_response() - get last HTTP response code + * + * \param wsi: client connection + * + * Returns the last server response code, eg, 200 for client http connections. + */ +LWS_VISIBLE LWS_EXTERN unsigned int +lws_http_client_http_response(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void +lws_client_http_body_pending(struct lws *wsi, int something_left_to_send); + +/** + * lws_client_http_body_pending() - control if client connection neeeds to send body + * + * \param wsi: client connection + * \param something_left_to_send: nonzero if need to send more body, 0 (default) + * if nothing more to send + * + * If you will send payload data with your HTTP client connection, eg, for POST, + * when you set the related http headers in + * LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER callback you should also call + * this API with something_left_to_send nonzero, and call + * lws_callback_on_writable(wsi); + * + * After sending the headers, lws will call your callback with + * LWS_CALLBACK_CLIENT_HTTP_WRITEABLE reason when writable. You can send the + * next part of the http body payload, calling lws_callback_on_writable(wsi); + * if there is more to come, or lws_client_http_body_pending(wsi, 0); to + * let lws know the last part is sent and the connection can move on. + */ + +///@} + +/** \defgroup service Built-in service loop entry + * + * ##Built-in service loop entry + * + * If you're not using libev / libuv, these apis are needed to enter the poll() + * wait in lws and service any connections with pending events. + */ +///@{ + +/** + * lws_service() - Service any pending websocket activity + * \param context: Websocket context + * \param timeout_ms: Timeout for poll; 0 means return immediately if nothing needed + * service otherwise block and service immediately, returning + * after the timeout if nothing needed service. + * + * This function deals with any pending websocket traffic, for three + * kinds of event. It handles these events on both server and client + * types of connection the same. + * + * 1) Accept new connections to our context's server + * + * 2) Call the receive callback for incoming frame data received by + * server or client connections. + * + * You need to call this service function periodically to all the above + * functions to happen; if your application is single-threaded you can + * just call it in your main event loop. + * + * Alternatively you can fork a new process that asynchronously handles + * calling this service in a loop. In that case you are happy if this + * call blocks your thread until it needs to take care of something and + * would call it with a large nonzero timeout. Your loop then takes no + * CPU while there is nothing happening. + * + * If you are calling it in a single-threaded app, you don't want it to + * wait around blocking other things in your loop from happening, so you + * would call it with a timeout_ms of 0, so it returns immediately if + * nothing is pending, or as soon as it services whatever was pending. + */ +LWS_VISIBLE LWS_EXTERN int +lws_service(struct lws_context *context, int timeout_ms); + +/** + * lws_service_tsi() - Service any pending websocket activity + * + * \param context: Websocket context + * \param timeout_ms: Timeout for poll; 0 means return immediately if nothing needed + * service otherwise block and service immediately, returning + * after the timeout if nothing needed service. + * \param tsi: Thread service index, starting at 0 + * + * Same as lws_service(), but for a specific thread service index. Only needed + * if you are spawning multiple service threads. + */ +LWS_VISIBLE LWS_EXTERN int +lws_service_tsi(struct lws_context *context, int timeout_ms, int tsi); + +/** + * lws_cancel_service_pt() - Cancel servicing of pending socket activity + * on one thread + * \param wsi: Cancel service on the thread this wsi is serviced by + * + * This function lets a call to lws_service() waiting for a timeout + * immediately return. + * + * It works by creating a phony event and then swallowing it silently. + * + * The reason it may be needed is when waiting in poll(), changes to + * the event masks are ignored by the OS until poll() is reentered. This + * lets you halt the poll() wait and make the reentry happen immediately + * instead of having the wait out the rest of the poll timeout. + */ +LWS_VISIBLE LWS_EXTERN void +lws_cancel_service_pt(struct lws *wsi); + +/** + * lws_cancel_service() - Cancel wait for new pending socket activity + * \param context: Websocket context + * + * This function let a call to lws_service() waiting for a timeout + * immediately return. + * + * What it basically does is provide a fake event that will be swallowed, + * so the wait in poll() is ended. That's useful because poll() doesn't + * attend to changes in POLLIN/OUT/ERR until it re-enters the wait. + */ +LWS_VISIBLE LWS_EXTERN void +lws_cancel_service(struct lws_context *context); + +/** + * lws_service_fd() - Service polled socket with something waiting + * \param context: Websocket context + * \param pollfd: The pollfd entry describing the socket fd and which events + * happened, or NULL to tell lws to do only timeout servicing. + * + * This function takes a pollfd that has POLLIN or POLLOUT activity and + * services it according to the state of the associated + * struct lws. + * + * The one call deals with all "service" that might happen on a socket + * including listen accepts, http files as well as websocket protocol. + * + * If a pollfd says it has something, you can just pass it to + * lws_service_fd() whether it is a socket handled by lws or not. + * If it sees it is a lws socket, the traffic will be handled and + * pollfd->revents will be zeroed now. + * + * If the socket is foreign to lws, it leaves revents alone. So you can + * see if you should service yourself by checking the pollfd revents + * after letting lws try to service it. + * + * You should also call this with pollfd = NULL to just allow the + * once-per-second global timeout checks; if less than a second since the last + * check it returns immediately then. + */ +LWS_VISIBLE LWS_EXTERN int +lws_service_fd(struct lws_context *context, struct lws_pollfd *pollfd); + +/** + * lws_service_fd_tsi() - Service polled socket in specific service thread + * \param context: Websocket context + * \param pollfd: The pollfd entry describing the socket fd and which events + * happened. + * \param tsi: thread service index + * + * Same as lws_service_fd() but used with multiple service threads + */ +LWS_VISIBLE LWS_EXTERN int +lws_service_fd_tsi(struct lws_context *context, struct lws_pollfd *pollfd, + int tsi); + +/** + * lws_service_adjust_timeout() - Check for any connection needing forced service + * \param context: Websocket context + * \param timeout_ms: The original poll timeout value. You can just set this + * to 1 if you don't really have a poll timeout. + * \param tsi: thread service index + * + * Under some conditions connections may need service even though there is no + * pending network action on them, this is "forced service". For default + * poll() and libuv / libev, the library takes care of calling this and + * dealing with it for you. But for external poll() integration, you need + * access to the apis. + * + * If anybody needs "forced service", returned timeout is zero. In that case, + * you can call lws_service_tsi() with a timeout of -1 to only service + * guys who need forced service. + */ +LWS_VISIBLE LWS_EXTERN int +lws_service_adjust_timeout(struct lws_context *context, int timeout_ms, int tsi); + +/* Backwards compatibility */ +#define lws_plat_service_tsi lws_service_tsi + +LWS_VISIBLE LWS_EXTERN int +lws_handle_POLLOUT_event(struct lws *wsi, struct lws_pollfd *pollfd); + +///@} + +/*! \defgroup http HTTP + + Modules related to handling HTTP +*/ +//@{ + +/*! \defgroup httpft HTTP File transfer + * \ingroup http + + APIs for sending local files in response to HTTP requests +*/ +//@{ + +/** + * lws_get_mimetype() - Determine mimetype to use from filename + * + * \param file: filename + * \param m: NULL, or mount context + * + * This uses a canned list of known filetypes first, if no match and m is + * non-NULL, then tries a list of per-mount file suffix to mimtype mappings. + * + * Returns either NULL or a pointer to the mimetype matching the file. + */ +LWS_VISIBLE LWS_EXTERN const char * +lws_get_mimetype(const char *file, const struct lws_http_mount *m); + +/** + * lws_serve_http_file() - Send a file back to the client using http + * \param wsi: Websocket instance (available from user callback) + * \param file: The file to issue over http + * \param content_type: The http content type, eg, text/html + * \param other_headers: NULL or pointer to header string + * \param other_headers_len: length of the other headers if non-NULL + * + * This function is intended to be called from the callback in response + * to http requests from the client. It allows the callback to issue + * local files down the http link in a single step. + * + * Returning <0 indicates error and the wsi should be closed. Returning + * >0 indicates the file was completely sent and + * lws_http_transaction_completed() called on the wsi (and close if != 0) + * ==0 indicates the file transfer is started and needs more service later, + * the wsi should be left alone. + */ +LWS_VISIBLE LWS_EXTERN int +lws_serve_http_file(struct lws *wsi, const char *file, const char *content_type, + const char *other_headers, int other_headers_len); + +LWS_VISIBLE LWS_EXTERN int +lws_serve_http_file_fragment(struct lws *wsi); +//@} + + +enum http_status { + HTTP_STATUS_CONTINUE = 100, + + HTTP_STATUS_OK = 200, + HTTP_STATUS_NO_CONTENT = 204, + HTTP_STATUS_PARTIAL_CONTENT = 206, + + HTTP_STATUS_MOVED_PERMANENTLY = 301, + HTTP_STATUS_FOUND = 302, + HTTP_STATUS_SEE_OTHER = 303, + HTTP_STATUS_NOT_MODIFIED = 304, + + HTTP_STATUS_BAD_REQUEST = 400, + HTTP_STATUS_UNAUTHORIZED, + HTTP_STATUS_PAYMENT_REQUIRED, + HTTP_STATUS_FORBIDDEN, + HTTP_STATUS_NOT_FOUND, + HTTP_STATUS_METHOD_NOT_ALLOWED, + HTTP_STATUS_NOT_ACCEPTABLE, + HTTP_STATUS_PROXY_AUTH_REQUIRED, + HTTP_STATUS_REQUEST_TIMEOUT, + HTTP_STATUS_CONFLICT, + HTTP_STATUS_GONE, + HTTP_STATUS_LENGTH_REQUIRED, + HTTP_STATUS_PRECONDITION_FAILED, + HTTP_STATUS_REQ_ENTITY_TOO_LARGE, + HTTP_STATUS_REQ_URI_TOO_LONG, + HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE, + HTTP_STATUS_REQ_RANGE_NOT_SATISFIABLE, + HTTP_STATUS_EXPECTATION_FAILED, + + HTTP_STATUS_INTERNAL_SERVER_ERROR = 500, + HTTP_STATUS_NOT_IMPLEMENTED, + HTTP_STATUS_BAD_GATEWAY, + HTTP_STATUS_SERVICE_UNAVAILABLE, + HTTP_STATUS_GATEWAY_TIMEOUT, + HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED, +}; +/*! \defgroup html-chunked-substitution HTML Chunked Substitution + * \ingroup http + * + * ##HTML chunked Substitution + * + * APIs for receiving chunks of text, replacing a set of variable names via + * a callback, and then prepending and appending HTML chunked encoding + * headers. + */ +//@{ + +struct lws_process_html_args { + char *p; /**< pointer to the buffer containing the data */ + int len; /**< length of the original data at p */ + int max_len; /**< maximum length we can grow the data to */ + int final; /**< set if this is the last chunk of the file */ +}; + +typedef const char *(*lws_process_html_state_cb)(void *data, int index); + +struct lws_process_html_state { + char *start; /**< pointer to start of match */ + char swallow[16]; /**< matched character buffer */ + int pos; /**< position in match */ + void *data; /**< opaque pointer */ + const char * const *vars; /**< list of variable names */ + int count_vars; /**< count of variable names */ + + lws_process_html_state_cb replace; /**< called on match to perform substitution */ +}; + +/*! lws_chunked_html_process() - generic chunked substitution + * \param args: buffer to process using chunked encoding + * \param s: current processing state + */ +LWS_VISIBLE LWS_EXTERN int +lws_chunked_html_process(struct lws_process_html_args *args, + struct lws_process_html_state *s); +//@} + +/** \defgroup HTTP-headers-read HTTP headers: read + * \ingroup http + * + * ##HTTP header releated functions + * + * In lws the client http headers are temporarily stored in a pool, only for the + * duration of the http part of the handshake. It's because in most cases, + * the header content is ignored for the whole rest of the connection lifetime + * and would then just be taking up space needlessly. + * + * During LWS_CALLBACK_HTTP when the URI path is delivered is the last time + * the http headers are still allocated, you can use these apis then to + * look at and copy out interesting header content (cookies, etc) + * + * Notice that the header total length reported does not include a terminating + * '\0', however you must allocate for it when using the _copy apis. So the + * length reported for a header containing "123" is 3, but you must provide + * a buffer of length 4 so that "123\0" may be copied into it, or the copy + * will fail with a nonzero return code. + * + * In the special case of URL arguments, like ?x=1&y=2, the arguments are + * stored in a token named for the method, eg, WSI_TOKEN_GET_URI if it + * was a GET or WSI_TOKEN_POST_URI if POST. You can check the total + * length to confirm the method. + * + * For URL arguments, each argument is stored urldecoded in a "fragment", so + * you can use the fragment-aware api lws_hdr_copy_fragment() to access each + * argument in turn: the fragments contain urldecoded strings like x=1 or y=2. + * + * As a convenience, lws has an api that will find the fragment with a + * given name= part, lws_get_urlarg_by_name(). + */ +///@{ + +/** struct lws_tokens + * you need these to look at headers that have been parsed if using the + * LWS_CALLBACK_FILTER_CONNECTION callback. If a header from the enum + * list below is absent, .token = NULL and token_len = 0. Otherwise .token + * points to .token_len chars containing that header content. + */ +struct lws_tokens { + char *token; /**< pointer to start of the token */ + int token_len; /**< length of the token's value */ +}; + +/* enum lws_token_indexes + * these have to be kept in sync with lextable.h / minilex.c + * + * NOTE: These public enums are part of the abi. If you want to add one, + * add it at where specified so existing users are unaffected. + */ +enum lws_token_indexes { + WSI_TOKEN_GET_URI = 0, + WSI_TOKEN_POST_URI = 1, + WSI_TOKEN_OPTIONS_URI = 2, + WSI_TOKEN_HOST = 3, + WSI_TOKEN_CONNECTION = 4, + WSI_TOKEN_UPGRADE = 5, + WSI_TOKEN_ORIGIN = 6, + WSI_TOKEN_DRAFT = 7, + WSI_TOKEN_CHALLENGE = 8, + WSI_TOKEN_EXTENSIONS = 9, + WSI_TOKEN_KEY1 = 10, + WSI_TOKEN_KEY2 = 11, + WSI_TOKEN_PROTOCOL = 12, + WSI_TOKEN_ACCEPT = 13, + WSI_TOKEN_NONCE = 14, + WSI_TOKEN_HTTP = 15, + WSI_TOKEN_HTTP2_SETTINGS = 16, + WSI_TOKEN_HTTP_ACCEPT = 17, + WSI_TOKEN_HTTP_AC_REQUEST_HEADERS = 18, + WSI_TOKEN_HTTP_IF_MODIFIED_SINCE = 19, + WSI_TOKEN_HTTP_IF_NONE_MATCH = 20, + WSI_TOKEN_HTTP_ACCEPT_ENCODING = 21, + WSI_TOKEN_HTTP_ACCEPT_LANGUAGE = 22, + WSI_TOKEN_HTTP_PRAGMA = 23, + WSI_TOKEN_HTTP_CACHE_CONTROL = 24, + WSI_TOKEN_HTTP_AUTHORIZATION = 25, + WSI_TOKEN_HTTP_COOKIE = 26, + WSI_TOKEN_HTTP_CONTENT_LENGTH = 27, + WSI_TOKEN_HTTP_CONTENT_TYPE = 28, + WSI_TOKEN_HTTP_DATE = 29, + WSI_TOKEN_HTTP_RANGE = 30, + WSI_TOKEN_HTTP_REFERER = 31, + WSI_TOKEN_KEY = 32, + WSI_TOKEN_VERSION = 33, + WSI_TOKEN_SWORIGIN = 34, + + WSI_TOKEN_HTTP_COLON_AUTHORITY = 35, + WSI_TOKEN_HTTP_COLON_METHOD = 36, + WSI_TOKEN_HTTP_COLON_PATH = 37, + WSI_TOKEN_HTTP_COLON_SCHEME = 38, + WSI_TOKEN_HTTP_COLON_STATUS = 39, + + WSI_TOKEN_HTTP_ACCEPT_CHARSET = 40, + WSI_TOKEN_HTTP_ACCEPT_RANGES = 41, + WSI_TOKEN_HTTP_ACCESS_CONTROL_ALLOW_ORIGIN = 42, + WSI_TOKEN_HTTP_AGE = 43, + WSI_TOKEN_HTTP_ALLOW = 44, + WSI_TOKEN_HTTP_CONTENT_DISPOSITION = 45, + WSI_TOKEN_HTTP_CONTENT_ENCODING = 46, + WSI_TOKEN_HTTP_CONTENT_LANGUAGE = 47, + WSI_TOKEN_HTTP_CONTENT_LOCATION = 48, + WSI_TOKEN_HTTP_CONTENT_RANGE = 49, + WSI_TOKEN_HTTP_ETAG = 50, + WSI_TOKEN_HTTP_EXPECT = 51, + WSI_TOKEN_HTTP_EXPIRES = 52, + WSI_TOKEN_HTTP_FROM = 53, + WSI_TOKEN_HTTP_IF_MATCH = 54, + WSI_TOKEN_HTTP_IF_RANGE = 55, + WSI_TOKEN_HTTP_IF_UNMODIFIED_SINCE = 56, + WSI_TOKEN_HTTP_LAST_MODIFIED = 57, + WSI_TOKEN_HTTP_LINK = 58, + WSI_TOKEN_HTTP_LOCATION = 59, + WSI_TOKEN_HTTP_MAX_FORWARDS = 60, + WSI_TOKEN_HTTP_PROXY_AUTHENTICATE = 61, + WSI_TOKEN_HTTP_PROXY_AUTHORIZATION = 62, + WSI_TOKEN_HTTP_REFRESH = 63, + WSI_TOKEN_HTTP_RETRY_AFTER = 64, + WSI_TOKEN_HTTP_SERVER = 65, + WSI_TOKEN_HTTP_SET_COOKIE = 66, + WSI_TOKEN_HTTP_STRICT_TRANSPORT_SECURITY = 67, + WSI_TOKEN_HTTP_TRANSFER_ENCODING = 68, + WSI_TOKEN_HTTP_USER_AGENT = 69, + WSI_TOKEN_HTTP_VARY = 70, + WSI_TOKEN_HTTP_VIA = 71, + WSI_TOKEN_HTTP_WWW_AUTHENTICATE = 72, + + WSI_TOKEN_PATCH_URI = 73, + WSI_TOKEN_PUT_URI = 74, + WSI_TOKEN_DELETE_URI = 75, + + WSI_TOKEN_HTTP_URI_ARGS = 76, + WSI_TOKEN_PROXY = 77, + WSI_TOKEN_HTTP_X_REAL_IP = 78, + WSI_TOKEN_HTTP1_0 = 79, + WSI_TOKEN_X_FORWARDED_FOR = 80, + WSI_TOKEN_CONNECT = 81, + WSI_TOKEN_HEAD_URI = 82, + WSI_TOKEN_TE = 83, + /****** add new things just above ---^ ******/ + + /* use token storage to stash these internally, not for + * user use */ + + _WSI_TOKEN_CLIENT_SENT_PROTOCOLS, + _WSI_TOKEN_CLIENT_PEER_ADDRESS, + _WSI_TOKEN_CLIENT_URI, + _WSI_TOKEN_CLIENT_HOST, + _WSI_TOKEN_CLIENT_ORIGIN, + _WSI_TOKEN_CLIENT_METHOD, + _WSI_TOKEN_CLIENT_IFACE, + + /* always last real token index*/ + WSI_TOKEN_COUNT, + + /* parser state additions, no storage associated */ + WSI_TOKEN_NAME_PART, + WSI_TOKEN_SKIPPING, + WSI_TOKEN_SKIPPING_SAW_CR, + WSI_PARSING_COMPLETE, + WSI_INIT_TOKEN_MUXURL, +}; + +struct lws_token_limits { + unsigned short token_limit[WSI_TOKEN_COUNT]; /**< max chars for this token */ +}; + +/** + * lws_token_to_string() - returns a textual representation of a hdr token index + * + * \param token: token index + */ +LWS_VISIBLE LWS_EXTERN const unsigned char * +lws_token_to_string(enum lws_token_indexes token); + +/** + * lws_hdr_total_length: report length of all fragments of a header totalled up + * The returned length does not include the space for a + * terminating '\0' + * + * \param wsi: websocket connection + * \param h: which header index we are interested in + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_hdr_total_length(struct lws *wsi, enum lws_token_indexes h); + +/** + * lws_hdr_fragment_length: report length of a single fragment of a header + * The returned length does not include the space for a + * terminating '\0' + * + * \param wsi: websocket connection + * \param h: which header index we are interested in + * \param frag_idx: which fragment of h we want to get the length of + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_hdr_fragment_length(struct lws *wsi, enum lws_token_indexes h, int frag_idx); + +/** + * lws_hdr_copy() - copy a single fragment of the given header to a buffer + * The buffer length len must include space for an additional + * terminating '\0', or it will fail returning -1. + * + * \param wsi: websocket connection + * \param dest: destination buffer + * \param len: length of destination buffer + * \param h: which header index we are interested in + * + * copies the whole, aggregated header, even if it was delivered in + * several actual headers piece by piece + */ +LWS_VISIBLE LWS_EXTERN int +lws_hdr_copy(struct lws *wsi, char *dest, int len, enum lws_token_indexes h); + +/** + * lws_hdr_copy_fragment() - copy a single fragment of the given header to a buffer + * The buffer length len must include space for an additional + * terminating '\0', or it will fail returning -1. + * If the requested fragment index is not present, it fails + * returning -1. + * + * \param wsi: websocket connection + * \param dest: destination buffer + * \param len: length of destination buffer + * \param h: which header index we are interested in + * \param frag_idx: which fragment of h we want to copy + * + * Normally this is only useful + * to parse URI arguments like ?x=1&y=2, token index WSI_TOKEN_HTTP_URI_ARGS + * fragment 0 will contain "x=1" and fragment 1 "y=2" + */ +LWS_VISIBLE LWS_EXTERN int +lws_hdr_copy_fragment(struct lws *wsi, char *dest, int len, + enum lws_token_indexes h, int frag_idx); + +/** + * lws_get_urlarg_by_name() - return pointer to arg value if present + * \param wsi: the connection to check + * \param name: the arg name, like "token=" + * \param buf: the buffer to receive the urlarg (including the name= part) + * \param len: the length of the buffer to receive the urlarg + * + * Returns NULL if not found or a pointer inside buf to just after the + * name= part. + */ +LWS_VISIBLE LWS_EXTERN const char * +lws_get_urlarg_by_name(struct lws *wsi, const char *name, char *buf, int len); +///@} + +/*! \defgroup HTTP-headers-create HTTP headers: create + * + * ## HTTP headers: Create + * + * These apis allow you to create HTTP response headers in a way compatible with + * both HTTP/1.x and HTTP/2. + * + * They each append to a buffer taking care about the buffer end, which is + * passed in as a pointer. When data is written to the buffer, the current + * position p is updated accordingly. + * + * All of these apis are LWS_WARN_UNUSED_RESULT as they can run out of space + * and fail with nonzero return. + */ +///@{ + +#define LWSAHH_CODE_MASK ((1 << 16) - 1) +#define LWSAHH_FLAG_NO_SERVER_NAME (1 << 30) + +/** + * lws_add_http_header_status() - add the HTTP response status code + * + * \param wsi: the connection to check + * \param code: an HTTP code like 200, 404 etc (see enum http_status) + * \param p: pointer to current position in buffer pointer + * \param end: pointer to end of buffer + * + * Adds the initial response code, so should be called first. + * + * Code may additionally take OR'd flags: + * + * LWSAHH_FLAG_NO_SERVER_NAME: don't apply server name header this time + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_add_http_header_status(struct lws *wsi, + unsigned int code, unsigned char **p, + unsigned char *end); +/** + * lws_add_http_header_by_name() - append named header and value + * + * \param wsi: the connection to check + * \param name: the hdr name, like "my-header" + * \param value: the value after the = for this header + * \param length: the length of the value + * \param p: pointer to current position in buffer pointer + * \param end: pointer to end of buffer + * + * Appends name: value to the headers + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_add_http_header_by_name(struct lws *wsi, const unsigned char *name, + const unsigned char *value, int length, + unsigned char **p, unsigned char *end); +/** + * lws_add_http_header_by_token() - append given header and value + * + * \param wsi: the connection to check + * \param token: the token index for the hdr + * \param value: the value after the = for this header + * \param length: the length of the value + * \param p: pointer to current position in buffer pointer + * \param end: pointer to end of buffer + * + * Appends name=value to the headers, but is able to take advantage of better + * HTTP/2 coding mechanisms where possible. + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_add_http_header_by_token(struct lws *wsi, enum lws_token_indexes token, + const unsigned char *value, int length, + unsigned char **p, unsigned char *end); +/** + * lws_add_http_header_content_length() - append content-length helper + * + * \param wsi: the connection to check + * \param content_length: the content length to use + * \param p: pointer to current position in buffer pointer + * \param end: pointer to end of buffer + * + * Appends content-length: content_length to the headers + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_add_http_header_content_length(struct lws *wsi, + lws_filepos_t content_length, + unsigned char **p, unsigned char *end); +/** + * lws_finalize_http_header() - terminate header block + * + * \param wsi: the connection to check + * \param p: pointer to current position in buffer pointer + * \param end: pointer to end of buffer + * + * Indicates no more headers will be added + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_finalize_http_header(struct lws *wsi, unsigned char **p, + unsigned char *end); +///@} + +/** \defgroup form-parsing Form Parsing + * \ingroup http + * ##POSTed form parsing functions + * + * These lws_spa (stateful post arguments) apis let you parse and urldecode + * POSTed form arguments, both using simple urlencoded and multipart transfer + * encoding. + * + * It's capable of handling file uploads as well a named input parsing, + * and the apis are the same for both form upload styles. + * + * You feed it a list of parameter names and it creates pointers to the + * urldecoded arguments: file upload parameters pass the file data in chunks to + * a user-supplied callback as they come. + * + * Since it's stateful, it handles the incoming data needing more than one + * POST_BODY callback and has no limit on uploaded file size. + */ +///@{ + +/** enum lws_spa_fileupload_states */ +enum lws_spa_fileupload_states { + LWS_UFS_CONTENT, + /**< a chunk of file content has arrived */ + LWS_UFS_FINAL_CONTENT, + /**< the last chunk (possibly zero length) of file content has arrived */ + LWS_UFS_OPEN + /**< a new file is starting to arrive */ +}; + +/** + * lws_spa_fileupload_cb() - callback to receive file upload data + * + * \param data: opt_data pointer set in lws_spa_create + * \param name: name of the form field being uploaded + * \param filename: original filename from client + * \param buf: start of data to receive + * \param len: length of data to receive + * \param state: information about how this call relates to file + * + * Notice name and filename shouldn't be trusted, as they are passed from + * HTTP provided by the client. + */ +typedef int (*lws_spa_fileupload_cb)(void *data, const char *name, + const char *filename, char *buf, int len, + enum lws_spa_fileupload_states state); + +/** struct lws_spa - opaque urldecode parser capable of handling multipart + * and file uploads */ +struct lws_spa; + +/** + * lws_spa_create() - create urldecode parser + * + * \param wsi: lws connection (used to find Content Type) + * \param param_names: array of form parameter names, like "username" + * \param count_params: count of param_names + * \param max_storage: total amount of form parameter values we can store + * \param opt_cb: NULL, or callback to receive file upload data. + * \param opt_data: NULL, or user pointer provided to opt_cb. + * + * Creates a urldecode parser and initializes it. + * + * opt_cb can be NULL if you just want normal name=value parsing, however + * if one or more entries in your form are bulk data (file transfer), you + * can provide this callback and filter on the name callback parameter to + * treat that urldecoded data separately. The callback should return -1 + * in case of fatal error, and 0 if OK. + */ +LWS_VISIBLE LWS_EXTERN struct lws_spa * +lws_spa_create(struct lws *wsi, const char * const *param_names, + int count_params, int max_storage, lws_spa_fileupload_cb opt_cb, + void *opt_data); + +/** + * lws_spa_process() - parses a chunk of input data + * + * \param spa: the parser object previously created + * \param in: incoming, urlencoded data + * \param len: count of bytes valid at \param in + */ +LWS_VISIBLE LWS_EXTERN int +lws_spa_process(struct lws_spa *spa, const char *in, int len); + +/** + * lws_spa_finalize() - indicate incoming data completed + * + * \param spa: the parser object previously created + */ +LWS_VISIBLE LWS_EXTERN int +lws_spa_finalize(struct lws_spa *spa); + +/** + * lws_spa_get_length() - return length of parameter value + * + * \param spa: the parser object previously created + * \param n: parameter ordinal to return length of value for + */ +LWS_VISIBLE LWS_EXTERN int +lws_spa_get_length(struct lws_spa *spa, int n); + +/** + * lws_spa_get_string() - return pointer to parameter value + * \param spa: the parser object previously created + * \param n: parameter ordinal to return pointer to value for + */ +LWS_VISIBLE LWS_EXTERN const char * +lws_spa_get_string(struct lws_spa *spa, int n); + +/** + * lws_spa_destroy() - destroy parser object + * + * \param spa: the parser object previously created + */ +LWS_VISIBLE LWS_EXTERN int +lws_spa_destroy(struct lws_spa *spa); +///@} + +/*! \defgroup urlendec Urlencode and Urldecode + * \ingroup http + * + * ##HTML chunked Substitution + * + * APIs for receiving chunks of text, replacing a set of variable names via + * a callback, and then prepending and appending HTML chunked encoding + * headers. + */ +//@{ + +/** + * lws_urlencode() - like strncpy but with urlencoding + * + * \param escaped: output buffer + * \param string: input buffer ('/0' terminated) + * \param len: output buffer max length + * + * Because urlencoding expands the output string, it's not + * possible to do it in-place, ie, with escaped == string + */ +LWS_VISIBLE LWS_EXTERN const char * +lws_urlencode(char *escaped, const char *string, int len); + +/* + * URLDECODE 1 / 2 + * + * This simple urldecode only operates until the first '\0' and requires the + * data to exist all at once + */ +/** + * lws_urldecode() - like strncpy but with urldecoding + * + * \param string: output buffer + * \param escaped: input buffer ('\0' terminated) + * \param len: output buffer max length + * + * This is only useful for '\0' terminated strings + * + * Since urldecoding only shrinks the output string, it is possible to + * do it in-place, ie, string == escaped + * + * Returns 0 if completed OK or nonzero for urldecode violation (non-hex chars + * where hex required, etc) + */ +LWS_VISIBLE LWS_EXTERN int +lws_urldecode(char *string, const char *escaped, int len); +///@} +/** + * lws_return_http_status() - Return simple http status + * \param wsi: Websocket instance (available from user callback) + * \param code: Status index, eg, 404 + * \param html_body: User-readable HTML description < 1KB, or NULL + * + * Helper to report HTTP errors back to the client cleanly and + * consistently + */ +LWS_VISIBLE LWS_EXTERN int +lws_return_http_status(struct lws *wsi, unsigned int code, + const char *html_body); + +/** + * lws_http_redirect() - write http redirect into buffer + * + * \param wsi: websocket connection + * \param code: HTTP response code (eg, 301) + * \param loc: where to redirect to + * \param len: length of loc + * \param p: pointer current position in buffer (updated as we write) + * \param end: pointer to end of buffer + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_http_redirect(struct lws *wsi, int code, const unsigned char *loc, int len, + unsigned char **p, unsigned char *end); + +/** + * lws_http_transaction_completed() - wait for new http transaction or close + * \param wsi: websocket connection + * + * Returns 1 if the HTTP connection must close now + * Returns 0 and resets connection to wait for new HTTP header / + * transaction if possible + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_http_transaction_completed(struct lws *wsi); +///@} + +/*! \defgroup pur Sanitize / purify SQL and JSON helpers + * + * ##Sanitize / purify SQL and JSON helpers + * + * APIs for escaping untrusted JSON and SQL safely before use + */ +//@{ + +/** + * lws_sql_purify() - like strncpy but with escaping for sql quotes + * + * \param escaped: output buffer + * \param string: input buffer ('/0' terminated) + * \param len: output buffer max length + * + * Because escaping expands the output string, it's not + * possible to do it in-place, ie, with escaped == string + */ +LWS_VISIBLE LWS_EXTERN const char * +lws_sql_purify(char *escaped, const char *string, int len); + +/** + * lws_json_purify() - like strncpy but with escaping for json chars + * + * \param escaped: output buffer + * \param string: input buffer ('/0' terminated) + * \param len: output buffer max length + * + * Because escaping expands the output string, it's not + * possible to do it in-place, ie, with escaped == string + */ +LWS_VISIBLE LWS_EXTERN const char * +lws_json_purify(char *escaped, const char *string, int len); +///@} + +/*! \defgroup ev libev helpers + * + * ##libev helpers + * + * APIs specific to libev event loop itegration + */ +///@{ + +#ifdef LWS_WITH_LIBEV +typedef void (lws_ev_signal_cb_t)(EV_P_ struct ev_signal *w, int revents); + +LWS_VISIBLE LWS_EXTERN int +lws_ev_sigint_cfg(struct lws_context *context, int use_ev_sigint, + lws_ev_signal_cb_t *cb); + +LWS_VISIBLE LWS_EXTERN int +lws_ev_initloop(struct lws_context *context, struct ev_loop *loop, int tsi); + +LWS_VISIBLE LWS_EXTERN void +lws_ev_sigint_cb(struct ev_loop *loop, struct ev_signal *watcher, int revents); +#endif /* LWS_WITH_LIBEV */ + +///@} + +/*! \defgroup uv libuv helpers + * + * ##libuv helpers + * + * APIs specific to libuv event loop itegration + */ +///@{ +#ifdef LWS_WITH_LIBUV +LWS_VISIBLE LWS_EXTERN int +lws_uv_sigint_cfg(struct lws_context *context, int use_uv_sigint, + uv_signal_cb cb); + +LWS_VISIBLE LWS_EXTERN void +lws_libuv_run(const struct lws_context *context, int tsi); + +LWS_VISIBLE LWS_EXTERN void +lws_libuv_stop(struct lws_context *context); + +LWS_VISIBLE LWS_EXTERN void +lws_libuv_stop_without_kill(const struct lws_context *context, int tsi); + +LWS_VISIBLE LWS_EXTERN int +lws_uv_initloop(struct lws_context *context, uv_loop_t *loop, int tsi); + +LWS_VISIBLE LWS_EXTERN uv_loop_t * +lws_uv_getloop(struct lws_context *context, int tsi); + +LWS_VISIBLE LWS_EXTERN void +lws_uv_sigint_cb(uv_signal_t *watcher, int signum); + +LWS_VISIBLE LWS_EXTERN void +lws_close_all_handles_in_loop(uv_loop_t *loop); +#endif /* LWS_WITH_LIBUV */ +///@} + +/*! \defgroup event libevent helpers + * + * ##libevent helpers + * + * APIs specific to libevent event loop itegration + */ +///@{ + +#ifdef LWS_WITH_LIBEVENT +typedef void (lws_event_signal_cb_t) (evutil_socket_t sock_fd, short revents, + void *ctx); + +LWS_VISIBLE LWS_EXTERN int +lws_event_sigint_cfg(struct lws_context *context, int use_event_sigint, + lws_event_signal_cb_t cb); + +LWS_VISIBLE LWS_EXTERN int +lws_event_initloop(struct lws_context *context, struct event_base *loop, + int tsi); + +LWS_VISIBLE LWS_EXTERN void +lws_event_sigint_cb(evutil_socket_t sock_fd, short revents, + void *ctx); +#endif /* LWS_WITH_LIBEVENT */ + +///@} + +/*! \defgroup timeout Connection timeouts + + APIs related to setting connection timeouts +*/ +//@{ + +/* + * NOTE: These public enums are part of the abi. If you want to add one, + * add it at where specified so existing users are unaffected. + */ +enum pending_timeout { + NO_PENDING_TIMEOUT = 0, + PENDING_TIMEOUT_AWAITING_PROXY_RESPONSE = 1, + PENDING_TIMEOUT_AWAITING_CONNECT_RESPONSE = 2, + PENDING_TIMEOUT_ESTABLISH_WITH_SERVER = 3, + PENDING_TIMEOUT_AWAITING_SERVER_RESPONSE = 4, + PENDING_TIMEOUT_AWAITING_PING = 5, + PENDING_TIMEOUT_CLOSE_ACK = 6, + PENDING_TIMEOUT_AWAITING_EXTENSION_CONNECT_RESPONSE = 7, + PENDING_TIMEOUT_SENT_CLIENT_HANDSHAKE = 8, + PENDING_TIMEOUT_SSL_ACCEPT = 9, + PENDING_TIMEOUT_HTTP_CONTENT = 10, + PENDING_TIMEOUT_AWAITING_CLIENT_HS_SEND = 11, + PENDING_FLUSH_STORED_SEND_BEFORE_CLOSE = 12, + PENDING_TIMEOUT_SHUTDOWN_FLUSH = 13, + PENDING_TIMEOUT_CGI = 14, + PENDING_TIMEOUT_HTTP_KEEPALIVE_IDLE = 15, + PENDING_TIMEOUT_WS_PONG_CHECK_SEND_PING = 16, + PENDING_TIMEOUT_WS_PONG_CHECK_GET_PONG = 17, + PENDING_TIMEOUT_CLIENT_ISSUE_PAYLOAD = 18, + PENDING_TIMEOUT_AWAITING_SOCKS_GREETING_REPLY = 19, + PENDING_TIMEOUT_AWAITING_SOCKS_CONNECT_REPLY = 20, + PENDING_TIMEOUT_AWAITING_SOCKS_AUTH_REPLY = 21, + PENDING_TIMEOUT_KILLED_BY_SSL_INFO = 22, + PENDING_TIMEOUT_KILLED_BY_PARENT = 23, + PENDING_TIMEOUT_CLOSE_SEND = 24, + PENDING_TIMEOUT_HOLDING_AH = 25, + + /****** add new things just above ---^ ******/ + + PENDING_TIMEOUT_USER_REASON_BASE = 1000 +}; + +#define LWS_TO_KILL_ASYNC -1 +/**< If LWS_TO_KILL_ASYNC is given as the timeout sec in a lws_set_timeout() + * call, then the connection is marked to be killed at the next timeout + * check. This is how you should force-close the wsi being serviced if + * you are doing it outside the callback (where you should close by nonzero + * return). + */ +#define LWS_TO_KILL_SYNC -2 +/**< If LWS_TO_KILL_SYNC is given as the timeout sec in a lws_set_timeout() + * call, then the connection is closed before returning (which may delete + * the wsi). This should only be used where the wsi being closed is not the + * wsi currently being serviced. + */ +/** + * lws_set_timeout() - marks the wsi as subject to a timeout + * + * You will not need this unless you are doing something special + * + * \param wsi: Websocket connection instance + * \param reason: timeout reason + * \param secs: how many seconds. You may set to LWS_TO_KILL_ASYNC to + * force the connection to timeout at the next opportunity, or + * LWS_TO_KILL_SYNC to close it synchronously if you know the + * wsi is not the one currently being serviced. + */ +LWS_VISIBLE LWS_EXTERN void +lws_set_timeout(struct lws *wsi, enum pending_timeout reason, int secs); +///@} + +/*! \defgroup sending-data Sending data + + APIs related to writing data on a connection +*/ +//@{ +#if !defined(LWS_SIZEOFPTR) +#define LWS_SIZEOFPTR (sizeof (void *)) +#endif + +#if defined(__x86_64__) +#define _LWS_PAD_SIZE 16 /* Intel recommended for best performance */ +#else +#define _LWS_PAD_SIZE LWS_SIZEOFPTR /* Size of a pointer on the target arch */ +#endif +#define _LWS_PAD(n) (((n) % _LWS_PAD_SIZE) ? \ + ((n) + (_LWS_PAD_SIZE - ((n) % _LWS_PAD_SIZE))) : (n)) +/* last 2 is for lws-meta */ +#define LWS_PRE _LWS_PAD(4 + 10 + 2) +/* used prior to 1.7 and retained for backward compatibility */ +#define LWS_SEND_BUFFER_PRE_PADDING LWS_PRE +#define LWS_SEND_BUFFER_POST_PADDING 0 + +/* + * NOTE: These public enums are part of the abi. If you want to add one, + * add it at where specified so existing users are unaffected. + */ +enum lws_write_protocol { + LWS_WRITE_TEXT = 0, + /**< Send a ws TEXT message,the pointer must have LWS_PRE valid + * memory behind it. The receiver expects only valid utf-8 in the + * payload */ + LWS_WRITE_BINARY = 1, + /**< Send a ws BINARY message, the pointer must have LWS_PRE valid + * memory behind it. Any sequence of bytes is valid */ + LWS_WRITE_CONTINUATION = 2, + /**< Continue a previous ws message, the pointer must have LWS_PRE valid + * memory behind it */ + LWS_WRITE_HTTP = 3, + /**< Send HTTP content */ + + /* LWS_WRITE_CLOSE is handled by lws_close_reason() */ + LWS_WRITE_PING = 5, + LWS_WRITE_PONG = 6, + + /* Same as write_http but we know this write ends the transaction */ + LWS_WRITE_HTTP_FINAL = 7, + + /* HTTP2 */ + + LWS_WRITE_HTTP_HEADERS = 8, + /**< Send http headers (http2 encodes this payload and LWS_WRITE_HTTP + * payload differently, http 1.x links also handle this correctly. so + * to be compatible with both in the future,header response part should + * be sent using this regardless of http version expected) + */ + LWS_WRITE_HTTP_HEADERS_CONTINUATION = 9, + /**< Continuation of http/2 headers + */ + + /****** add new things just above ---^ ******/ + + /* flags */ + + LWS_WRITE_NO_FIN = 0x40, + /**< This part of the message is not the end of the message */ + + LWS_WRITE_H2_STREAM_END = 0x80, + /**< Flag indicates this packet should go out with STREAM_END if h2 + * STREAM_END is allowed on DATA or HEADERS. + */ + + LWS_WRITE_CLIENT_IGNORE_XOR_MASK = 0x80 + /**< client packet payload goes out on wire unmunged + * only useful for security tests since normal servers cannot + * decode the content if used */ +}; + +/* used with LWS_CALLBACK_CHILD_WRITE_VIA_PARENT */ + +struct lws_write_passthru { + struct lws *wsi; + unsigned char *buf; + size_t len; + enum lws_write_protocol wp; +}; + + +/** + * lws_write() - Apply protocol then write data to client + * \param wsi: Websocket instance (available from user callback) + * \param buf: The data to send. For data being sent on a websocket + * connection (ie, not default http), this buffer MUST have + * LWS_PRE bytes valid BEFORE the pointer. + * This is so the protocol header data can be added in-situ. + * \param len: Count of the data bytes in the payload starting from buf + * \param protocol: Use LWS_WRITE_HTTP to reply to an http connection, and one + * of LWS_WRITE_BINARY or LWS_WRITE_TEXT to send appropriate + * data on a websockets connection. Remember to allow the extra + * bytes before and after buf if LWS_WRITE_BINARY or LWS_WRITE_TEXT + * are used. + * + * This function provides the way to issue data back to the client + * for both http and websocket protocols. + * + * IMPORTANT NOTICE! + * + * When sending with websocket protocol + * + * LWS_WRITE_TEXT, + * LWS_WRITE_BINARY, + * LWS_WRITE_CONTINUATION, + * LWS_WRITE_PING, + * LWS_WRITE_PONG + * + * the send buffer has to have LWS_PRE bytes valid BEFORE + * the buffer pointer you pass to lws_write(). + * + * This allows us to add protocol info before and after the data, and send as + * one packet on the network without payload copying, for maximum efficiency. + * + * So for example you need this kind of code to use lws_write with a + * 128-byte payload + * + * char buf[LWS_PRE + 128]; + * + * // fill your part of the buffer... for example here it's all zeros + * memset(&buf[LWS_PRE], 0, 128); + * + * lws_write(wsi, &buf[LWS_PRE], 128, LWS_WRITE_TEXT); + * + * When sending HTTP, with + * + * LWS_WRITE_HTTP, + * LWS_WRITE_HTTP_HEADERS + * LWS_WRITE_HTTP_FINAL + * + * there is no protocol data prepended, and don't need to take care about the + * LWS_PRE bytes valid before the buffer pointer. + * + * LWS_PRE is at least the frame nonce + 2 header + 8 length + * LWS_SEND_BUFFER_POST_PADDING is deprecated, it's now 0 and can be left off. + * The example apps no longer use it. + * + * Pad LWS_PRE to the CPU word size, so that word references + * to the address immediately after the padding won't cause an unaligned access + * error. Sometimes for performance reasons the recommended padding is even + * larger than sizeof(void *). + * + * In the case of sending using websocket protocol, be sure to allocate + * valid storage before and after buf as explained above. This scheme + * allows maximum efficiency of sending data and protocol in a single + * packet while not burdening the user code with any protocol knowledge. + * + * Return may be -1 for a fatal error needing connection close, or the + * number of bytes sent. + * + * Truncated Writes + * ================ + * + * The OS may not accept everything you asked to write on the connection. + * + * Posix defines POLLOUT indication from poll() to show that the connection + * will accept more write data, but it doesn't specifiy how much. It may just + * accept one byte of whatever you wanted to send. + * + * LWS will buffer the remainder automatically, and send it out autonomously. + * + * During that time, WRITABLE callbacks will be suppressed. + * + * This is to handle corner cases where unexpectedly the OS refuses what we + * usually expect it to accept. You should try to send in chunks that are + * almost always accepted in order to avoid the inefficiency of the buffering. + */ +LWS_VISIBLE LWS_EXTERN int +lws_write(struct lws *wsi, unsigned char *buf, size_t len, + enum lws_write_protocol protocol); + +/* helper for case where buffer may be const */ +#define lws_write_http(wsi, buf, len) \ + lws_write(wsi, (unsigned char *)(buf), len, LWS_WRITE_HTTP) +///@} + +/** \defgroup callback-when-writeable Callback when writeable + * + * ##Callback When Writeable + * + * lws can only write data on a connection when it is able to accept more + * data without blocking. + * + * So a basic requirement is we should only use the lws_write() apis when the + * connection we want to write on says that he can accept more data. + * + * When lws cannot complete your send at the time, it will buffer the data + * and send it in the background, suppressing any further WRITEABLE callbacks + * on that connection until it completes. So it is important to write new + * things in a new writeable callback. + * + * These apis reflect the various ways we can indicate we would like to be + * called back when one or more connections is writeable. + */ +///@{ + +/** + * lws_callback_on_writable() - Request a callback when this socket + * becomes able to be written to without + * blocking + * + * \param wsi: Websocket connection instance to get callback for + * + * - Which: only this wsi + * - When: when the individual connection becomes writeable + * - What: LWS_CALLBACK_*_WRITEABLE + */ +LWS_VISIBLE LWS_EXTERN int +lws_callback_on_writable(struct lws *wsi); + +/** + * lws_callback_on_writable_all_protocol() - Request a callback for all + * connections using the given protocol when it + * becomes possible to write to each socket without + * blocking in turn. + * + * \param context: lws_context + * \param protocol: Protocol whose connections will get callbacks + * + * - Which: connections using this protocol on ANY VHOST + * - When: when the individual connection becomes writeable + * - What: LWS_CALLBACK_*_WRITEABLE + */ +LWS_VISIBLE LWS_EXTERN int +lws_callback_on_writable_all_protocol(const struct lws_context *context, + const struct lws_protocols *protocol); + +/** + * lws_callback_on_writable_all_protocol_vhost() - Request a callback for + * all connections on same vhost using the given protocol + * when it becomes possible to write to each socket without + * blocking in turn. + * + * \param vhost: Only consider connections on this lws_vhost + * \param protocol: Protocol whose connections will get callbacks + * + * - Which: connections using this protocol on GIVEN VHOST ONLY + * - When: when the individual connection becomes writeable + * - What: LWS_CALLBACK_*_WRITEABLE + */ +LWS_VISIBLE LWS_EXTERN int +lws_callback_on_writable_all_protocol_vhost(const struct lws_vhost *vhost, + const struct lws_protocols *protocol); + +/** + * lws_callback_all_protocol() - Callback all connections using + * the given protocol with the given reason + * + * \param context: lws_context + * \param protocol: Protocol whose connections will get callbacks + * \param reason: Callback reason index + * + * - Which: connections using this protocol on ALL VHOSTS + * - When: before returning + * - What: reason + * + * This isn't normally what you want... normally any update of connection- + * specific information can wait until a network-related callback like rx, + * writable, or close. + */ +LWS_VISIBLE LWS_EXTERN int +lws_callback_all_protocol(struct lws_context *context, + const struct lws_protocols *protocol, int reason); + +/** + * lws_callback_all_protocol_vhost() - Callback all connections using + * the given protocol with the given reason. This is + * deprecated since v2.4: use lws_callback_all_protocol_vhost_args + * + * \param vh: Vhost whose connections will get callbacks + * \param protocol: Which protocol to match. NULL means all. + * \param reason: Callback reason index + * + * - Which: connections using this protocol on GIVEN VHOST ONLY + * - When: now + * - What: reason + */ +LWS_VISIBLE LWS_EXTERN int +lws_callback_all_protocol_vhost(struct lws_vhost *vh, + const struct lws_protocols *protocol, int reason) +LWS_WARN_DEPRECATED; + +/** + * lws_callback_all_protocol_vhost_args() - Callback all connections using + * the given protocol with the given reason and args + * + * \param vh: Vhost whose connections will get callbacks + * \param protocol: Which protocol to match. NULL means all. + * \param reason: Callback reason index + * \param argp: Callback "in" parameter + * \param len: Callback "len" parameter + * + * - Which: connections using this protocol on GIVEN VHOST ONLY + * - When: now + * - What: reason + */ +LWS_VISIBLE int +lws_callback_all_protocol_vhost_args(struct lws_vhost *vh, + const struct lws_protocols *protocol, int reason, + void *argp, size_t len); + +/** + * lws_callback_vhost_protocols() - Callback all protocols enabled on a vhost + * with the given reason + * + * \param wsi: wsi whose vhost will get callbacks + * \param reason: Callback reason index + * \param in: in argument to callback + * \param len: len argument to callback + * + * - Which: connections using this protocol on same VHOST as wsi ONLY + * - When: now + * - What: reason + */ +LWS_VISIBLE LWS_EXTERN int +lws_callback_vhost_protocols(struct lws *wsi, int reason, void *in, int len); + +LWS_VISIBLE LWS_EXTERN int +lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason, + void *user, void *in, size_t len); + +/** + * lws_get_socket_fd() - returns the socket file descriptor + * + * You will not need this unless you are doing something special + * + * \param wsi: Websocket connection instance + */ +LWS_VISIBLE LWS_EXTERN int +lws_get_socket_fd(struct lws *wsi); + +/** + * lws_get_peer_write_allowance() - get the amount of data writeable to peer + * if known + * + * \param wsi: Websocket connection instance + * + * if the protocol does not have any guidance, returns -1. Currently only + * http2 connections get send window information from this API. But your code + * should use it so it can work properly with any protocol. + * + * If nonzero return is the amount of payload data the peer or intermediary has + * reported it has buffer space for. That has NO relationship with the amount + * of buffer space your OS can accept on this connection for a write action. + * + * This number represents the maximum you could send to the peer or intermediary + * on this connection right now without the protocol complaining. + * + * lws manages accounting for send window updates and payload writes + * automatically, so this number reflects the situation at the peer or + * intermediary dynamically. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_get_peer_write_allowance(struct lws *wsi); +///@} + +enum { + /* + * Flags for enable and disable rxflow with reason bitmap and with + * backwards-compatible single bool + */ + LWS_RXFLOW_REASON_USER_BOOL = (1 << 0), + LWS_RXFLOW_REASON_HTTP_RXBUFFER = (1 << 6), + LWS_RXFLOW_REASON_H2_PPS_PENDING = (1 << 7), + + LWS_RXFLOW_REASON_APPLIES = (1 << 14), + LWS_RXFLOW_REASON_APPLIES_ENABLE_BIT = (1 << 13), + LWS_RXFLOW_REASON_APPLIES_ENABLE = LWS_RXFLOW_REASON_APPLIES | + LWS_RXFLOW_REASON_APPLIES_ENABLE_BIT, + LWS_RXFLOW_REASON_APPLIES_DISABLE = LWS_RXFLOW_REASON_APPLIES, + LWS_RXFLOW_REASON_FLAG_PROCESS_NOW = (1 << 12), + +}; + +/** + * lws_rx_flow_control() - Enable and disable socket servicing for + * received packets. + * + * If the output side of a server process becomes choked, this allows flow + * control for the input side. + * + * \param wsi: Websocket connection instance to get callback for + * \param enable: 0 = disable read servicing for this connection, 1 = enable + * + * If you need more than one additive reason for rxflow control, you can give + * iLWS_RXFLOW_REASON_APPLIES_ENABLE or _DISABLE together with one or more of + * b5..b0 set to idicate which bits to enable or disable. If any bits are + * enabled, rx on the connection is suppressed. + * + * LWS_RXFLOW_REASON_FLAG_PROCESS_NOW flag may also be given to force any change + * in rxflowbstatus to benapplied immediately, this should be used when you are + * changing a wsi flow control state from outside a callback on that wsi. + */ +LWS_VISIBLE LWS_EXTERN int +lws_rx_flow_control(struct lws *wsi, int enable); + +/** + * lws_rx_flow_allow_all_protocol() - Allow all connections with this protocol to receive + * + * When the user server code realizes it can accept more input, it can + * call this to have the RX flow restriction removed from all connections using + * the given protocol. + * \param context: lws_context + * \param protocol: all connections using this protocol will be allowed to receive + */ +LWS_VISIBLE LWS_EXTERN void +lws_rx_flow_allow_all_protocol(const struct lws_context *context, + const struct lws_protocols *protocol); + +/** + * lws_remaining_packet_payload() - Bytes to come before "overall" + * rx packet is complete + * \param wsi: Websocket instance (available from user callback) + * + * This function is intended to be called from the callback if the + * user code is interested in "complete packets" from the client. + * libwebsockets just passes through payload as it comes and issues a buffer + * additionally when it hits a built-in limit. The LWS_CALLBACK_RECEIVE + * callback handler can use this API to find out if the buffer it has just + * been given is the last piece of a "complete packet" from the client -- + * when that is the case lws_remaining_packet_payload() will return + * 0. + * + * Many protocols won't care becuse their packets are always small. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_remaining_packet_payload(struct lws *wsi); + + +/** \defgroup sock-adopt Socket adoption helpers + * ##Socket adoption helpers + * + * When integrating with an external app with its own event loop, these can + * be used to accept connections from someone else's listening socket. + * + * When using lws own event loop, these are not needed. + */ +///@{ + +/** + * lws_adopt_socket() - adopt foreign socket as if listen socket accepted it + * for the default vhost of context. + * + * \param context: lws context + * \param accept_fd: fd of already-accepted socket to adopt + * + * Either returns new wsi bound to accept_fd, or closes accept_fd and + * returns NULL, having cleaned up any new wsi pieces. + * + * LWS adopts the socket in http serving mode, it's ready to accept an upgrade + * to ws or just serve http. + */ +LWS_VISIBLE LWS_EXTERN struct lws * +lws_adopt_socket(struct lws_context *context, lws_sockfd_type accept_fd); +/** + * lws_adopt_socket_vhost() - adopt foreign socket as if listen socket accepted it + * for vhost + * + * \param vh: lws vhost + * \param accept_fd: fd of already-accepted socket to adopt + * + * Either returns new wsi bound to accept_fd, or closes accept_fd and + * returns NULL, having cleaned up any new wsi pieces. + * + * LWS adopts the socket in http serving mode, it's ready to accept an upgrade + * to ws or just serve http. + */ +LWS_VISIBLE LWS_EXTERN struct lws * +lws_adopt_socket_vhost(struct lws_vhost *vh, lws_sockfd_type accept_fd); + +typedef enum { + LWS_ADOPT_RAW_FILE_DESC = 0, /* convenience constant */ + LWS_ADOPT_HTTP = 1, /* flag: absent implies RAW */ + LWS_ADOPT_SOCKET = 2, /* flag: absent implies file descr */ + LWS_ADOPT_ALLOW_SSL = 4, /* flag: if set requires LWS_ADOPT_SOCKET */ + LWS_ADOPT_WS_PARENTIO = 8, /* flag: ws mode parent handles IO + * if given must be only flag + * wsi put directly into ws mode + */ +} lws_adoption_type; + +typedef union { + lws_sockfd_type sockfd; + lws_filefd_type filefd; +} lws_sock_file_fd_type; + +/* +* lws_adopt_descriptor_vhost() - adopt foreign socket or file descriptor +* if socket descriptor, should already have been accepted from listen socket +* +* \param vhost: lws vhost +* \param type: OR-ed combinations of lws_adoption_type flags +* \param fd: union with either .sockfd or .filefd set +* \param vh_prot_name: NULL or vh protocol name to bind raw connection to +* \param parent: NULL or struct lws to attach new_wsi to as a child +* +* Either returns new wsi bound to accept_fd, or closes accept_fd and +* returns NULL, having cleaned up any new wsi pieces. +* +* If LWS_ADOPT_SOCKET is set, LWS adopts the socket in http serving mode, it's +* ready to accept an upgrade to ws or just serve http. +* +* parent may be NULL, if given it should be an existing wsi that will become the +* parent of the new wsi created by this call. +*/ +LWS_VISIBLE LWS_EXTERN struct lws * +lws_adopt_descriptor_vhost(struct lws_vhost *vh, lws_adoption_type type, + lws_sock_file_fd_type fd, const char *vh_prot_name, + struct lws *parent); + +/** + * lws_adopt_socket_readbuf() - adopt foreign socket and first rx as if listen socket accepted it + * for the default vhost of context. + * \param context: lws context + * \param accept_fd: fd of already-accepted socket to adopt + * \param readbuf: NULL or pointer to data that must be drained before reading from + * accept_fd + * \param len: The length of the data held at \param readbuf + * + * Either returns new wsi bound to accept_fd, or closes accept_fd and + * returns NULL, having cleaned up any new wsi pieces. + * + * LWS adopts the socket in http serving mode, it's ready to accept an upgrade + * to ws or just serve http. + * + * If your external code did not already read from the socket, you can use + * lws_adopt_socket() instead. + * + * This api is guaranteed to use the data at \param readbuf first, before reading from + * the socket. + * + * readbuf is limited to the size of the ah rx buf, currently 2048 bytes. + */ +LWS_VISIBLE LWS_EXTERN struct lws * +lws_adopt_socket_readbuf(struct lws_context *context, lws_sockfd_type accept_fd, + const char *readbuf, size_t len); +/** + * lws_adopt_socket_vhost_readbuf() - adopt foreign socket and first rx as if listen socket + * accepted it for vhost. + * \param vhost: lws vhost + * \param accept_fd: fd of already-accepted socket to adopt + * \param readbuf: NULL or pointer to data that must be drained before reading from + * accept_fd + * \param len: The length of the data held at \param readbuf + * + * Either returns new wsi bound to accept_fd, or closes accept_fd and + * returns NULL, having cleaned up any new wsi pieces. + * + * LWS adopts the socket in http serving mode, it's ready to accept an upgrade + * to ws or just serve http. + * + * If your external code did not already read from the socket, you can use + * lws_adopt_socket() instead. + * + * This api is guaranteed to use the data at \param readbuf first, before reading from + * the socket. + * + * readbuf is limited to the size of the ah rx buf, currently 2048 bytes. + */ +LWS_VISIBLE LWS_EXTERN struct lws * +lws_adopt_socket_vhost_readbuf(struct lws_vhost *vhost, lws_sockfd_type accept_fd, + const char *readbuf, size_t len); +///@} + +/** \defgroup net Network related helper APIs + * ##Network related helper APIs + * + * These wrap miscellaneous useful network-related functions + */ +///@{ + +/** + * lws_canonical_hostname() - returns this host's hostname + * + * This is typically used by client code to fill in the host parameter + * when making a client connection. You can only call it after the context + * has been created. + * + * \param context: Websocket context + */ +LWS_VISIBLE LWS_EXTERN const char * LWS_WARN_UNUSED_RESULT +lws_canonical_hostname(struct lws_context *context); + +/** + * lws_get_peer_addresses() - Get client address information + * \param wsi: Local struct lws associated with + * \param fd: Connection socket descriptor + * \param name: Buffer to take client address name + * \param name_len: Length of client address name buffer + * \param rip: Buffer to take client address IP dotted quad + * \param rip_len: Length of client address IP buffer + * + * This function fills in name and rip with the name and IP of + * the client connected with socket descriptor fd. Names may be + * truncated if there is not enough room. If either cannot be + * determined, they will be returned as valid zero-length strings. + */ +LWS_VISIBLE LWS_EXTERN void +lws_get_peer_addresses(struct lws *wsi, lws_sockfd_type fd, char *name, + int name_len, char *rip, int rip_len); + +/** + * lws_get_peer_simple() - Get client address information without RDNS + * + * \param wsi: Local struct lws associated with + * \param name: Buffer to take client address name + * \param namelen: Length of client address name buffer + * + * This provides a 123.123.123.123 type IP address in name from the + * peer that has connected to wsi + */ +LWS_VISIBLE LWS_EXTERN const char * +lws_get_peer_simple(struct lws *wsi, char *name, int namelen); +#if !defined(LWS_WITH_ESP8266) && !defined(LWS_WITH_ESP32) +/** + * lws_interface_to_sa() - Convert interface name or IP to sockaddr struct + * + * \param ipv6: Allow IPV6 addresses + * \param ifname: Interface name or IP + * \param addr: struct sockaddr_in * to be written + * \param addrlen: Length of addr + * + * This converts a textual network interface name to a sockaddr usable by + * other network functions + */ +LWS_VISIBLE LWS_EXTERN int +lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr, + size_t addrlen); +///@} +#endif + +/** \defgroup misc Miscellaneous APIs +* ##Miscellaneous APIs +* +* Various APIs outside of other categories +*/ +///@{ + +/** + * lws_start_foreach_ll(): linkedlist iterator helper start + * + * \param type: type of iteration, eg, struct xyz * + * \param it: iterator var name to create + * \param start: start of list + * + * This helper creates an iterator and starts a while (it) { + * loop. The iterator runs through the linked list starting at start and + * ends when it gets a NULL. + * The while loop should be terminated using lws_start_foreach_ll(). + */ +#define lws_start_foreach_ll(type, it, start)\ +{ \ + type it = start; \ + while (it) { + +/** + * lws_end_foreach_ll(): linkedlist iterator helper end + * + * \param it: same iterator var name given when starting + * \param nxt: member name in the iterator pointing to next list element + * + * This helper is the partner for lws_start_foreach_ll() that ends the + * while loop. + */ + +#define lws_end_foreach_ll(it, nxt) \ + it = it->nxt; \ + } \ +} + +/** + * lws_start_foreach_llp(): linkedlist pointer iterator helper start + * + * \param type: type of iteration, eg, struct xyz ** + * \param it: iterator var name to create + * \param start: start of list + * + * This helper creates an iterator and starts a while (it) { + * loop. The iterator runs through the linked list starting at the + * address of start and ends when it gets a NULL. + * The while loop should be terminated using lws_start_foreach_llp(). + * + * This helper variant iterates using a pointer to the previous linked-list + * element. That allows you to easily delete list members by rewriting the + * previous pointer to the element's next pointer. + */ +#define lws_start_foreach_llp(type, it, start)\ +{ \ + type it = &(start); \ + while (*(it)) { + +/** + * lws_end_foreach_llp(): linkedlist pointer iterator helper end + * + * \param it: same iterator var name given when starting + * \param nxt: member name in the iterator pointing to next list element + * + * This helper is the partner for lws_start_foreach_llp() that ends the + * while loop. + */ + +#define lws_end_foreach_llp(it, nxt) \ + it = &(*(it))->nxt; \ + } \ +} + +/** + * lws_snprintf(): snprintf that truncates the returned length too + * + * \param str: destination buffer + * \param size: bytes left in destination buffer + * \param format: format string + * \param ...: args for format + * + * This lets you correctly truncate buffers by concatenating lengths, if you + * reach the limit the reported length doesn't exceed the limit. + */ +LWS_VISIBLE LWS_EXTERN int +lws_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3); + +/** + * lws_get_random(): fill a buffer with platform random data + * + * \param context: the lws context + * \param buf: buffer to fill + * \param len: how much to fill + * + * This is intended to be called from the LWS_CALLBACK_RECEIVE callback if + * it's interested to see if the frame it's dealing with was sent in binary + * mode. + */ +LWS_VISIBLE LWS_EXTERN int +lws_get_random(struct lws_context *context, void *buf, int len); +/** + * lws_daemonize(): make current process run in the background + * + * \param _lock_path: the filepath to write the lock file + * + * Spawn lws as a background process, taking care of various things + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_daemonize(const char *_lock_path); +/** + * lws_get_library_version(): return string describing the version of lws + * + * On unix, also includes the git describe + */ +LWS_VISIBLE LWS_EXTERN const char * LWS_WARN_UNUSED_RESULT +lws_get_library_version(void); + +/** + * lws_wsi_user() - get the user data associated with the connection + * \param wsi: lws connection + * + * Not normally needed since it's passed into the callback + */ +LWS_VISIBLE LWS_EXTERN void * +lws_wsi_user(struct lws *wsi); + +/** + * lws_wsi_set_user() - set the user data associated with the client connection + * \param wsi: lws connection + * \param user: user data + * + * By default lws allocates this and it's not legal to externally set it + * yourself. However client connections may have it set externally when the + * connection is created... if so, this api can be used to modify it at + * runtime additionally. + */ +LWS_VISIBLE LWS_EXTERN void +lws_set_wsi_user(struct lws *wsi, void *user); + +/** + * lws_parse_uri: cut up prot:/ads:port/path into pieces + * Notice it does so by dropping '\0' into input string + * and the leading / on the path is consequently lost + * + * \param p: incoming uri string.. will get written to + * \param prot: result pointer for protocol part (https://) + * \param ads: result pointer for address part + * \param port: result pointer for port part + * \param path: result pointer for path part + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_parse_uri(char *p, const char **prot, const char **ads, int *port, + const char **path); + +/** + * lws_now_secs(): return seconds since 1970-1-1 + */ +LWS_VISIBLE LWS_EXTERN unsigned long +lws_now_secs(void); + +/** + * lws_get_context - Allow getting lws_context from a Websocket connection + * instance + * + * With this function, users can access context in the callback function. + * Otherwise users may have to declare context as a global variable. + * + * \param wsi: Websocket connection instance + */ +LWS_VISIBLE LWS_EXTERN struct lws_context * LWS_WARN_UNUSED_RESULT +lws_get_context(const struct lws *wsi); + +/** + * lws_get_count_threads(): how many service threads the context uses + * + * \param context: the lws context + * + * By default this is always 1, if you asked for more than lws can handle it + * will clip the number of threads. So you can use this to find out how many + * threads are actually in use. + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_get_count_threads(struct lws_context *context); + +/** + * lws_get_parent() - get parent wsi or NULL + * \param wsi: lws connection + * + * Specialized wsi like cgi stdin/out/err are associated to a parent wsi, + * this allows you to get their parent. + */ +LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT +lws_get_parent(const struct lws *wsi); + +/** + * lws_get_child() - get child wsi or NULL + * \param wsi: lws connection + * + * Allows you to find a related wsi from the parent wsi. + */ +LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT +lws_get_child(const struct lws *wsi); + +/** + * lws_parent_carries_io() - mark wsi as needing to send messages via parent + * + * \param wsi: child lws connection + */ + +LWS_VISIBLE LWS_EXTERN void +lws_set_parent_carries_io(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void * +lws_get_opaque_parent_data(const struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void +lws_set_opaque_parent_data(struct lws *wsi, void *data); + +LWS_VISIBLE LWS_EXTERN int +lws_get_child_pending_on_writable(const struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN void +lws_clear_child_pending_on_writable(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN int +lws_get_close_length(struct lws *wsi); + +LWS_VISIBLE LWS_EXTERN unsigned char * +lws_get_close_payload(struct lws *wsi); + +/** + * lws_get_network_wsi() - Returns wsi that has the tcp connection for this wsi + * + * \param wsi: wsi you have + * + * Returns wsi that has the tcp connection (which may be the incoming wsi) + * + * HTTP/1 connections will always return the incoming wsi + * HTTP/2 connections may return a different wsi that has the tcp connection + */ +LWS_VISIBLE LWS_EXTERN +struct lws *lws_get_network_wsi(struct lws *wsi); + +/* + * \deprecated DEPRECATED Note: this is not normally needed as a user api. + * It's provided in case it is + * useful when integrating with other app poll loop service code. + */ +LWS_VISIBLE LWS_EXTERN int +lws_read(struct lws *wsi, unsigned char *buf, lws_filepos_t len); + +/** + * lws_set_allocator() - custom allocator support + * + * \param realloc + * + * Allows you to replace the allocator (and deallocator) used by lws + */ +LWS_VISIBLE LWS_EXTERN void +lws_set_allocator(void *(*realloc)(void *ptr, size_t size, const char *reason)); +///@} + +/** \defgroup wsstatus Websocket status APIs + * ##Websocket connection status APIs + * + * These provide information about ws connection or message status + */ +///@{ +/** + * lws_send_pipe_choked() - tests if socket is writable or not + * \param wsi: lws connection + * + * Allows you to check if you can write more on the socket + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_send_pipe_choked(struct lws *wsi); + +/** + * lws_is_final_fragment() - tests if last part of ws message + * + * \param wsi: lws connection + */ +LWS_VISIBLE LWS_EXTERN int +lws_is_final_fragment(struct lws *wsi); + +/** + * lws_is_first_fragment() - tests if first part of ws message + * + * \param wsi: lws connection + */ +LWS_VISIBLE LWS_EXTERN int +lws_is_first_fragment(struct lws *wsi); + +/** + * lws_get_reserved_bits() - access reserved bits of ws frame + * \param wsi: lws connection + */ +LWS_VISIBLE LWS_EXTERN unsigned char +lws_get_reserved_bits(struct lws *wsi); + +/** + * lws_partial_buffered() - find out if lws buffered the last write + * \param wsi: websocket connection to check + * + * Returns 1 if you cannot use lws_write because the last + * write on this connection is still buffered, and can't be cleared without + * returning to the service loop and waiting for the connection to be + * writeable again. + * + * If you will try to do >1 lws_write call inside a single + * WRITEABLE callback, you must check this after every write and bail if + * set, ask for a new writeable callback and continue writing from there. + * + * This is never set at the start of a writeable callback, but any write + * may set it. + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_partial_buffered(struct lws *wsi); + +/** + * lws_frame_is_binary(): true if the current frame was sent in binary mode + * + * \param wsi: the connection we are inquiring about + * + * This is intended to be called from the LWS_CALLBACK_RECEIVE callback if + * it's interested to see if the frame it's dealing with was sent in binary + * mode. + */ +LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT +lws_frame_is_binary(struct lws *wsi); + +/** + * lws_is_ssl() - Find out if connection is using SSL + * \param wsi: websocket connection to check + * + * Returns 0 if the connection is not using SSL, 1 if using SSL and + * using verified cert, and 2 if using SSL but the cert was not + * checked (appears for client wsi told to skip check on connection) + */ +LWS_VISIBLE LWS_EXTERN int +lws_is_ssl(struct lws *wsi); +/** + * lws_is_cgi() - find out if this wsi is running a cgi process + * \param wsi: lws connection + */ +LWS_VISIBLE LWS_EXTERN int +lws_is_cgi(struct lws *wsi); + +#ifdef LWS_OPENSSL_SUPPORT +/** + * lws_get_ssl() - Return wsi's SSL context structure + * \param wsi: websocket connection + * + * Returns pointer to the SSL library's context structure + */ +LWS_VISIBLE LWS_EXTERN SSL* +lws_get_ssl(struct lws *wsi); +#endif +///@} + +/** \defgroup lws_ring LWS Ringbuffer APIs + * ##lws_ring: generic ringbuffer struct + * + * Provides an abstract ringbuffer api supporting one head and one or an + * unlimited number of tails. + * + * All of the members are opaque and manipulated by lws_ring_...() apis. + * + * The lws_ring and its buffer is allocated at runtime on the heap, using + * + * - lws_ring_create() + * - lws_ring_destroy() + * + * It may contain any type, the size of the "element" stored in the ring + * buffer and the number of elements is given at creation time. + * + * When you create the ringbuffer, you can optionally provide an element + * destroy callback that frees any allocations inside the element. This is then + * automatically called for elements with no tail behind them, ie, elements + * which don't have any pending consumer are auto-freed. + * + * Whole elements may be inserted into the ringbuffer and removed from it, using + * + * - lws_ring_insert() + * - lws_ring_consume() + * + * You can find out how many whole elements are free or waiting using + * + * - lws_ring_get_count_free_elements() + * - lws_ring_get_count_waiting_elements() + * + * In addition there are special purpose optional byte-centric apis + * + * - lws_ring_next_linear_insert_range() + * - lws_ring_bump_head() + * + * which let you, eg, read() directly into the ringbuffer without needing + * an intermediate bounce buffer. + * + * The accessors understand that the ring wraps, and optimizes insertion and + * consumption into one or two memcpy()s depending on if the head or tail + * wraps. + * + * lws_ring only supports a single head, but optionally multiple tails with + * an API to inform it when the "oldest" tail has moved on. You can give + * NULL where-ever an api asks for a tail pointer, and it will use an internal + * single tail pointer for convenience. + * + * The "oldest tail", which is the only tail if you give it NULL instead of + * some other tail, is used to track which elements in the ringbuffer are + * still unread by anyone. + * + * - lws_ring_update_oldest_tail() + */ +///@{ +struct lws_ring; + +/** + * lws_ring_create(): create a new ringbuffer + * + * \param element_len: the size in bytes of one element in the ringbuffer + * \param count: the number of elements the ringbuffer can contain + * \param destroy_element: NULL, or callback to be called for each element + * that is removed from the ringbuffer due to the + * oldest tail moving beyond it + * + * Creates the ringbuffer and allocates the storage. Returns the new + * lws_ring *, or NULL if the allocation failed. + * + * If non-NULL, destroy_element will get called back for every element that is + * retired from the ringbuffer after the oldest tail has gone past it, and for + * any element still left in the ringbuffer when it is destroyed. It replaces + * all other element destruction code in your user code. + */ +LWS_VISIBLE LWS_EXTERN struct lws_ring * +lws_ring_create(size_t element_len, size_t count, + void (*destroy_element)(void *element)); + +/** + * lws_ring_destroy(): destroy a previously created ringbuffer + * + * \param ring: the struct lws_ring to destroy + * + * Destroys the ringbuffer allocation and the struct lws_ring itself. + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_destroy(struct lws_ring *ring); + +/** + * lws_ring_get_count_free_elements(): return how many elements can fit + * in the free space + * + * \param ring: the struct lws_ring to report on + * + * Returns how much room is left in the ringbuffer for whole element insertion. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_get_count_free_elements(struct lws_ring *ring); + +/** + * lws_ring_get_count_waiting_elements(): return how many elements can be consumed + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * Returns how many elements are waiting to be consumed from the perspective + * of the tail pointer given. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_get_count_waiting_elements(struct lws_ring *ring, uint32_t *tail); + +/** + * lws_ring_insert(): attempt to insert up to max_count elements from src + * + * \param ring: the struct lws_ring to report on + * \param src: the array of elements to be inserted + * \param max_count: the number of available elements at src + * + * Attempts to insert as many of the elements at src as possible, up to the + * maximum max_count. Returns the number of elements actually inserted. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_insert(struct lws_ring *ring, const void *src, size_t max_count); + +/** + * lws_ring_consume(): attempt to copy out and remove up to max_count elements + * to src + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * \param dest: the array of elements to be inserted. or NULL for no copy + * \param max_count: the number of available elements at src + * + * Attempts to copy out as many waiting elements as possible into dest, from + * the perspective of the given tail, up to max_count. If dest is NULL, the + * copying out is not done but the elements are logically consumed as usual. + * NULL dest is useful in combination with lws_ring_get_element(), where you + * can use the element direct from the ringbuffer and then call this with NULL + * dest to logically consume it. + * + * Increments the tail position according to how many elements could be + * consumed. + * + * Returns the number of elements consumed. + */ +LWS_VISIBLE LWS_EXTERN size_t +lws_ring_consume(struct lws_ring *ring, uint32_t *tail, void *dest, + size_t max_count); + +/** + * lws_ring_get_element(): get a pointer to the next waiting element for tail + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * Points to the next element that tail would consume, directly in the + * ringbuffer. This lets you write() or otherwise use the element without + * having to copy it out somewhere first. + * + * After calling this, you must call lws_ring_consume(ring, &tail, NULL, 1) + * which will logically consume the element you used up and increment your + * tail (tail may also be NULL there if you use a single tail). + * + * Returns NULL if no waiting element, or a const void * pointing to it. + */ +LWS_VISIBLE LWS_EXTERN const void * +lws_ring_get_element(struct lws_ring *ring, uint32_t *tail); + +/** + * lws_ring_update_oldest_tail(): free up elements older than tail for reuse + * + * \param ring: the struct lws_ring to report on + * \param tail: a pointer to the tail struct to use, or NULL for single tail + * + * If you are using multiple tails, you must use this API to inform the + * lws_ring when none of the tails still need elements in the fifo any more, + * by updating it when the "oldest" tail has moved on. + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_update_oldest_tail(struct lws_ring *ring, uint32_t tail); + +/** + * lws_ring_get_oldest_tail(): get current oldest available data index + * + * \param ring: the struct lws_ring to report on + * + * If you are initializing a new ringbuffer consumer, you can set its tail to + * this to start it from the oldest ringbuffer entry still available. + */ +LWS_VISIBLE LWS_EXTERN uint32_t +lws_ring_get_oldest_tail(struct lws_ring *ring); + +/** + * lws_ring_next_linear_insert_range(): used to write directly into the ring + * + * \param ring: the struct lws_ring to report on + * \param start: pointer to a void * set to the start of the next ringbuffer area + * \param bytes: pointer to a size_t set to the max length you may use from *start + * + * This provides a low-level, bytewise access directly into the ringbuffer + * allowing direct insertion of data without having to use a bounce buffer. + * + * The api reports the position and length of the next linear range that can + * be written in the ringbuffer, ie, up to the point it would wrap, and sets + * *start and *bytes accordingly. You can then, eg, directly read() into + * *start for up to *bytes, and use lws_ring_bump_head() to update the lws_ring + * with what you have done. + * + * Returns nonzero if no insertion is currently possible. + */ +LWS_VISIBLE LWS_EXTERN int +lws_ring_next_linear_insert_range(struct lws_ring *ring, void **start, + size_t *bytes); + +/** + * lws_ring_bump_head(): used to write directly into the ring + * + * \param ring: the struct lws_ring to operate on + * \param bytes: the number of bytes you inserted at the current head + */ +LWS_VISIBLE LWS_EXTERN void +lws_ring_bump_head(struct lws_ring *ring, size_t bytes); +///@} + +/** \defgroup sha SHA and B64 helpers + * ##SHA and B64 helpers + * + * These provide SHA-1 and B64 helper apis + */ +///@{ +#ifdef LWS_SHA1_USE_OPENSSL_NAME +#define lws_SHA1 SHA1 +#else +/** + * lws_SHA1(): make a SHA-1 digest of a buffer + * + * \param d: incoming buffer + * \param n: length of incoming buffer + * \param md: buffer for message digest (must be >= 20 bytes) + * + * Reduces any size buffer into a 20-byte SHA-1 hash. + */ +LWS_VISIBLE LWS_EXTERN unsigned char * +lws_SHA1(const unsigned char *d, size_t n, unsigned char *md); +#endif +/** + * lws_b64_encode_string(): encode a string into base 64 + * + * \param in: incoming buffer + * \param in_len: length of incoming buffer + * \param out: result buffer + * \param out_size: length of result buffer + * + * Encodes a string using b64 + */ +LWS_VISIBLE LWS_EXTERN int +lws_b64_encode_string(const char *in, int in_len, char *out, int out_size); +/** + * lws_b64_decode_string(): decode a string from base 64 + * + * \param in: incoming buffer + * \param out: result buffer + * \param out_size: length of result buffer + * + * Decodes a string using b64 + */ +LWS_VISIBLE LWS_EXTERN int +lws_b64_decode_string(const char *in, char *out, int out_size); +///@} + + +/*! \defgroup cgi cgi handling + * + * ##CGI handling + * + * These functions allow low-level control over stdin/out/err of the cgi. + * + * However for most cases, binding the cgi to http in and out, the default + * lws implementation already does the right thing. + */ + +enum lws_enum_stdinouterr { + LWS_STDIN = 0, + LWS_STDOUT = 1, + LWS_STDERR = 2, +}; + +enum lws_cgi_hdr_state { + LCHS_HEADER, + LCHS_CR1, + LCHS_LF1, + LCHS_CR2, + LCHS_LF2, + LHCS_RESPONSE, + LHCS_DUMP_HEADERS, + LHCS_PAYLOAD, + LCHS_SINGLE_0A, +}; + +struct lws_cgi_args { + struct lws **stdwsi; /**< get fd with lws_get_socket_fd() */ + enum lws_enum_stdinouterr ch; /**< channel index */ + unsigned char *data; /**< for messages with payload */ + enum lws_cgi_hdr_state hdr_state; /**< track where we are in cgi headers */ + int len; /**< length */ +}; + +#ifdef LWS_WITH_CGI +/** + * lws_cgi: spawn network-connected cgi process + * + * \param wsi: connection to own the process + * \param exec_array: array of "exec-name" "arg1" ... "argn" NULL + * \param script_uri_path_len: how many chars on the left of the uri are the + * path to the cgi, or -1 to spawn without URL-related env vars + * \param timeout_secs: seconds script should be allowed to run + * \param mp_cgienv: pvo list with per-vhost cgi options to put in env + */ +LWS_VISIBLE LWS_EXTERN int +lws_cgi(struct lws *wsi, const char * const *exec_array, + int script_uri_path_len, int timeout_secs, + const struct lws_protocol_vhost_options *mp_cgienv); + +/** + * lws_cgi_write_split_stdout_headers: write cgi output accounting for header part + * + * \param wsi: connection to own the process + */ +LWS_VISIBLE LWS_EXTERN int +lws_cgi_write_split_stdout_headers(struct lws *wsi); + +/** + * lws_cgi_kill: terminate cgi process associated with wsi + * + * \param wsi: connection to own the process + */ +LWS_VISIBLE LWS_EXTERN int +lws_cgi_kill(struct lws *wsi); + +/** + * lws_cgi_get_stdwsi: get wsi for stdin, stdout, or stderr + * + * \param wsi: parent wsi that has cgi + * \param ch: which of LWS_STDIN, LWS_STDOUT or LWS_STDERR + */ +LWS_VISIBLE LWS_EXTERN struct lws * +lws_cgi_get_stdwsi(struct lws *wsi, enum lws_enum_stdinouterr ch); + +#endif +///@} + + +/*! \defgroup fops file operation wrapping + * + * ##File operation wrapping + * + * Use these helper functions if you want to access a file from the perspective + * of a specific wsi, which is usually the case. If you just want contextless + * file access, use the fops callbacks directly with NULL wsi instead of these + * helpers. + * + * If so, then it calls the platform handler or user overrides where present + * (as defined in info->fops) + * + * The advantage from all this is user code can be portable for file operations + * without having to deal with differences between platforms. + */ +//@{ + +/** struct lws_plat_file_ops - Platform-specific file operations + * + * These provide platform-agnostic ways to deal with filesystem access in the + * library and in the user code. + */ + +#if defined(LWS_WITH_ESP32) +/* sdk preprocessor defs? compiler issue? gets confused with member names */ +#define LWS_FOP_OPEN _open +#define LWS_FOP_CLOSE _close +#define LWS_FOP_SEEK_CUR _seek_cur +#define LWS_FOP_READ _read +#define LWS_FOP_WRITE _write +#else +#define LWS_FOP_OPEN open +#define LWS_FOP_CLOSE close +#define LWS_FOP_SEEK_CUR seek_cur +#define LWS_FOP_READ read +#define LWS_FOP_WRITE write +#endif + +#define LWS_FOP_FLAGS_MASK ((1 << 23) - 1) +#define LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP (1 << 24) +#define LWS_FOP_FLAG_COMPR_IS_GZIP (1 << 25) +#define LWS_FOP_FLAG_MOD_TIME_VALID (1 << 26) +#define LWS_FOP_FLAG_VIRTUAL (1 << 27) + +struct lws_plat_file_ops; + +struct lws_fop_fd { + lws_filefd_type fd; + /**< real file descriptor related to the file... */ + const struct lws_plat_file_ops *fops; + /**< fops that apply to this fop_fd */ + void *filesystem_priv; + /**< ignored by lws; owned by the fops handlers */ + lws_filepos_t pos; + /**< generic "position in file" */ + lws_filepos_t len; + /**< generic "length of file" */ + lws_fop_flags_t flags; + /**< copy of the returned flags */ + uint32_t mod_time; + /**< optional "modification time of file", only valid if .open() + * set the LWS_FOP_FLAG_MOD_TIME_VALID flag */ +}; +typedef struct lws_fop_fd *lws_fop_fd_t; + +struct lws_fops_index { + const char *sig; /* NULL or vfs signature, eg, ".zip/" */ + uint8_t len; /* length of above string */ +}; + +struct lws_plat_file_ops { + lws_fop_fd_t (*LWS_FOP_OPEN)(const struct lws_plat_file_ops *fops, + const char *filename, const char *vpath, + lws_fop_flags_t *flags); + /**< Open file (always binary access if plat supports it) + * vpath may be NULL, or if the fops understands it, the point at which + * the filename's virtual part starts. + * *flags & LWS_FOP_FLAGS_MASK should be set to O_RDONLY or O_RDWR. + * If the file may be gzip-compressed, + * LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP is set. If it actually is + * gzip-compressed, then the open handler should OR + * LWS_FOP_FLAG_COMPR_IS_GZIP on to *flags before returning. + */ + int (*LWS_FOP_CLOSE)(lws_fop_fd_t *fop_fd); + /**< close file AND set the pointer to NULL */ + lws_fileofs_t (*LWS_FOP_SEEK_CUR)(lws_fop_fd_t fop_fd, + lws_fileofs_t offset_from_cur_pos); + /**< seek from current position */ + int (*LWS_FOP_READ)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); + /**< Read from file, on exit *amount is set to amount actually read */ + int (*LWS_FOP_WRITE)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); + /**< Write to file, on exit *amount is set to amount actually written */ + + struct lws_fops_index fi[3]; + /**< vfs path signatures implying use of this fops */ + + const struct lws_plat_file_ops *next; + /**< NULL or next fops in list */ + + /* Add new things just above here ---^ + * This is part of the ABI, don't needlessly break compatibility */ +}; + +/** + * lws_get_fops() - get current file ops + * + * \param context: context + */ +LWS_VISIBLE LWS_EXTERN struct lws_plat_file_ops * LWS_WARN_UNUSED_RESULT +lws_get_fops(struct lws_context *context); +LWS_VISIBLE LWS_EXTERN void +lws_set_fops(struct lws_context *context, const struct lws_plat_file_ops *fops); +/** + * lws_vfs_tell() - get current file position + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT +lws_vfs_tell(lws_fop_fd_t fop_fd); +/** + * lws_vfs_get_length() - get current file total length in bytes + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT +lws_vfs_get_length(lws_fop_fd_t fop_fd); +/** + * lws_vfs_get_mod_time() - get time file last modified + * + * \param fop_fd: fop_fd we are asking about + */ +LWS_VISIBLE LWS_EXTERN uint32_t LWS_WARN_UNUSED_RESULT +lws_vfs_get_mod_time(lws_fop_fd_t fop_fd); +/** + * lws_vfs_file_seek_set() - seek relative to start of file + * + * \param fop_fd: fop_fd we are seeking in + * \param offset: offset from start of file + */ +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +lws_vfs_file_seek_set(lws_fop_fd_t fop_fd, lws_fileofs_t offset); +/** + * lws_vfs_file_seek_end() - seek relative to end of file + * + * \param fop_fd: fop_fd we are seeking in + * \param offset: offset from start of file + */ +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +lws_vfs_file_seek_end(lws_fop_fd_t fop_fd, lws_fileofs_t offset); + +extern struct lws_plat_file_ops fops_zip; + +/** + * lws_plat_file_open() - open vfs filepath + * + * \param fops: file ops struct that applies to this descriptor + * \param vfs_path: filename to open + * \param flags: pointer to open flags + * + * The vfs_path is scanned for known fops signatures, and the open directed + * to any matching fops open. + * + * User code should use this api to perform vfs opens. + * + * returns semi-opaque handle + */ +LWS_VISIBLE LWS_EXTERN lws_fop_fd_t LWS_WARN_UNUSED_RESULT +lws_vfs_file_open(const struct lws_plat_file_ops *fops, const char *vfs_path, + lws_fop_flags_t *flags); + +/** + * lws_plat_file_close() - close file + * + * \param fop_fd: file handle to close + */ +static LWS_INLINE int +lws_vfs_file_close(lws_fop_fd_t *fop_fd) +{ + return (*fop_fd)->fops->LWS_FOP_CLOSE(fop_fd); +} + +/** + * lws_plat_file_seek_cur() - close file + * + * + * \param fop_fd: file handle + * \param offset: position to seek to + */ +static LWS_INLINE lws_fileofs_t +lws_vfs_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset) +{ + return fop_fd->fops->LWS_FOP_SEEK_CUR(fop_fd, offset); +} +/** + * lws_plat_file_read() - read from file + * + * \param fop_fd: file handle + * \param amount: how much to read (rewritten by call) + * \param buf: buffer to write to + * \param len: max length + */ +static LWS_INLINE int LWS_WARN_UNUSED_RESULT +lws_vfs_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len) +{ + return fop_fd->fops->LWS_FOP_READ(fop_fd, amount, buf, len); +} +/** + * lws_plat_file_write() - write from file + * + * \param fop_fd: file handle + * \param amount: how much to write (rewritten by call) + * \param buf: buffer to read from + * \param len: max length + */ +static LWS_INLINE int LWS_WARN_UNUSED_RESULT +lws_vfs_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len) +{ + return fop_fd->fops->LWS_FOP_WRITE(fop_fd, amount, buf, len); +} + +/* these are the platform file operations implementations... they can + * be called directly and used in fops arrays + */ + +LWS_VISIBLE LWS_EXTERN lws_fop_fd_t +_lws_plat_file_open(const struct lws_plat_file_ops *fops, const char *filename, + const char *vpath, lws_fop_flags_t *flags); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_close(lws_fop_fd_t *fop_fd); +LWS_VISIBLE LWS_EXTERN lws_fileofs_t +_lws_plat_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); +LWS_VISIBLE LWS_EXTERN int +_lws_plat_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, + uint8_t *buf, lws_filepos_t len); + +LWS_VISIBLE LWS_EXTERN int +lws_alloc_vfs_file(struct lws_context *context, const char *filename, + uint8_t **buf, lws_filepos_t *amount); +//@} + +/** \defgroup smtp SMTP related functions + * ##SMTP related functions + * \ingroup lwsapi + * + * These apis let you communicate with a local SMTP server to send email from + * lws. It handles all the SMTP sequencing and protocol actions. + * + * Your system should have postfix, sendmail or another MTA listening on port + * 25 and able to send email using the "mail" commandline app. Usually distro + * MTAs are configured for this by default. + * + * It runs via its own libuv events if initialized (which requires giving it + * a libuv loop to attach to). + * + * It operates using three callbacks, on_next() queries if there is a new email + * to send, on_get_body() asks for the body of the email, and on_sent() is + * called after the email is successfully sent. + * + * To use it + * + * - create an lws_email struct + * + * - initialize data, loop, the email_* strings, max_content_size and + * the callbacks + * + * - call lws_email_init() + * + * When you have at least one email to send, call lws_email_check() to + * schedule starting to send it. + */ +//@{ +#ifdef LWS_WITH_SMTP + +/** enum lwsgs_smtp_states - where we are in SMTP protocol sequence */ +enum lwsgs_smtp_states { + LGSSMTP_IDLE, /**< awaiting new email */ + LGSSMTP_CONNECTING, /**< opening tcp connection to MTA */ + LGSSMTP_CONNECTED, /**< tcp connection to MTA is connected */ + LGSSMTP_SENT_HELO, /**< sent the HELO */ + LGSSMTP_SENT_FROM, /**< sent FROM */ + LGSSMTP_SENT_TO, /**< sent TO */ + LGSSMTP_SENT_DATA, /**< sent DATA request */ + LGSSMTP_SENT_BODY, /**< sent the email body */ + LGSSMTP_SENT_QUIT, /**< sent the session quit */ +}; + +/** struct lws_email - abstract context for performing SMTP operations */ +struct lws_email { + void *data; + /**< opaque pointer set by user code and available to the callbacks */ + uv_loop_t *loop; + /**< the libuv loop we will work on */ + + char email_smtp_ip[32]; /**< Fill before init, eg, "127.0.0.1" */ + char email_helo[32]; /**< Fill before init, eg, "myserver.com" */ + char email_from[100]; /**< Fill before init or on_next */ + char email_to[100]; /**< Fill before init or on_next */ + + unsigned int max_content_size; + /**< largest possible email body size */ + + /* Fill all the callbacks before init */ + + int (*on_next)(struct lws_email *email); + /**< (Fill in before calling lws_email_init) + * called when idle, 0 = another email to send, nonzero is idle. + * If you return 0, all of the email_* char arrays must be set + * to something useful. */ + int (*on_sent)(struct lws_email *email); + /**< (Fill in before calling lws_email_init) + * called when transfer of the email to the SMTP server was + * successful, your callback would remove the current email + * from its queue */ + int (*on_get_body)(struct lws_email *email, char *buf, int len); + /**< (Fill in before calling lws_email_init) + * called when the body part of the queued email is about to be + * sent to the SMTP server. */ + + + /* private things */ + uv_timer_t timeout_email; /**< private */ + enum lwsgs_smtp_states estate; /**< private */ + uv_connect_t email_connect_req; /**< private */ + uv_tcp_t email_client; /**< private */ + time_t email_connect_started; /**< private */ + char email_buf[256]; /**< private */ + char *content; /**< private */ +}; + +/** + * lws_email_init() - Initialize a struct lws_email + * + * \param email: struct lws_email to init + * \param loop: libuv loop to use + * \param max_content: max email content size + * + * Prepares a struct lws_email for use ending SMTP + */ +LWS_VISIBLE LWS_EXTERN int +lws_email_init(struct lws_email *email, uv_loop_t *loop, int max_content); + +/** + * lws_email_check() - Request check for new email + * + * \param email: struct lws_email context to check + * + * Schedules a check for new emails in 1s... call this when you have queued an + * email for send. + */ +LWS_VISIBLE LWS_EXTERN void +lws_email_check(struct lws_email *email); +/** + * lws_email_destroy() - stop using the struct lws_email + * + * \param email: the struct lws_email context + * + * Stop sending email using email and free allocations + */ +LWS_VISIBLE LWS_EXTERN void +lws_email_destroy(struct lws_email *email); + +#endif +//@} + +/* + * Stats are all uint64_t numbers that start at 0. + * Index names here have the convention + * + * _C_ counter + * _B_ byte count + * _MS_ millisecond count + */ + +enum { + LWSSTATS_C_CONNECTIONS, /**< count incoming connections */ + LWSSTATS_C_API_CLOSE, /**< count calls to close api */ + LWSSTATS_C_API_READ, /**< count calls to read from socket api */ + LWSSTATS_C_API_LWS_WRITE, /**< count calls to lws_write API */ + LWSSTATS_C_API_WRITE, /**< count calls to write API */ + LWSSTATS_C_WRITE_PARTIALS, /**< count of partial writes */ + LWSSTATS_C_WRITEABLE_CB_REQ, /**< count of writable callback requests */ + LWSSTATS_C_WRITEABLE_CB_EFF_REQ, /**< count of effective writable callback requests */ + LWSSTATS_C_WRITEABLE_CB, /**< count of writable callbacks */ + LWSSTATS_C_SSL_CONNECTIONS_FAILED, /**< count of failed SSL connections */ + LWSSTATS_C_SSL_CONNECTIONS_ACCEPTED, /**< count of accepted SSL connections */ + LWSSTATS_C_SSL_CONNECTIONS_ACCEPT_SPIN, /**< count of SSL_accept() attempts */ + LWSSTATS_C_SSL_CONNS_HAD_RX, /**< count of accepted SSL conns that have had some RX */ + LWSSTATS_C_TIMEOUTS, /**< count of timed-out connections */ + LWSSTATS_C_SERVICE_ENTRY, /**< count of entries to lws service loop */ + LWSSTATS_B_READ, /**< aggregate bytes read */ + LWSSTATS_B_WRITE, /**< aggregate bytes written */ + LWSSTATS_B_PARTIALS_ACCEPTED_PARTS, /**< aggreate of size of accepted write data from new partials */ + LWSSTATS_MS_SSL_CONNECTIONS_ACCEPTED_DELAY, /**< aggregate delay in accepting connection */ + LWSSTATS_MS_WRITABLE_DELAY, /**< aggregate delay between asking for writable and getting cb */ + LWSSTATS_MS_WORST_WRITABLE_DELAY, /**< single worst delay between asking for writable and getting cb */ + LWSSTATS_MS_SSL_RX_DELAY, /**< aggregate delay between ssl accept complete and first RX */ + LWSSTATS_C_PEER_LIMIT_AH_DENIED, /**< number of times we would have given an ah but for the peer limit */ + LWSSTATS_C_PEER_LIMIT_WSI_DENIED, /**< number of times we would have given a wsi but for the peer limit */ + + /* Add new things just above here ---^ + * This is part of the ABI, don't needlessly break compatibility */ + LWSSTATS_SIZE +}; + +#if defined(LWS_WITH_STATS) + +LWS_VISIBLE LWS_EXTERN uint64_t +lws_stats_get(struct lws_context *context, int index); +LWS_VISIBLE LWS_EXTERN void +lws_stats_log_dump(struct lws_context *context); +#else +static LWS_INLINE uint64_t +lws_stats_get(struct lws_context *context, int index) { return 0; } +static LWS_INLINE void +lws_stats_log_dump(struct lws_context *context) { } +#endif #ifdef __cplusplus } diff --git a/win64/include/websockets/libwebsockets/abstract/abstract.h b/win64/include/websockets/libwebsockets/abstract/abstract.h deleted file mode 100644 index c312a1f5..00000000 --- a/win64/include/websockets/libwebsockets/abstract/abstract.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/* - * These are used to optionally pass an array of index = C string, binary array, - * or ulong tokens to the abstract transport or protocol. For example if it's - * raw socket transport, then the DNS address to connect to and the port are - * passed using these when the client created and bound to the transport. - */ - -typedef struct lws_token_map { - union { - const char *value; - uint8_t *bvalue; - unsigned long lvalue; - } u; - short name_index; /* 0 here indicates end of array */ - short length_or_zero; -} lws_token_map_t; - -/* - * The indvidual protocols and transports define their own name_index-es which - * are meaningful to them. Define index 0 globally as the end of an array of - * them, and provide bases so user protocol and transport ones don't overlap. - */ - -enum { - LTMI_END_OF_ARRAY, - - LTMI_PROTOCOL_BASE = 2048, - - LTMI_TRANSPORT_BASE = 4096 -}; - -struct lws_abs_transport; -struct lws_abs_protocol; -typedef struct lws_abs lws_abs_t; - -LWS_VISIBLE LWS_EXTERN const lws_token_map_t * -lws_abs_get_token(const lws_token_map_t *token_map, short name_index); - -/* - * the combination of a protocol, transport, and token maps for each - */ - -typedef void lws_abs_transport_inst_t; -typedef void lws_abs_protocol_inst_t; - -/** - * lws_abstract_alloc() - allocate and configure an lws_abs_t - * - * \param vhost: the struct lws_vhost to bind to - * \param user: opaque user pointer - * \param abstract_path: "protocol.transport" names - * \param ap_tokens: tokens for protocol options - * \param at_tokens: tokens for transport - * \param seq: optional sequencer we should bind to, or NULL - * \param opaque_user_data: data given in sequencer callback, if any - * - * Returns an allocated lws_abs_t pointer set up with the other arguments. - * - * Doesn't create a connection instance, just allocates the lws_abs_t and - * sets it up with the arguments. - * - * Returns NULL is there's any problem. - */ -LWS_VISIBLE LWS_EXTERN lws_abs_t * -lws_abstract_alloc(struct lws_vhost *vhost, void *user, - const char *abstract_path, const lws_token_map_t *ap_tokens, - const lws_token_map_t *at_tokens, struct lws_sequencer *seq, - void *opaque_user_data); - -/** - * lws_abstract_free() - free an allocated lws_abs_t - * - * \param pabs: pointer to the lws_abs_t * to free - * - * Frees and sets the pointer to NULL. - */ - -LWS_VISIBLE LWS_EXTERN void -lws_abstract_free(lws_abs_t **pabs); - -/** - * lws_abs_bind_and_create_instance - use an abstract protocol and transport - * - * \param abs: the lws_abs_t describing the combination desired - * - * This instantiates an abstract protocol and abstract transport bound together. - * A single heap allocation is made for the combination and the protocol and - * transport creation ops are called on it. The ap_tokens and at_tokens - * are consulted by the creation ops to decide the details of the protocol and - * transport for the instance. - */ -LWS_VISIBLE LWS_EXTERN lws_abs_t * -lws_abs_bind_and_create_instance(const lws_abs_t *ai); - -/** - * lws_abs_destroy_instance() - destroys an instance - * - * \param ai: pointer to the ai pointer to destroy - * - * This is for destroying an instance created by - * lws_abs_bind_and_create_instance() above. - * - * Calls the protocol and transport destroy operations on the instance, then - * frees the combined allocation in one step. The pointer ai is set to NULL. - */ -LWS_VISIBLE LWS_EXTERN void -lws_abs_destroy_instance(lws_abs_t **ai); - -/* - * bring in all the protocols and transports definitions - */ - -#include <libwebsockets/abstract/protocols.h> -#include <libwebsockets/abstract/transports.h> diff --git a/win64/include/websockets/libwebsockets/abstract/protocols.h b/win64/include/websockets/libwebsockets/abstract/protocols.h deleted file mode 100644 index 77900203..00000000 --- a/win64/include/websockets/libwebsockets/abstract/protocols.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/* - * Information about how this protocol handles multiple use of connections. - * - * .flags of 0 indicates each connection must start with a fresh transport. - * - * Flags can be used to indicate the protocol itself supports different - * kinds of multiple use. However the actual use or not of these may depend on - * negotiation with the remote peer. - * - * LWS_AP_FLAG_PIPELINE_TRANSACTIONS: other instances can be queued on one - * with an existing connection and get a - * chance to "hot take over" the existing - * transport in turn, like h1 keepalive - * pipelining - * - * LWS_AP_FLAG_MUXABLE_STREAM: an existing connection can absorb more child - * connections and mux them as separate child - * streams ongoing, like h2 - */ - -enum { - LWS_AP_FLAG_PIPELINE_TRANSACTIONS = (1 << 0), - LWS_AP_FLAG_MUXABLE_STREAM = (1 << 1), -}; - -typedef struct lws_abs_protocol { - const char *name; - int alloc; - int flags; - - int (*create)(const struct lws_abs *ai); - void (*destroy)(lws_abs_protocol_inst_t **d); - int (*compare)(lws_abs_t *abs1, lws_abs_t *abs2); - - /* events the transport invokes (handled by abstract protocol) */ - - int (*accept)(lws_abs_protocol_inst_t *d); - int (*rx)(lws_abs_protocol_inst_t *d, const uint8_t *b, size_t l); - int (*writeable)(lws_abs_protocol_inst_t *d, size_t budget); - int (*closed)(lws_abs_protocol_inst_t *d); - int (*heartbeat)(lws_abs_protocol_inst_t *d); - - /* as parent, we get a notification a new child / queue entry - * bound to us... this is the parent lws_abs_t as arg */ - int (*child_bind)(lws_abs_t *abs); -} lws_abs_protocol_t; - -/** - * lws_abs_protocol_get_by_name() - returns a pointer to the named protocol ops - * - * \param name: the name of the abstract protocol - * - * Returns a pointer to the named protocol ops struct if available, otherwise - * NULL. - */ -LWS_VISIBLE LWS_EXTERN const lws_abs_protocol_t * -lws_abs_protocol_get_by_name(const char *name); - -/* - * bring in public api pieces from protocols - */ - -#include <libwebsockets/abstract/protocols/smtp.h> - diff --git a/win64/include/websockets/libwebsockets/abstract/protocols/smtp.h b/win64/include/websockets/libwebsockets/abstract/protocols/smtp.h deleted file mode 100644 index 90b69c6e..00000000 --- a/win64/include/websockets/libwebsockets/abstract/protocols/smtp.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** \defgroup smtp SMTP related functions - * ##SMTP related functions - * \ingroup lwsapi - * - * These apis let you communicate with a local SMTP server to send email from - * lws. It handles all the SMTP sequencing and protocol actions. - * - * Your system should have postfix, sendmail or another MTA listening on port - * 25 and able to send email using the "mail" commandline app. Usually distro - * MTAs are configured for this by default. - * - * You can either use the abstract protocol layer directly, or instead use the - * provided smtp sequencer... this takes care of creating the protocol - * connections, and provides and email queue and retry management. - */ -//@{ - -#if defined(LWS_WITH_SMTP) - -enum { - LTMI_PSMTP_V_HELO = LTMI_PROTOCOL_BASE, /* u.value */ - - LTMI_PSMTP_V_LWS_SMTP_EMAIL_T, /* u.value */ -}; - -enum { - LWS_SMTP_DISPOSITION_SENT, - LWS_SMTP_DISPOSITION_FAILED, - LWS_SMTP_DISPOSITION_FAILED_DESTROY -}; - -typedef struct lws_smtp_sequencer_args { - const char helo[32]; - struct lws_vhost *vhost; - time_t retry_interval; - time_t delivery_timeout; - size_t email_queue_max; - size_t max_content_size; -} lws_smtp_sequencer_args_t; - -typedef struct lws_smtp_sequencer lws_smtp_sequencer_t; -typedef struct lws_smtp_email lws_smtp_email_t; - -LWS_VISIBLE LWS_EXTERN lws_smtp_sequencer_t * -lws_smtp_sequencer_create(const lws_smtp_sequencer_args_t *args); - -LWS_VISIBLE LWS_EXTERN void -lws_smtp_sequencer_destroy(lws_smtp_sequencer_t *s); - -typedef int (*lws_smtp_cb_t)(void *e, void *d, int disp, const void *b, size_t l); -typedef struct lws_smtp_email lws_smtp_email_t; - -/** - * lws_smtpc_add_email() - Allocates and queues an email object - * - * \param s: smtp sequencer to queue on - * \param payload: the email payload string, with headers and terminating . - * \param payload_len: size in bytes of the payload string - * \param sender: the sender name and email - * \param recipient: the recipient name and email - * \param data: opaque user data returned in the done callback - * \param done: callback called when the email send succeeded or failed - * - * Allocates an email object and copies the payload, sender and recipient into - * it and initializes it. Returns NULL if OOM, otherwise the allocated email - * object. - * - * Because it copies the arguments into an allocated buffer, the original - * arguments can be safely destroyed after calling this. - * - * The done() callback must free the email object. It doesn't have to free any - * individual members. - */ -LWS_VISIBLE LWS_EXTERN int -lws_smtpc_add_email(lws_smtp_sequencer_t *s, const char *payload, - size_t payload_len, const char *sender, - const char *recipient, void *data, lws_smtp_cb_t done); - -/** - * lws_smtpc_free_email() - Add email to the list of ones being sent - * - * \param e: email to queue for sending on \p c - * - * Adds an email to the linked-list of emails to send - */ -LWS_VISIBLE LWS_EXTERN int -lws_smtpc_free_email(lws_smtp_email_t *e); - - -#endif -//@} diff --git a/win64/include/websockets/libwebsockets/abstract/transports.h b/win64/include/websockets/libwebsockets/abstract/transports.h deleted file mode 100644 index e9d7aa56..00000000 --- a/win64/include/websockets/libwebsockets/abstract/transports.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/* - * Abstract transport ops - */ - -typedef struct lws_abs_transport { - const char *name; - int alloc; - - int (*create)(lws_abs_t *abs); - void (*destroy)(lws_abs_transport_inst_t **d); - - /* check if the transport settings for these connections are the same */ - int (*compare)(lws_abs_t *abs1, lws_abs_t *abs2); - - /* events the abstract protocol invokes (handled by transport) */ - - int (*tx)(lws_abs_transport_inst_t *d, uint8_t *buf, size_t len); - int (*client_conn)(const lws_abs_t *abs); - int (*close)(lws_abs_transport_inst_t *d); - int (*ask_for_writeable)(lws_abs_transport_inst_t *d); - int (*set_timeout)(lws_abs_transport_inst_t *d, int reason, int secs); - int (*state)(lws_abs_transport_inst_t *d); -} lws_abs_transport_t; - -/** - * lws_abs_protocol_get_by_name() - returns a pointer to the named protocol ops - * - * \param name: the name of the abstract protocol - * - * Returns a pointer to the named protocol ops struct if available, otherwise - * NULL. - */ -LWS_VISIBLE LWS_EXTERN const lws_abs_transport_t * -lws_abs_transport_get_by_name(const char *name); - -/* - * bring in public api pieces from transports - */ - -#include <libwebsockets/abstract/transports/raw-skt.h> -#include <libwebsockets/abstract/transports/unit-test.h> diff --git a/win64/include/websockets/libwebsockets/abstract/transports/raw-skt.h b/win64/include/websockets/libwebsockets/abstract/transports/raw-skt.h deleted file mode 100644 index beff9a3f..00000000 --- a/win64/include/websockets/libwebsockets/abstract/transports/raw-skt.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -enum { - LTMI_PEER_V_DNS_ADDRESS = LTMI_TRANSPORT_BASE, /* u.value */ - LTMI_PEER_LV_PORT, /* u.lvalue */ - LTMI_PEER_LV_TLS_FLAGS, /* u.lvalue */ -}; diff --git a/win64/include/websockets/libwebsockets/abstract/transports/unit-test.h b/win64/include/websockets/libwebsockets/abstract/transports/unit-test.h deleted file mode 100644 index 2213f29a..00000000 --- a/win64/include/websockets/libwebsockets/abstract/transports/unit-test.h +++ /dev/null @@ -1,81 +0,0 @@ - /* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * This is an abstract transport useful for unit testing abstract protocols. - * - * Instead of passing data anywhere, you give the transport a list of packets - * to deliver and packets you expect back from the abstract protocol it's - * bound to. - */ - -enum { - LWS_AUT_EXPECT_TEST_END = (1 << 0), - LWS_AUT_EXPECT_LOCAL_CLOSE = (1 << 1), - LWS_AUT_EXPECT_DO_REMOTE_CLOSE = (1 << 2), - LWS_AUT_EXPECT_TX /* expect this as tx from protocol */ = (1 << 3), - LWS_AUT_EXPECT_RX /* present this as rx to protocol */ = (1 << 4), - LWS_AUT_EXPECT_SHOULD_FAIL = (1 << 5), - LWS_AUT_EXPECT_SHOULD_TIMEOUT = (1 << 6), -}; - -typedef enum { - LPE_CONTINUE, - LPE_SUCCEEDED, - LPE_FAILED, - LPE_FAILED_UNEXPECTED_TIMEOUT, - LPE_FAILED_UNEXPECTED_PASS, - LPE_FAILED_UNEXPECTED_CLOSE, - LPE_SKIPPED, - LPE_CLOSING -} lws_unit_test_packet_disposition; - -typedef int (*lws_unit_test_packet_test_cb)(const void *cb_user, int disposition); -typedef int (*lws_unit_test_packet_cb)(lws_abs_t *instance); - -/* each step in the unit test */ - -typedef struct lws_unit_test_packet { - void *buffer; - lws_unit_test_packet_cb pre; - size_t len; - - uint32_t flags; -} lws_unit_test_packet_t; - -/* each unit test */ - -typedef struct lws_unit_test { - const char * name; /* NULL indicates end of test array */ - lws_unit_test_packet_t * expect_array; - int max_secs; -} lws_unit_test_t; - -enum { - LTMI_PEER_V_EXPECT_TEST = LTMI_TRANSPORT_BASE, /* u.value */ - LTMI_PEER_V_EXPECT_RESULT_CB, /* u.value */ - LTMI_PEER_V_EXPECT_RESULT_CB_ARG, /* u.value */ -}; - -LWS_VISIBLE LWS_EXTERN const char * -lws_unit_test_result_name(int in); - diff --git a/win64/include/websockets/libwebsockets/lws-adopt.h b/win64/include/websockets/libwebsockets/lws-adopt.h deleted file mode 100644 index 1a4842e7..00000000 --- a/win64/include/websockets/libwebsockets/lws-adopt.h +++ /dev/null @@ -1,233 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** \defgroup sock-adopt Socket adoption helpers - * ##Socket adoption helpers - * - * When integrating with an external app with its own event loop, these can - * be used to accept connections from someone else's listening socket. - * - * When using lws own event loop, these are not needed. - */ -///@{ - -/** - * lws_adopt_socket() - adopt foreign socket as if listen socket accepted it - * for the default vhost of context. - * - * \param context: lws context - * \param accept_fd: fd of already-accepted socket to adopt - * - * Either returns new wsi bound to accept_fd, or closes accept_fd and - * returns NULL, having cleaned up any new wsi pieces. - * - * LWS adopts the socket in http serving mode, it's ready to accept an upgrade - * to ws or just serve http. - */ -LWS_VISIBLE LWS_EXTERN struct lws * -lws_adopt_socket(struct lws_context *context, lws_sockfd_type accept_fd); -/** - * lws_adopt_socket_vhost() - adopt foreign socket as if listen socket accepted - * it for vhost - * - * \param vh: lws vhost - * \param accept_fd: fd of already-accepted socket to adopt - * - * Either returns new wsi bound to accept_fd, or closes accept_fd and - * returns NULL, having cleaned up any new wsi pieces. - * - * LWS adopts the socket in http serving mode, it's ready to accept an upgrade - * to ws or just serve http. - */ -LWS_VISIBLE LWS_EXTERN struct lws * -lws_adopt_socket_vhost(struct lws_vhost *vh, lws_sockfd_type accept_fd); - -typedef enum { - LWS_ADOPT_RAW_FILE_DESC = 0, /* convenience constant */ - LWS_ADOPT_HTTP = 1, /* flag: absent implies RAW */ - LWS_ADOPT_SOCKET = 2, /* flag: absent implies file descr */ - LWS_ADOPT_ALLOW_SSL = 4, /* flag: if set requires LWS_ADOPT_SOCKET */ - LWS_ADOPT_FLAG_UDP = 16, /* flag: socket is UDP */ - LWS_ADOPT_FLAG_RAW_PROXY = 32, /* flag: raw proxy */ - - LWS_ADOPT_RAW_SOCKET_UDP = LWS_ADOPT_SOCKET | LWS_ADOPT_FLAG_UDP, -} lws_adoption_type; - -typedef union { - lws_sockfd_type sockfd; - lws_filefd_type filefd; -} lws_sock_file_fd_type; - -#if defined(LWS_WITH_UDP) -struct lws_udp { - struct sockaddr sa; - socklen_t salen; - - struct sockaddr sa_pending; - socklen_t salen_pending; -}; -#endif - -/** -* lws_adopt_descriptor_vhost() - adopt foreign socket or file descriptor -* if socket descriptor, should already have been accepted from listen socket -* -* \param vh: lws vhost -* \param type: OR-ed combinations of lws_adoption_type flags -* \param fd: union with either .sockfd or .filefd set -* \param vh_prot_name: NULL or vh protocol name to bind raw connection to -* \param parent: NULL or struct lws to attach new_wsi to as a child -* -* Either returns new wsi bound to accept_fd, or closes accept_fd and -* returns NULL, having cleaned up any new wsi pieces. -* -* If LWS_ADOPT_SOCKET is set, LWS adopts the socket in http serving mode, it's -* ready to accept an upgrade to ws or just serve http. -* -* parent may be NULL, if given it should be an existing wsi that will become the -* parent of the new wsi created by this call. -*/ -LWS_VISIBLE LWS_EXTERN struct lws * -lws_adopt_descriptor_vhost(struct lws_vhost *vh, lws_adoption_type type, - lws_sock_file_fd_type fd, const char *vh_prot_name, - struct lws *parent); - -typedef struct lws_adopt_desc { - struct lws_vhost *vh; /**< vhost the wsi should belong to */ - lws_adoption_type type; /**< OR-ed combinations of lws_adoption_type flags */ - lws_sock_file_fd_type fd; /**< union with either .sockfd or .filefd set */ - const char *vh_prot_name; /**< NULL or vh protocol name to bind raw connection to */ - struct lws *parent; /**< NULL or struct lws to attach new_wsi to as a child */ - void *opaque; /**< opaque pointer to set on created wsi */ -} lws_adopt_desc_t; - -/** -* lws_adopt_descriptor_vhost_via_info() - adopt foreign socket or file descriptor -* if socket descriptor, should already have been accepted from listen socket -* -* \param info: the struct containing the parameters -* -* - vh: lws vhost -* - type: OR-ed combinations of lws_adoption_type flags -* - fd: union with either .sockfd or .filefd set -* - vh_prot_name: NULL or vh protocol name to bind raw connection to -* - parent: NULL or struct lws to attach new_wsi to as a child -* - opaque: opaque pointer to set on created wsi -* -* Either returns new wsi bound to accept_fd, or closes accept_fd and -* returns NULL, having cleaned up any new wsi pieces. -* -* If LWS_ADOPT_SOCKET is set, LWS adopts the socket in http serving mode, it's -* ready to accept an upgrade to ws or just serve http. -* -* parent may be NULL, if given it should be an existing wsi that will become the -* parent of the new wsi created by this call. -*/ -LWS_VISIBLE LWS_EXTERN struct lws * -lws_adopt_descriptor_vhost_via_info(const lws_adopt_desc_t *info); - -/** - * lws_adopt_socket_readbuf() - adopt foreign socket and first rx as if listen socket accepted it - * for the default vhost of context. - * \param context: lws context - * \param accept_fd: fd of already-accepted socket to adopt - * \param readbuf: NULL or pointer to data that must be drained before reading from - * accept_fd - * \param len: The length of the data held at \p readbuf - * - * Either returns new wsi bound to accept_fd, or closes accept_fd and - * returns NULL, having cleaned up any new wsi pieces. - * - * LWS adopts the socket in http serving mode, it's ready to accept an upgrade - * to ws or just serve http. - * - * If your external code did not already read from the socket, you can use - * lws_adopt_socket() instead. - * - * This api is guaranteed to use the data at \p readbuf first, before reading from - * the socket. - * - * \p readbuf is limited to the size of the ah rx buf, currently 2048 bytes. - */ -LWS_VISIBLE LWS_EXTERN struct lws * -lws_adopt_socket_readbuf(struct lws_context *context, lws_sockfd_type accept_fd, - const char *readbuf, size_t len); -/** - * lws_adopt_socket_vhost_readbuf() - adopt foreign socket and first rx as if listen socket - * accepted it for vhost. - * \param vhost: lws vhost - * \param accept_fd: fd of already-accepted socket to adopt - * \param readbuf: NULL or pointer to data that must be drained before reading from accept_fd - * \param len: The length of the data held at \p readbuf - * - * Either returns new wsi bound to accept_fd, or closes accept_fd and - * returns NULL, having cleaned up any new wsi pieces. - * - * LWS adopts the socket in http serving mode, it's ready to accept an upgrade - * to ws or just serve http. - * - * If your external code did not already read from the socket, you can use - * lws_adopt_socket() instead. - * - * This api is guaranteed to use the data at \p readbuf first, before reading from - * the socket. - * - * \p readbuf is limited to the size of the ah rx buf, currently 2048 bytes. - */ -LWS_VISIBLE LWS_EXTERN struct lws * -lws_adopt_socket_vhost_readbuf(struct lws_vhost *vhost, - lws_sockfd_type accept_fd, const char *readbuf, - size_t len); - -#define LWS_CAUDP_BIND (1 << 0) -#define LWS_CAUDP_BROADCAST (1 << 1) -#define LWS_CAUDP_PF_PACKET (1 << 2) - -#if defined(LWS_WITH_UDP) -/** - * lws_create_adopt_udp() - create, bind and adopt a UDP socket - * - * \param vhost: lws vhost - * \param ads: NULL or address to do dns lookup on - * \param port: UDP port to bind to, -1 means unbound - * \param flags: 0 or LWS_CAUDP_NO_BIND - * \param protocol_name: Name of protocol on vhost to bind wsi to - * \param ifname: NULL, for network interface name to bind socket to - * \param parent_wsi: NULL or parent wsi new wsi will be a child of - * \param opaque: set created wsi opaque ptr to this - * \param retry_policy: NULL for vhost default policy else wsi specific policy - * - * Either returns new wsi bound to accept_fd, or closes accept_fd and - * returns NULL, having cleaned up any new wsi pieces. - * */ -LWS_VISIBLE LWS_EXTERN struct lws * -lws_create_adopt_udp(struct lws_vhost *vhost, const char *ads, int port, - int flags, const char *protocol_name, const char *ifname, - struct lws *parent_wsi, void *opaque, - const lws_retry_bo_t *retry_policy); -#endif - - - -///@} diff --git a/win64/include/websockets/libwebsockets/lws-async-dns.h b/win64/include/websockets/libwebsockets/lws-async-dns.h deleted file mode 100644 index 7387ca0f..00000000 --- a/win64/include/websockets/libwebsockets/lws-async-dns.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#if defined(LWS_WITH_UDP) - -typedef enum dns_query_type { - LWS_ADNS_RECORD_A = 0x01, - LWS_ADNS_RECORD_CNAME = 0x05, - LWS_ADNS_RECORD_MX = 0x0f, - LWS_ADNS_RECORD_AAAA = 0x1c, -} adns_query_type_t; - -typedef enum { - LADNS_RET_FAILED_WSI_CLOSED = -4, - LADNS_RET_NXDOMAIN = -3, - LADNS_RET_TIMEDOUT = -2, - LADNS_RET_FAILED = -1, - LADNS_RET_FOUND, - LADNS_RET_CONTINUING -} lws_async_dns_retcode_t; - -struct addrinfo; - -typedef struct lws * (*lws_async_dns_cb_t)(struct lws *wsi, const char *ads, - const struct addrinfo *result, int n, - void *opaque); - -/** - * lws_async_dns_query() - perform a dns lookup using async dns - * - * \param context: the lws_context - * \param tsi: thread service index (usually 0) - * \param name: DNS name to look up - * \param qtype: type of query (A, AAAA etc) - * \param cb: query completion callback - * \param wsi: wsi if the query is related to one - * - * Starts an asynchronous DNS lookup, on completion the \p cb callback will - * be called. - * - * The reference count on the cached object is incremented for every callback - * that was called with the cached addrinfo results. - * - * The cached object can't be evicted until the reference count reaches zero... - * use lws_async_dns_freeaddrinfo() to indicate you're finsihed with the - * results for each callback that happened with them. - */ -LWS_VISIBLE LWS_EXTERN lws_async_dns_retcode_t -lws_async_dns_query(struct lws_context *context, int tsi, const char *name, - adns_query_type_t qtype, lws_async_dns_cb_t cb, - struct lws *wsi, void *opaque); - -/** - * lws_async_dns_freeaddrinfo() - decrement refcount on cached addrinfo results - * - * \param pai: a pointert to a pointer to first addrinfo returned as result in the callback - * - * Decrements the cache object's reference count. When it reaches zero, the - * cached object may be reaped subject to LRU rules. - * - * The pointer to the first addrinfo give in the argument is set to NULL. - */ -LWS_VISIBLE LWS_EXTERN void -lws_async_dns_freeaddrinfo(const struct addrinfo **ai); - -#endif diff --git a/win64/include/websockets/libwebsockets/lws-bb-i2c.h b/win64/include/websockets/libwebsockets/lws-bb-i2c.h deleted file mode 100644 index bd9718e9..00000000 --- a/win64/include/websockets/libwebsockets/lws-bb-i2c.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * I2C - bitbanged generic gpio implementation - * - * Copyright (C) 2019 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * This is like an abstract class for gpio, a real implementation provides - * functions for the ops that use the underlying OS gpio arrangements. - */ - -typedef struct lws_bb_i2c { - lws_i2c_ops_t bb_ops; /* init to lws_bb_i2c_ops */ - - /* implementation-specific members */ - - _lws_plat_gpio_t scl; - _lws_plat_gpio_t sda; - - const lws_gpio_ops_t *gpio; - void (*delay)(void); -} lws_bb_i2c_t; - -#define lws_bb_i2c_ops \ - { \ - .init = lws_bb_i2c_init, \ - .start = lws_bb_i2c_start, \ - .stop = lws_bb_i2c_stop, \ - .write = lws_bb_i2c_write, \ - .read = lws_bb_i2c_read, \ - .set_ack = lws_bb_i2c_set_ack, \ - } - -int -lws_bb_i2c_init(const lws_i2c_ops_t *octx); - -int -lws_bb_i2c_start(const lws_i2c_ops_t *octx); - -void -lws_bb_i2c_stop(const lws_i2c_ops_t *octx); - -int -lws_bb_i2c_write(const lws_i2c_ops_t *octx, uint8_t data); - -int -lws_bb_i2c_read(const lws_i2c_ops_t *octx); - -void -lws_bb_i2c_set_ack(const lws_i2c_ops_t *octx, int ack); diff --git a/win64/include/websockets/libwebsockets/lws-bb-spi.h b/win64/include/websockets/libwebsockets/lws-bb-spi.h deleted file mode 100644 index 52c801c6..00000000 --- a/win64/include/websockets/libwebsockets/lws-bb-spi.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * I2C - bitbanged generic gpio implementation - * - * Copyright (C) 2019 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * This is like an abstract class for gpio, a real implementation provides - * functions for the ops that use the underlying OS gpio arrangements. - */ - -#define LWSBBSPI_FLAG_USE_NCMD3 (1 << 7) -#define LWSBBSPI_FLAG_USE_NCMD2 (1 << 6) -#define LWSBBSPI_FLAG_USE_NCMD1 (1 << 5) -#define LWSBBSPI_FLAG_USE_NCMD0 (1 << 4) -#define LWSBBSPI_FLAG_USE_NCS3 (1 << 3) -#define LWSBBSPI_FLAG_USE_NCS2 (1 << 2) -#define LWSBBSPI_FLAG_USE_NCS1 (1 << 1) -#define LWSBBSPI_FLAG_USE_NCS0 (1 << 0) - -#define LWS_SPI_BB_MAX_CH 4 - -typedef struct lws_bb_spi { - lws_spi_ops_t bb_ops; /* init to lws_bb_spi_ops */ - - /* implementation-specific members */ - const lws_gpio_ops_t *gpio; - - _lws_plat_gpio_t clk; - _lws_plat_gpio_t ncs[LWS_SPI_BB_MAX_CH]; - _lws_plat_gpio_t ncmd[LWS_SPI_BB_MAX_CH]; - _lws_plat_gpio_t mosi; - _lws_plat_gpio_t miso; - - uint8_t flags; -} lws_bb_spi_t; - -#define lws_bb_spi_ops \ - .init = lws_bb_spi_init, \ - .queue = lws_bb_spi_queue - -int -lws_bb_spi_init(const lws_spi_ops_t *octx); - -int -lws_bb_spi_queue(const lws_spi_ops_t *octx, const lws_spi_desc_t *desc); diff --git a/win64/include/websockets/libwebsockets/lws-button.h b/win64/include/websockets/libwebsockets/lws-button.h deleted file mode 100644 index e1981423..00000000 --- a/win64/include/websockets/libwebsockets/lws-button.h +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Generic button ops - * - * Copyright (C) 2019 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * Leverages the lws generic gpio pieces to bind gpio buttons to smd events - */ - -#if !defined(__LWS_BUTTON_H__) -#define __LWS_BUTTON_H__ - -typedef uint16_t lws_button_idx_t; - -/* actual minimum may be 1 x RTOS tick depending on platform */ -#define LWS_BUTTON_MON_TIMER_MS 5 - -typedef void (*lws_button_cb_t)(void *opaque, lws_button_idx_t idx, int state); - -/* These are specified in ms but the granularity is LWS_BUTTON_MON_TIMER_MS, - * which may have been rounded up to an RTOS tick depending on platform */ - -enum { - LWSBTNRGMFLAG_CLASSIFY_DOUBLECLICK = (1 << 0) -}; - -typedef struct lws_button_regime { - uint16_t ms_min_down; - uint16_t ms_min_down_longpress; - uint16_t ms_up_settle; - uint16_t ms_doubleclick_grace; - uint16_t ms_repeat_down; - uint8_t flags; - /**< when double-click classification is enabled, clicks are delayed - * by ms_min_down + ms_doubleclick_grace to wait and see if it will - * become a double-click. Set LWSBTNRGMFLAG_CLASSIFY_DOUBLECLICK to - * enable it or leave that bit at 0 to get faster single-click - * classification. - */ -} lws_button_regime_t; - -/* - * This is the const part of the button controller, describing the static - * bindings to gpio, and lws_smd event name information - */ - -typedef struct lws_button_map { - _lws_plat_gpio_t gpio; - const char *smd_interaction_name; - const lws_button_regime_t *regime; - /**< a default regime is applied if this is left NULL */ -} lws_button_map_t; - -typedef struct lws_button_controller { - const char *smd_bc_name; - const lws_gpio_ops_t *gpio_ops; - const lws_button_map_t *button_map; - lws_button_idx_t active_state_bitmap; - uint8_t count_buttons; -} lws_button_controller_t; - -struct lws_button_state; /* opaque */ - -/** - * lws_button_controller_create() - instantiate a button controller - * - * \param ctx: the lws_context - * \param controller: the static controller definition - * - * Instantiates a button controller from a static definition of the buttons - * and their smd names, and active levels, and binds it to a gpio implementation - */ - -LWS_VISIBLE LWS_EXTERN struct lws_button_state * -lws_button_controller_create(struct lws_context *ctx, - const lws_button_controller_t *controller); - -/** - * lws_button_controller_destroy() - destroys a button controller - * - * \param bcs: button controller state previously created - * - * Disables all buttons and then destroys and frees a previously created - * button controller. - */ - -LWS_VISIBLE LWS_EXTERN void -lws_button_controller_destroy(struct lws_button_state *bcs); - - -LWS_VISIBLE LWS_EXTERN lws_button_idx_t -lws_button_get_bit(struct lws_button_state *bcs, const char *name); - -/* - * lws_button_enable() - enable and disable buttons - */ - -LWS_VISIBLE LWS_EXTERN void -lws_button_enable(struct lws_button_state *bcs, - lws_button_idx_t _reset, lws_button_idx_t _set); - -#endif - diff --git a/win64/include/websockets/libwebsockets/lws-callbacks.h b/win64/include/websockets/libwebsockets/lws-callbacks.h deleted file mode 100644 index b2121eb7..00000000 --- a/win64/include/websockets/libwebsockets/lws-callbacks.h +++ /dev/null @@ -1,910 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup usercb User Callback - * - * ##User protocol callback - * - * The protocol callback is the primary way lws interacts with - * user code. For one of a list of a few dozen reasons the callback gets - * called at some event to be handled. - * - * All of the events can be ignored, returning 0 is taken as "OK" and returning - * nonzero in most cases indicates that the connection should be closed. - */ -///@{ - -struct lws_ssl_info { - int where; - int ret; -}; - -enum lws_cert_update_state { - LWS_CUS_IDLE, - LWS_CUS_STARTING, - LWS_CUS_SUCCESS, - LWS_CUS_FAILED, - - LWS_CUS_CREATE_KEYS, - LWS_CUS_REG, - LWS_CUS_AUTH, - LWS_CUS_CHALLENGE, - LWS_CUS_CREATE_REQ, - LWS_CUS_REQ, - LWS_CUS_CONFIRM, - LWS_CUS_ISSUE, -}; - -enum { - LWS_TLS_REQ_ELEMENT_COUNTRY, - LWS_TLS_REQ_ELEMENT_STATE, - LWS_TLS_REQ_ELEMENT_LOCALITY, - LWS_TLS_REQ_ELEMENT_ORGANIZATION, - LWS_TLS_REQ_ELEMENT_COMMON_NAME, - LWS_TLS_REQ_ELEMENT_SUBJECT_ALT_NAME, - LWS_TLS_REQ_ELEMENT_EMAIL, - - LWS_TLS_REQ_ELEMENT_COUNT, - - LWS_TLS_SET_DIR_URL = LWS_TLS_REQ_ELEMENT_COUNT, - LWS_TLS_SET_AUTH_PATH, - LWS_TLS_SET_CERT_PATH, - LWS_TLS_SET_KEY_PATH, - - LWS_TLS_TOTAL_COUNT -}; - -struct lws_acme_cert_aging_args { - struct lws_vhost *vh; - const char *element_overrides[LWS_TLS_TOTAL_COUNT]; /* NULL = use pvo */ -}; - -/* - * With LWS_CALLBACK_FILTER_NETWORK_CONNECTION callback, user_data pointer - * points to one of these - */ - -struct lws_filter_network_conn_args { - struct sockaddr_storage cli_addr; - socklen_t clilen; - lws_sockfd_type accept_fd; -}; - -/* - * NOTE: These public enums are part of the abi. If you want to add one, - * add it at where specified so existing users are unaffected. - */ -/** enum lws_callback_reasons - reason you're getting a protocol callback */ -enum lws_callback_reasons { - - /* --------------------------------------------------------------------- - * ----- Callbacks related to wsi and protocol binding lifecycle ----- - */ - - LWS_CALLBACK_PROTOCOL_INIT = 27, - /**< One-time call per protocol, per-vhost using it, so it can - * do initial setup / allocations etc */ - - LWS_CALLBACK_PROTOCOL_DESTROY = 28, - /**< One-time call per protocol, per-vhost using it, indicating - * this protocol won't get used at all after this callback, the - * vhost is getting destroyed. Take the opportunity to - * deallocate everything that was allocated by the protocol. */ - - LWS_CALLBACK_WSI_CREATE = 29, - /**< outermost (earliest) wsi create notification to protocols[0] */ - - LWS_CALLBACK_WSI_DESTROY = 30, - /**< outermost (latest) wsi destroy notification to protocols[0] */ - - LWS_CALLBACK_WSI_TX_CREDIT_GET = 103, - /**< manually-managed connection received TX credit (len is int32) */ - - - /* --------------------------------------------------------------------- - * ----- Callbacks related to Server TLS ----- - */ - - LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS = 21, - /**< if configured for - * including OpenSSL support, this callback allows your user code - * to perform extra SSL_CTX_load_verify_locations() or similar - * calls to direct OpenSSL where to find certificates the client - * can use to confirm the remote server identity. user is the - * OpenSSL SSL_CTX* */ - - LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS = 22, - /**< if configured for - * including OpenSSL support, this callback allows your user code - * to load extra certificates into the server which allow it to - * verify the validity of certificates returned by clients. user - * is the server's OpenSSL SSL_CTX* and in is the lws_vhost */ - - LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION = 23, - /**< if the libwebsockets vhost was created with the option - * LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT, then this - * callback is generated during OpenSSL verification of the cert - * sent from the client. It is sent to protocol[0] callback as - * no protocol has been negotiated on the connection yet. - * Notice that the libwebsockets context and wsi are both NULL - * during this callback. See - * http://www.openssl.org/docs/ssl/SSL_CTX_set_verify.html - * to understand more detail about the OpenSSL callback that - * generates this libwebsockets callback and the meanings of the - * arguments passed. In this callback, user is the x509_ctx, - * in is the ssl pointer and len is preverify_ok - * Notice that this callback maintains libwebsocket return - * conventions, return 0 to mean the cert is OK or 1 to fail it. - * This also means that if you don't handle this callback then - * the default callback action of returning 0 allows the client - * certificates. */ - - LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY = 37, - /**< if configured for including OpenSSL support but no private key - * file has been specified (ssl_private_key_filepath is NULL), this is - * called to allow the user to set the private key directly via - * libopenssl and perform further operations if required; this might be - * useful in situations where the private key is not directly accessible - * by the OS, for example if it is stored on a smartcard. - * user is the server's OpenSSL SSL_CTX* */ - - LWS_CALLBACK_SSL_INFO = 67, - /**< SSL connections only. An event you registered an - * interest in at the vhost has occurred on a connection - * using the vhost. in is a pointer to a - * struct lws_ssl_info containing information about the - * event*/ - - /* --------------------------------------------------------------------- - * ----- Callbacks related to Client TLS ----- - */ - - LWS_CALLBACK_OPENSSL_PERFORM_SERVER_CERT_VERIFICATION = 58, - /**< Similar to LWS_CALLBACK_OPENSSL_PERFORM_CLIENT_CERT_VERIFICATION - * this callback is called during OpenSSL verification of the cert - * sent from the server to the client. It is sent to protocol[0] - * callback as no protocol has been negotiated on the connection yet. - * Notice that the wsi is set because lws_client_connect_via_info was - * successful. - * - * See http://www.openssl.org/docs/ssl/SSL_CTX_set_verify.html - * to understand more detail about the OpenSSL callback that - * generates this libwebsockets callback and the meanings of the - * arguments passed. In this callback, user is the x509_ctx, - * in is the ssl pointer and len is preverify_ok. - * - * THIS IS NOT RECOMMENDED BUT if a cert validation error shall be - * overruled and cert shall be accepted as ok, - * X509_STORE_CTX_set_error((X509_STORE_CTX*)user, X509_V_OK); must be - * called and return value must be 0 to mean the cert is OK; - * returning 1 will fail the cert in any case. - * - * This also means that if you don't handle this callback then - * the default callback action of returning 0 will not accept the - * certificate in case of a validation error decided by the SSL lib. - * - * This is expected and secure behaviour when validating certificates. - * - * Note: LCCSCF_ALLOW_SELFSIGNED and - * LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK still work without this - * callback being implemented. - */ - - /* --------------------------------------------------------------------- - * ----- Callbacks related to HTTP Server ----- - */ - - LWS_CALLBACK_SERVER_NEW_CLIENT_INSTANTIATED = 19, - /**< A new client has been accepted by the ws server. This - * callback allows setting any relevant property to it. Because this - * happens immediately after the instantiation of a new client, - * there's no websocket protocol selected yet so this callback is - * issued only to protocol 0. Only wsi is defined, pointing to the - * new client, and the return value is ignored. */ - - LWS_CALLBACK_HTTP = 12, - /**< an http request has come from a client that is not - * asking to upgrade the connection to a websocket - * one. This is a chance to serve http content, - * for example, to send a script to the client - * which will then open the websockets connection. - * in points to the URI path requested and - * lws_serve_http_file() makes it very - * simple to send back a file to the client. - * Normally after sending the file you are done - * with the http connection, since the rest of the - * activity will come by websockets from the script - * that was delivered by http, so you will want to - * return 1; to close and free up the connection. */ - - LWS_CALLBACK_HTTP_BODY = 13, - /**< the next len bytes data from the http - * request body HTTP connection is now available in in. */ - - LWS_CALLBACK_HTTP_BODY_COMPLETION = 14, - /**< the expected amount of http request body has been delivered */ - - LWS_CALLBACK_HTTP_FILE_COMPLETION = 15, - /**< a file requested to be sent down http link has completed. */ - - LWS_CALLBACK_HTTP_WRITEABLE = 16, - /**< you can write more down the http protocol link now. */ - - LWS_CALLBACK_CLOSED_HTTP = 5, - /**< when a HTTP (non-websocket) session ends */ - - LWS_CALLBACK_FILTER_HTTP_CONNECTION = 18, - /**< called when the request has - * been received and parsed from the client, but the response is - * not sent yet. Return non-zero to disallow the connection. - * user is a pointer to the connection user space allocation, - * in is the URI, eg, "/" - * In your handler you can use the public APIs - * lws_hdr_total_length() / lws_hdr_copy() to access all of the - * headers using the header enums lws_token_indexes from - * libwebsockets.h to check for and read the supported header - * presence and content before deciding to allow the http - * connection to proceed or to kill the connection. */ - - LWS_CALLBACK_ADD_HEADERS = 53, - /**< This gives your user code a chance to add headers to a server - * transaction bound to your protocol. `in` points to a - * `struct lws_process_html_args` describing a buffer and length - * you can add headers into using the normal lws apis. - * - * (see LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER to add headers to - * a client transaction) - * - * Only `args->p` and `args->len` are valid, and `args->p` should - * be moved on by the amount of bytes written, if any. Eg - * - * case LWS_CALLBACK_ADD_HEADERS: - * - * struct lws_process_html_args *args = - * (struct lws_process_html_args *)in; - * - * if (lws_add_http_header_by_name(wsi, - * (unsigned char *)"set-cookie:", - * (unsigned char *)cookie, cookie_len, - * (unsigned char **)&args->p, - * (unsigned char *)args->p + args->max_len)) - * return 1; - * - * break; - */ - - LWS_CALLBACK_VERIFY_BASIC_AUTHORIZATION = 102, - /**< This gives the user code a chance to accept or reject credentials - * provided HTTP to basic authorization. It will only be called if the - * http mount's authentication_mode is set to LWSAUTHM_BASIC_AUTH_CALLBACK - * `in` points to a credential string of the form `username:password` If - * the callback returns zero (the default if unhandled), then the - * transaction ends with HTTP_STATUS_UNAUTHORIZED, otherwise the request - * will be processed */ - - LWS_CALLBACK_CHECK_ACCESS_RIGHTS = 51, - /**< This gives the user code a chance to forbid an http access. - * `in` points to a `struct lws_process_html_args`, which - * describes the URL, and a bit mask describing the type of - * authentication required. If the callback returns nonzero, - * the transaction ends with HTTP_STATUS_UNAUTHORIZED. */ - - LWS_CALLBACK_PROCESS_HTML = 52, - /**< This gives your user code a chance to mangle outgoing - * HTML. `in` points to a `struct lws_process_html_args` - * which describes the buffer containing outgoing HTML. - * The buffer may grow up to `.max_len` (currently +128 - * bytes per buffer). - */ - - LWS_CALLBACK_HTTP_BIND_PROTOCOL = 49, - /**< By default, all HTTP handling is done in protocols[0]. - * However you can bind different protocols (by name) to - * different parts of the URL space using callback mounts. This - * callback occurs in the new protocol when a wsi is bound - * to that protocol. Any protocol allocation related to the - * http transaction processing should be created then. - * These specific callbacks are necessary because with HTTP/1.1, - * a single connection may perform at series of different - * transactions at different URLs, thus the lifetime of the - * protocol bind is just for one transaction, not connection. */ - - LWS_CALLBACK_HTTP_DROP_PROTOCOL = 50, - /**< This is called when a transaction is unbound from a protocol. - * It indicates the connection completed its transaction and may - * do something different now. Any protocol allocation related - * to the http transaction processing should be destroyed. */ - - LWS_CALLBACK_HTTP_CONFIRM_UPGRADE = 86, - /**< This is your chance to reject an HTTP upgrade action. The - * name of the protocol being upgraded to is in 'in', and the ah - * is still bound to the wsi, so you can look at the headers. - * - * The default of returning 0 (ie, also if not handled) means the - * upgrade may proceed. Return <0 to just hang up the connection, - * or >0 if you have rejected the connection by returning http headers - * and response code yourself. - * - * There is no need for you to call transaction_completed() as the - * caller will take care of it when it sees you returned >0. - */ - - /* --------------------------------------------------------------------- - * ----- Callbacks related to HTTP Client ----- - */ - - LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP = 44, - /**< The HTTP client connection has succeeded, and is now - * connected to the server */ - - LWS_CALLBACK_CLOSED_CLIENT_HTTP = 45, - /**< The HTTP client connection is closing */ - - LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ = 48, - /**< This is generated by lws_http_client_read() used to drain - * incoming data. In the case the incoming data was chunked, it will - * be split into multiple smaller callbacks for each chunk block, - * removing the chunk headers. If not chunked, it will appear all in - * one callback. */ - - LWS_CALLBACK_RECEIVE_CLIENT_HTTP = 46, - /**< This indicates data was received on the HTTP client connection. It - * does NOT actually drain or provide the data, so if you are doing - * http client, you MUST handle this and call lws_http_client_read(). - * Failure to deal with it as in the minimal examples may cause spinning - * around the event loop as it's continuously signalled the same data - * is available for read. The related minimal examples show how to - * handle it. - * - * It's possible to defer calling lws_http_client_read() if you use - * rx flow control to stop further rx handling on the connection until - * you did deal with it. But normally you would call it in the handler. - * - * lws_http_client_read() strips any chunked framing and calls back - * with only payload data to LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ. The - * chunking is the reason this is not just all done in one callback for - * http. - */ - LWS_CALLBACK_COMPLETED_CLIENT_HTTP = 47, - /**< The client transaction completed... at the moment this - * is the same as closing since transaction pipelining on - * client side is not yet supported. */ - - LWS_CALLBACK_CLIENT_HTTP_WRITEABLE = 57, - /**< when doing an HTTP type client connection, you can call - * lws_client_http_body_pending(wsi, 1) from - * LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER to get these callbacks - * sending the HTTP headers. - * - * From this callback, when you have sent everything, you should let - * lws know by calling lws_client_http_body_pending(wsi, 0) - */ - - LWS_CALLBACK_CLIENT_HTTP_REDIRECT = 104, - /**< we're handling a 3xx redirect... return nonzero to hang up */ - - LWS_CALLBACK_CLIENT_HTTP_BIND_PROTOCOL = 85, - LWS_CALLBACK_CLIENT_HTTP_DROP_PROTOCOL = 76, - - /* --------------------------------------------------------------------- - * ----- Callbacks related to Websocket Server ----- - */ - - LWS_CALLBACK_ESTABLISHED = 0, - /**< (VH) after the server completes a handshake with an incoming - * client. If you built the library with ssl support, in is a - * pointer to the ssl struct associated with the connection or NULL. - * - * b0 of len is set if the connection was made using ws-over-h2 - */ - - LWS_CALLBACK_CLOSED = 4, - /**< when the websocket session ends */ - - LWS_CALLBACK_SERVER_WRITEABLE = 11, - /**< See LWS_CALLBACK_CLIENT_WRITEABLE */ - - LWS_CALLBACK_RECEIVE = 6, - /**< data has appeared for this server endpoint from a - * remote client, it can be found at *in and is - * len bytes long */ - - LWS_CALLBACK_RECEIVE_PONG = 7, - /**< servers receive PONG packets with this callback reason */ - - LWS_CALLBACK_WS_PEER_INITIATED_CLOSE = 38, - /**< The peer has sent an unsolicited Close WS packet. in and - * len are the optional close code (first 2 bytes, network - * order) and the optional additional information which is not - * defined in the standard, and may be a string or non human-readable - * data. - * If you return 0 lws will echo the close and then close the - * connection. If you return nonzero lws will just close the - * connection. */ - - LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION = 20, - /**< called when the handshake has - * been received and parsed from the client, but the response is - * not sent yet. Return non-zero to disallow the connection. - * user is a pointer to the connection user space allocation, - * in is the requested protocol name - * In your handler you can use the public APIs - * lws_hdr_total_length() / lws_hdr_copy() to access all of the - * headers using the header enums lws_token_indexes from - * libwebsockets.h to check for and read the supported header - * presence and content before deciding to allow the handshake - * to proceed or to kill the connection. */ - - LWS_CALLBACK_CONFIRM_EXTENSION_OKAY = 25, - /**< When the server handshake code - * sees that it does support a requested extension, before - * accepting the extension by additing to the list sent back to - * the client it gives this callback just to check that it's okay - * to use that extension. It calls back to the requested protocol - * and with in being the extension name, len is 0 and user is - * valid. Note though at this time the ESTABLISHED callback hasn't - * happened yet so if you initialize user content there, user - * content during this callback might not be useful for anything. */ - - LWS_CALLBACK_WS_SERVER_BIND_PROTOCOL = 77, - LWS_CALLBACK_WS_SERVER_DROP_PROTOCOL = 78, - - /* --------------------------------------------------------------------- - * ----- Callbacks related to Websocket Client ----- - */ - - LWS_CALLBACK_CLIENT_CONNECTION_ERROR = 1, - /**< the request client connection has been unable to complete a - * handshake with the remote server. If in is non-NULL, you can - * find an error string of length len where it points to - * - * Diagnostic strings that may be returned include - * - * "getaddrinfo (ipv6) failed" - * "unknown address family" - * "getaddrinfo (ipv4) failed" - * "set socket opts failed" - * "insert wsi failed" - * "lws_ssl_client_connect1 failed" - * "lws_ssl_client_connect2 failed" - * "Peer hung up" - * "read failed" - * "HS: URI missing" - * "HS: Redirect code but no Location" - * "HS: URI did not parse" - * "HS: Redirect failed" - * "HS: Server did not return 200" - * "HS: OOM" - * "HS: disallowed by client filter" - * "HS: disallowed at ESTABLISHED" - * "HS: ACCEPT missing" - * "HS: ws upgrade response not 101" - * "HS: UPGRADE missing" - * "HS: Upgrade to something other than websocket" - * "HS: CONNECTION missing" - * "HS: UPGRADE malformed" - * "HS: PROTOCOL malformed" - * "HS: Cannot match protocol" - * "HS: EXT: list too big" - * "HS: EXT: failed setting defaults" - * "HS: EXT: failed parsing defaults" - * "HS: EXT: failed parsing options" - * "HS: EXT: Rejects server options" - * "HS: EXT: unknown ext" - * "HS: Accept hash wrong" - * "HS: Rejected by filter cb" - * "HS: OOM" - * "HS: SO_SNDBUF failed" - * "HS: Rejected at CLIENT_ESTABLISHED" - */ - - LWS_CALLBACK_CLIENT_FILTER_PRE_ESTABLISH = 2, - /**< this is the last chance for the client user code to examine the - * http headers and decide to reject the connection. If the - * content in the headers is interesting to the - * client (url, etc) it needs to copy it out at - * this point since it will be destroyed before - * the CLIENT_ESTABLISHED call */ - - LWS_CALLBACK_CLIENT_ESTABLISHED = 3, - /**< after your client connection completed the websocket upgrade - * handshake with the remote server */ - - LWS_CALLBACK_CLIENT_CLOSED = 75, - /**< when a client websocket session ends */ - - LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER = 24, - /**< this callback happens - * when a client handshake is being compiled. user is NULL, - * in is a char **, it's pointing to a char * which holds the - * next location in the header buffer where you can add - * headers, and len is the remaining space in the header buffer, - * which is typically some hundreds of bytes. So, to add a canned - * cookie, your handler code might look similar to: - * - * char **p = (char **)in, *end = (*p) + len; - * - * if (lws_add_http_header_by_token(wsi, WSI_TOKEN_HTTP_COOKIE, - * (unsigned char)"a=b", 3, p, end)) - * return -1; - * - * See LWS_CALLBACK_ADD_HEADERS for adding headers to server - * transactions. - */ - - LWS_CALLBACK_CLIENT_RECEIVE = 8, - /**< data has appeared from the server for the client connection, it - * can be found at *in and is len bytes long */ - - LWS_CALLBACK_CLIENT_RECEIVE_PONG = 9, - /**< clients receive PONG packets with this callback reason */ - - LWS_CALLBACK_CLIENT_WRITEABLE = 10, - /**< If you call lws_callback_on_writable() on a connection, you will - * get one of these callbacks coming when the connection socket - * is able to accept another write packet without blocking. - * If it already was able to take another packet without blocking, - * you'll get this callback at the next call to the service loop - * function. Notice that CLIENTs get LWS_CALLBACK_CLIENT_WRITEABLE - * and servers get LWS_CALLBACK_SERVER_WRITEABLE. */ - - LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED = 26, - /**< When a ws client - * connection is being prepared to start a handshake to a server, - * each supported extension is checked with protocols[0] callback - * with this reason, giving the user code a chance to suppress the - * claim to support that extension by returning non-zero. If - * unhandled, by default 0 will be returned and the extension - * support included in the header to the server. Notice this - * callback comes to protocols[0]. */ - - LWS_CALLBACK_WS_EXT_DEFAULTS = 39, - /**< Gives client connections an opportunity to adjust negotiated - * extension defaults. `user` is the extension name that was - * negotiated (eg, "permessage-deflate"). `in` points to a - * buffer and `len` is the buffer size. The user callback can - * set the buffer to a string describing options the extension - * should parse. Or just ignore for defaults. */ - - - LWS_CALLBACK_FILTER_NETWORK_CONNECTION = 17, - /**< called when a client connects to - * the server at network level; the connection is accepted but then - * passed to this callback to decide whether to hang up immediately - * or not, based on the client IP. - * - * user_data in the callback points to a - * struct lws_filter_network_conn_args that is prepared with the - * sockfd, and the peer's address information. - * - * in contains the connection socket's descriptor. - * - * Since the client connection information is not available yet, - * wsi still pointing to the main server socket. - * - * Return non-zero to terminate the connection before sending or - * receiving anything. Because this happens immediately after the - * network connection from the client, there's no websocket protocol - * selected yet so this callback is issued only to protocol 0. */ - - LWS_CALLBACK_WS_CLIENT_BIND_PROTOCOL = 79, - LWS_CALLBACK_WS_CLIENT_DROP_PROTOCOL = 80, - - /* --------------------------------------------------------------------- - * ----- Callbacks related to external poll loop integration ----- - */ - - LWS_CALLBACK_GET_THREAD_ID = 31, - /**< lws can accept callback when writable requests from other - * threads, if you implement this callback and return an opaque - * current thread ID integer. */ - - /* external poll() management support */ - LWS_CALLBACK_ADD_POLL_FD = 32, - /**< lws normally deals with its poll() or other event loop - * internally, but in the case you are integrating with another - * server you will need to have lws sockets share a - * polling array with the other server. This and the other - * POLL_FD related callbacks let you put your specialized - * poll array interface code in the callback for protocol 0, the - * first protocol you support, usually the HTTP protocol in the - * serving case. - * This callback happens when a socket needs to be - * added to the polling loop: in points to a struct - * lws_pollargs; the fd member of the struct is the file - * descriptor, and events contains the active events - * - * If you are using the internal lws polling / event loop - * you can just ignore these callbacks. */ - - LWS_CALLBACK_DEL_POLL_FD = 33, - /**< This callback happens when a socket descriptor - * needs to be removed from an external polling array. in is - * again the struct lws_pollargs containing the fd member - * to be removed. If you are using the internal polling - * loop, you can just ignore it. */ - - LWS_CALLBACK_CHANGE_MODE_POLL_FD = 34, - /**< This callback happens when lws wants to modify the events for - * a connection. - * in is the struct lws_pollargs with the fd to change. - * The new event mask is in events member and the old mask is in - * the prev_events member. - * If you are using the internal polling loop, you can just ignore - * it. */ - - LWS_CALLBACK_LOCK_POLL = 35, - /**< These allow the external poll changes driven - * by lws to participate in an external thread locking - * scheme around the changes, so the whole thing is threadsafe. - * These are called around three activities in the library, - * - inserting a new wsi in the wsi / fd table (len=1) - * - deleting a wsi from the wsi / fd table (len=1) - * - changing a wsi's POLLIN/OUT state (len=0) - * Locking and unlocking external synchronization objects when - * len == 1 allows external threads to be synchronized against - * wsi lifecycle changes if it acquires the same lock for the - * duration of wsi dereference from the other thread context. */ - - LWS_CALLBACK_UNLOCK_POLL = 36, - /**< See LWS_CALLBACK_LOCK_POLL, ignore if using lws internal poll */ - - /* --------------------------------------------------------------------- - * ----- Callbacks related to CGI serving ----- - */ - - LWS_CALLBACK_CGI = 40, - /**< CGI: CGI IO events on stdin / out / err are sent here on - * protocols[0]. The provided `lws_callback_http_dummy()` - * handles this and the callback should be directed there if - * you use CGI. */ - - LWS_CALLBACK_CGI_TERMINATED = 41, - /**< CGI: The related CGI process ended, this is called before - * the wsi is closed. Used to, eg, terminate chunking. - * The provided `lws_callback_http_dummy()` - * handles this and the callback should be directed there if - * you use CGI. The child PID that terminated is in len. */ - - LWS_CALLBACK_CGI_STDIN_DATA = 42, - /**< CGI: Data is, to be sent to the CGI process stdin, eg from - * a POST body. The provided `lws_callback_http_dummy()` - * handles this and the callback should be directed there if - * you use CGI. */ - - LWS_CALLBACK_CGI_STDIN_COMPLETED = 43, - /**< CGI: no more stdin is coming. The provided - * `lws_callback_http_dummy()` handles this and the callback - * should be directed there if you use CGI. */ - - LWS_CALLBACK_CGI_PROCESS_ATTACH = 70, - /**< CGI: Sent when the CGI process is spawned for the wsi. The - * len parameter is the PID of the child process */ - - /* --------------------------------------------------------------------- - * ----- Callbacks related to Generic Sessions ----- - */ - - LWS_CALLBACK_SESSION_INFO = 54, - /**< This is only generated by user code using generic sessions. - * It's used to get a `struct lws_session_info` filled in by - * generic sessions with information about the logged-in user. - * See the messageboard sample for an example of how to use. */ - - LWS_CALLBACK_GS_EVENT = 55, - /**< Indicates an event happened to the Generic Sessions session. - * `in` contains a `struct lws_gs_event_args` describing the event. */ - - LWS_CALLBACK_HTTP_PMO = 56, - /**< per-mount options for this connection, called before - * the normal LWS_CALLBACK_HTTP when the mount has per-mount - * options. - */ - - /* --------------------------------------------------------------------- - * ----- Callbacks related to RAW PROXY ----- - */ - - LWS_CALLBACK_RAW_PROXY_CLI_RX = 89, - /**< RAW mode client (outgoing) RX */ - - LWS_CALLBACK_RAW_PROXY_SRV_RX = 90, - /**< RAW mode server (listening) RX */ - - LWS_CALLBACK_RAW_PROXY_CLI_CLOSE = 91, - /**< RAW mode client (outgoing) is closing */ - - LWS_CALLBACK_RAW_PROXY_SRV_CLOSE = 92, - /**< RAW mode server (listening) is closing */ - - LWS_CALLBACK_RAW_PROXY_CLI_WRITEABLE = 93, - /**< RAW mode client (outgoing) may be written */ - - LWS_CALLBACK_RAW_PROXY_SRV_WRITEABLE = 94, - /**< RAW mode server (listening) may be written */ - - LWS_CALLBACK_RAW_PROXY_CLI_ADOPT = 95, - /**< RAW mode client (onward) accepted socket was adopted - * (equivalent to 'wsi created') */ - - LWS_CALLBACK_RAW_PROXY_SRV_ADOPT = 96, - /**< RAW mode server (listening) accepted socket was adopted - * (equivalent to 'wsi created') */ - - LWS_CALLBACK_RAW_PROXY_CLI_BIND_PROTOCOL = 97, - LWS_CALLBACK_RAW_PROXY_SRV_BIND_PROTOCOL = 98, - LWS_CALLBACK_RAW_PROXY_CLI_DROP_PROTOCOL = 99, - LWS_CALLBACK_RAW_PROXY_SRV_DROP_PROTOCOL = 100, - - - /* --------------------------------------------------------------------- - * ----- Callbacks related to RAW sockets ----- - */ - - LWS_CALLBACK_RAW_RX = 59, - /**< RAW mode connection RX */ - - LWS_CALLBACK_RAW_CLOSE = 60, - /**< RAW mode connection is closing */ - - LWS_CALLBACK_RAW_WRITEABLE = 61, - /**< RAW mode connection may be written */ - - LWS_CALLBACK_RAW_ADOPT = 62, - /**< RAW mode connection was adopted (equivalent to 'wsi created') */ - - LWS_CALLBACK_RAW_CONNECTED = 101, - /**< outgoing client RAW mode connection was connected */ - - LWS_CALLBACK_RAW_SKT_BIND_PROTOCOL = 81, - LWS_CALLBACK_RAW_SKT_DROP_PROTOCOL = 82, - - /* --------------------------------------------------------------------- - * ----- Callbacks related to RAW file handles ----- - */ - - LWS_CALLBACK_RAW_ADOPT_FILE = 63, - /**< RAW mode file was adopted (equivalent to 'wsi created') */ - - LWS_CALLBACK_RAW_RX_FILE = 64, - /**< This is the indication the RAW mode file has something to read. - * This doesn't actually do the read of the file and len is always - * 0... your code should do the read having been informed there is - * something to read now. */ - - LWS_CALLBACK_RAW_WRITEABLE_FILE = 65, - /**< RAW mode file is writeable */ - - LWS_CALLBACK_RAW_CLOSE_FILE = 66, - /**< RAW mode wsi that adopted a file is closing */ - - LWS_CALLBACK_RAW_FILE_BIND_PROTOCOL = 83, - LWS_CALLBACK_RAW_FILE_DROP_PROTOCOL = 84, - - /* --------------------------------------------------------------------- - * ----- Callbacks related to generic wsi events ----- - */ - - LWS_CALLBACK_TIMER = 73, - /**< When the time elapsed after a call to - * lws_set_timer_usecs(wsi, usecs) is up, the wsi will get one of - * these callbacks. The deadline can be continuously extended into the - * future by later calls to lws_set_timer_usecs() before the deadline - * expires, or cancelled by lws_set_timer_usecs(wsi, -1); - */ - - LWS_CALLBACK_EVENT_WAIT_CANCELLED = 71, - /**< This is sent to every protocol of every vhost in response - * to lws_cancel_service() or lws_cancel_service_pt(). This - * callback is serialized in the lws event loop normally, even - * if the lws_cancel_service[_pt]() call was from a different - * thread. */ - - LWS_CALLBACK_CHILD_CLOSING = 69, - /**< Sent to parent to notify them a child is closing / being - * destroyed. in is the child wsi. - */ - - /* --------------------------------------------------------------------- - * ----- Callbacks related to TLS certificate management ----- - */ - - LWS_CALLBACK_VHOST_CERT_AGING = 72, - /**< When a vhost TLS cert has its expiry checked, this callback - * is broadcast to every protocol of every vhost in case the - * protocol wants to take some action with this information. - * \p in is a pointer to a struct lws_acme_cert_aging_args, - * and \p len is the number of days left before it expires, as - * a (ssize_t). In the struct lws_acme_cert_aging_args, vh - * points to the vhost the cert aging information applies to, - * and element_overrides[] is an optional way to update information - * from the pvos... NULL in an index means use the information from - * from the pvo for the cert renewal, non-NULL in the array index - * means use that pointer instead for the index. */ - - LWS_CALLBACK_VHOST_CERT_UPDATE = 74, - /**< When a vhost TLS cert is being updated, progress is - * reported to the vhost in question here, including completion - * and failure. in points to optional JSON, and len represents the - * connection state using enum lws_cert_update_state */ - - /* --------------------------------------------------------------------- - * ----- Callbacks related to MQTT Client ----- - */ - - LWS_CALLBACK_MQTT_NEW_CLIENT_INSTANTIATED = 200, - LWS_CALLBACK_MQTT_IDLE = 201, - LWS_CALLBACK_MQTT_CLIENT_ESTABLISHED = 202, - LWS_CALLBACK_MQTT_SUBSCRIBED = 203, - LWS_CALLBACK_MQTT_CLIENT_WRITEABLE = 204, - LWS_CALLBACK_MQTT_CLIENT_RX = 205, - LWS_CALLBACK_MQTT_UNSUBSCRIBED = 206, - LWS_CALLBACK_MQTT_DROP_PROTOCOL = 207, - LWS_CALLBACK_MQTT_CLIENT_CLOSED = 208, - LWS_CALLBACK_MQTT_ACK = 209, - /**< When a message is fully sent, if QoS0 this callback is generated - * to locally "acknowledge" it. For QoS1, this callback is only - * generated when the matching PUBACK is received. Return nonzero to - * close the wsi. - */ - LWS_CALLBACK_MQTT_RESEND = 210, - /**< In QoS1, this callback is generated instead of the _ACK one if - * we timed out waiting for a PUBACK and we must resend the message. - * Return nonzero to close the wsi. - */ - - /****** add new things just above ---^ ******/ - - LWS_CALLBACK_USER = 1000, - /**< user code can use any including above without fear of clashes */ -}; - - - -/** - * typedef lws_callback_function() - User server actions - * \param wsi: Opaque websocket instance pointer - * \param reason: The reason for the call - * \param user: Pointer to per-session user data allocated by library - * \param in: Pointer used for some callback reasons - * \param len: Length set for some callback reasons - * - * This callback is the way the user controls what is served. All the - * protocol detail is hidden and handled by the library. - * - * For each connection / session there is user data allocated that is - * pointed to by "user". You set the size of this user data area when - * the library is initialized with lws_create_server. - */ -typedef int -lws_callback_function(struct lws *wsi, enum lws_callback_reasons reason, - void *user, void *in, size_t len); - -#define LWS_CB_REASON_AUX_BF__CGI 1 -#define LWS_CB_REASON_AUX_BF__PROXY 2 -#define LWS_CB_REASON_AUX_BF__CGI_CHUNK_END 4 -#define LWS_CB_REASON_AUX_BF__CGI_HEADERS 8 -#define LWS_CB_REASON_AUX_BF__PROXY_TRANS_END 16 -#define LWS_CB_REASON_AUX_BF__PROXY_HEADERS 32 -///@} diff --git a/win64/include/websockets/libwebsockets/lws-cgi.h b/win64/include/websockets/libwebsockets/lws-cgi.h deleted file mode 100644 index fe42fd8e..00000000 --- a/win64/include/websockets/libwebsockets/lws-cgi.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup cgi cgi handling - * - * ##CGI handling - * - * These functions allow low-level control over stdin/out/err of the cgi. - * - * However for most cases, binding the cgi to http in and out, the default - * lws implementation already does the right thing. - */ - -enum lws_enum_stdinouterr { - LWS_STDIN = 0, - LWS_STDOUT = 1, - LWS_STDERR = 2, -}; - -enum lws_cgi_hdr_state { - LCHS_HEADER, - LCHS_CR1, - LCHS_LF1, - LCHS_CR2, - LCHS_LF2, - LHCS_RESPONSE, - LHCS_DUMP_HEADERS, - LHCS_PAYLOAD, - LCHS_SINGLE_0A, -}; - -struct lws_cgi_args { - struct lws **stdwsi; /**< get fd with lws_get_socket_fd() */ - enum lws_enum_stdinouterr ch; /**< channel index */ - unsigned char *data; /**< for messages with payload */ - enum lws_cgi_hdr_state hdr_state; /**< track where we are in cgi headers */ - int len; /**< length */ -}; - -#ifdef LWS_WITH_CGI -/** - * lws_cgi: spawn network-connected cgi process - * - * \param wsi: connection to own the process - * \param exec_array: array of "exec-name" "arg1" ... "argn" NULL - * \param script_uri_path_len: how many chars on the left of the uri are the - * path to the cgi, or -1 to spawn without URL-related env vars - * \param timeout_secs: seconds script should be allowed to run - * \param mp_cgienv: pvo list with per-vhost cgi options to put in env - */ -LWS_VISIBLE LWS_EXTERN int -lws_cgi(struct lws *wsi, const char * const *exec_array, - int script_uri_path_len, int timeout_secs, - const struct lws_protocol_vhost_options *mp_cgienv); - -/** - * lws_cgi_write_split_stdout_headers: write cgi output accounting for header part - * - * \param wsi: connection to own the process - */ -LWS_VISIBLE LWS_EXTERN int -lws_cgi_write_split_stdout_headers(struct lws *wsi); - -/** - * lws_cgi_kill: terminate cgi process associated with wsi - * - * \param wsi: connection to own the process - */ -LWS_VISIBLE LWS_EXTERN int -lws_cgi_kill(struct lws *wsi); - -/** - * lws_cgi_get_stdwsi: get wsi for stdin, stdout, or stderr - * - * \param wsi: parent wsi that has cgi - * \param ch: which of LWS_STDIN, LWS_STDOUT or LWS_STDERR - */ -LWS_VISIBLE LWS_EXTERN struct lws * -lws_cgi_get_stdwsi(struct lws *wsi, enum lws_enum_stdinouterr ch); - -#endif -///@} - diff --git a/win64/include/websockets/libwebsockets/lws-client.h b/win64/include/websockets/libwebsockets/lws-client.h deleted file mode 100644 index 4b5db85e..00000000 --- a/win64/include/websockets/libwebsockets/lws-client.h +++ /dev/null @@ -1,343 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup client Client related functions - * ##Client releated functions - * \ingroup lwsapi - * - * */ -///@{ - -/** enum lws_client_connect_ssl_connection_flags - flags that may be used - * with struct lws_client_connect_info ssl_connection member to control if - * and how SSL checks apply to the client connection being created - */ - -enum lws_client_connect_ssl_connection_flags { - LCCSCF_USE_SSL = (1 << 0), - LCCSCF_ALLOW_SELFSIGNED = (1 << 1), - LCCSCF_SKIP_SERVER_CERT_HOSTNAME_CHECK = (1 << 2), - LCCSCF_ALLOW_EXPIRED = (1 << 3), - LCCSCF_ALLOW_INSECURE = (1 << 4), - LCCSCF_H2_QUIRK_NGHTTP2_END_STREAM = (1 << 5), - LCCSCF_H2_QUIRK_OVERFLOWS_TXCR = (1 << 6), - LCCSCF_H2_AUTH_BEARER = (1 << 7), - LCCSCF_H2_HEXIFY_AUTH_TOKEN = (1 << 8), - LCCSCF_H2_MANUAL_RXFLOW = (1 << 9), - LCCSCF_HTTP_MULTIPART_MIME = (1 << 10), - LCCSCF_HTTP_X_WWW_FORM_URLENCODED = (1 << 11), - LCCSCF_HTTP_NO_FOLLOW_REDIRECT = (1 << 12), - - LCCSCF_PIPELINE = (1 << 16), - /**< Serialize / pipeline multiple client connections - * on a single connection where possible. - * - * HTTP/1.0: possible if Keep-Alive: yes sent by server - * HTTP/1.1: always possible... uses pipelining - * HTTP/2: always possible... uses parallel streams - */ - LCCSCF_MUXABLE_STREAM = (1 << 17), - LCCSCF_H2_PRIOR_KNOWLEDGE = (1 << 18), - LCCSCF_WAKE_SUSPEND__VALIDITY = (1 << 19), - /* our validity checks are important enough to wake from suspend */ - LCCSCF_PRIORITIZE_READS = (1 << 20), - /**< - * Normally lws balances reads and writes on all connections, so both - * are possible even on busy connections, and we go around the event - * loop more often to facilitate that, even if there is pending data. - * - * This flag indicates that you want to handle any pending reads on this - * connection without yielding the service loop for anything else. This - * means you may block other connection processing in favour of incoming - * data processing on this one if it receives back to back incoming rx. - */ -}; - -/** struct lws_client_connect_info - parameters to connect with when using - * lws_client_connect_via_info() */ - -struct lws_client_connect_info { - struct lws_context *context; - /**< lws context to create connection in */ - const char *address; - /**< remote address to connect to */ - int port; - /**< remote port to connect to */ - int ssl_connection; - /**< 0, or a combination of LCCSCF_ flags */ - const char *path; - /**< uri path */ - const char *host; - /**< content of host header */ - const char *origin; - /**< content of origin header */ - const char *protocol; - /**< list of ws protocols we could accept */ - int ietf_version_or_minus_one; - /**< deprecated: currently leave at 0 or -1 */ - void *userdata; - /**< if non-NULL, use this as wsi user_data instead of malloc it */ - const void *client_exts; - /**< UNUSED... provide in info.extensions at context creation time */ - const char *method; - /**< if non-NULL, do this http method instead of ws[s] upgrade. - * use "GET" to be a simple http client connection. "RAW" gets - * you a connected socket that lws itself will leave alone once - * connected. */ - struct lws *parent_wsi; - /**< if another wsi is responsible for this connection, give it here. - * this is used to make sure if the parent closes so do any - * child connections first. */ - const char *uri_replace_from; - /**< if non-NULL, when this string is found in URIs in - * text/html content-encoding, it's replaced with uri_replace_to */ - const char *uri_replace_to; - /**< see uri_replace_from */ - struct lws_vhost *vhost; - /**< vhost to bind to (used to determine related SSL_CTX) */ - struct lws **pwsi; - /**< if not NULL, store the new wsi here early in the connection - * process. Although we return the new wsi, the call to create the - * client connection does progress the connection somewhat and may - * meet an error that will result in the connection being scrubbed and - * NULL returned. While the wsi exists though, he may process a - * callback like CLIENT_CONNECTION_ERROR with his wsi: this gives the - * user callback a way to identify which wsi it is that faced the error - * even before the new wsi is returned and even if ultimately no wsi - * is returned. - */ - const char *iface; - /**< NULL to allow routing on any interface, or interface name or IP - * to bind the socket to */ - const char *local_protocol_name; - /**< NULL: .protocol is used both to select the local protocol handler - * to bind to and as the list of remote ws protocols we could - * accept. - * non-NULL: this protocol name is used to bind the connection to - * the local protocol handler. .protocol is used for the - * list of remote ws protocols we could accept */ - const char *alpn; - /**< NULL: allow lws default ALPN list, from vhost if present or from - * list of roles built into lws - * non-NULL: require one from provided comma-separated list of alpn - * tokens - */ - - struct lws_sequencer *seq; - /**< NULL, or an lws_seq_t that wants to be given messages about - * this wsi's lifecycle as it connects, errors or closes. - */ - - void *opaque_user_data; - /**< This data has no meaning to lws but is applied to the client wsi - * and can be retrieved by user code with lws_get_opaque_user_data(). - * It's also provided with sequencer messages if the wsi is bound to - * an lws_seq_t. - */ - - const lws_retry_bo_t *retry_and_idle_policy; - /**< optional retry and idle policy to apply to this connection. - * Currently only the idle parts are applied to the connection. - */ - - int manual_initial_tx_credit; - /**< if LCCSCF_H2_MANUAL_REFLOW is set, this becomes the initial tx - * credit for the stream. - */ - - uint8_t sys_tls_client_cert; - /**< 0 means no client cert. 1+ means apply lws_system client cert 0+ - * to the client connection. - */ - -#if defined(LWS_ROLE_MQTT) - const lws_mqtt_client_connect_param_t *mqtt_cp; -#else - void *mqtt_cp; -#endif - - uint16_t keep_warm_secs; - /**< 0 means 5s. If the client connection to the endpoint becomes idle, - * defer closing it for this many seconds in case another outgoing - * connection to the same endpoint turns up. - */ - - /* Add new things just above here ---^ - * This is part of the ABI, don't needlessly break compatibility - * - * The below is to ensure later library versions with new - * members added above will see 0 (default) even if the app - * was not built against the newer headers. - */ - - void *_unused[4]; /**< dummy */ -}; - -/** - * lws_client_connect_via_info() - Connect to another websocket server - * \param ccinfo: pointer to lws_client_connect_info struct - * - * This function creates a connection to a remote server using the - * information provided in ccinfo. - */ -LWS_VISIBLE LWS_EXTERN struct lws * -lws_client_connect_via_info(const struct lws_client_connect_info *ccinfo); - -/** - * lws_init_vhost_client_ssl() - also enable client SSL on an existing vhost - * - * \param info: client ssl related info - * \param vhost: which vhost to initialize client ssl operations on - * - * You only need to call this if you plan on using SSL client connections on - * the vhost. For non-SSL client connections, it's not necessary to call this. - * - * The following members of info are used during the call - * - * - options must have LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT set, - * otherwise the call does nothing - * - provided_client_ssl_ctx must be NULL to get a generated client - * ssl context, otherwise you can pass a prepared one in by setting it - * - ssl_cipher_list may be NULL or set to the client valid cipher list - * - ssl_ca_filepath may be NULL or client cert filepath - * - ssl_cert_filepath may be NULL or client cert filepath - * - ssl_private_key_filepath may be NULL or client cert private key - * - * You must create your vhost explicitly if you want to use this, so you have - * a pointer to the vhost. Create the context first with the option flag - * LWS_SERVER_OPTION_EXPLICIT_VHOSTS and then call lws_create_vhost() with - * the same info struct. - */ -LWS_VISIBLE LWS_EXTERN int -lws_init_vhost_client_ssl(const struct lws_context_creation_info *info, - struct lws_vhost *vhost); -/** - * lws_http_client_read() - consume waiting received http client data - * - * \param wsi: client connection - * \param buf: pointer to buffer pointer - fill with pointer to your buffer - * \param len: pointer to chunk length - fill with max length of buffer - * - * This is called when the user code is notified client http data has arrived. - * The user code may choose to delay calling it to consume the data, for example - * waiting until an onward connection is writeable. - * - * For non-chunked connections, up to len bytes of buf are filled with the - * received content. len is set to the actual amount filled before return. - * - * For chunked connections, the linear buffer content contains the chunking - * headers and it cannot be passed in one lump. Instead, this function will - * call back LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ with in pointing to the - * chunk start and len set to the chunk length. There will be as many calls - * as there are chunks or partial chunks in the buffer. - */ -LWS_VISIBLE LWS_EXTERN int -lws_http_client_read(struct lws *wsi, char **buf, int *len); - -/** - * lws_http_client_http_response() - get last HTTP response code - * - * \param wsi: client connection - * - * Returns the last server response code, eg, 200 for client http connections. - * - * You should capture this during the LWS_CALLBACK_ESTABLISHED_CLIENT_HTTP - * callback, because after that the memory reserved for storing the related - * headers is freed and this value is lost. - */ -LWS_VISIBLE LWS_EXTERN unsigned int -lws_http_client_http_response(struct lws *wsi); - -/** - * lws_tls_client_vhost_extra_cert_mem() - add more certs to vh client tls ctx - * - * \param vh: the vhost to give more client certs to - * \param der: pointer to der format additional cert - * \param der_len: size in bytes of der - * - * After the vhost is created with one cert for client verification, you - * can add additional, eg, intermediate, certs to the client tls context - * of the vhost, for use with validating the incoming server cert(s). - */ -LWS_VISIBLE LWS_EXTERN int -lws_tls_client_vhost_extra_cert_mem(struct lws_vhost *vh, - const uint8_t *der, size_t der_len); - -/** - * lws_client_http_body_pending() - control if client connection needs to send body - * - * \param wsi: client connection - * \param something_left_to_send: nonzero if need to send more body, 0 (default) - * if nothing more to send - * - * If you will send payload data with your HTTP client connection, eg, for POST, - * when you set the related http headers in - * LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER callback you should also call - * this API with something_left_to_send nonzero, and call - * lws_callback_on_writable(wsi); - * - * After sending the headers, lws will call your callback with - * LWS_CALLBACK_CLIENT_HTTP_WRITEABLE reason when writable. You can send the - * next part of the http body payload, calling lws_callback_on_writable(wsi); - * if there is more to come, or lws_client_http_body_pending(wsi, 0); to - * let lws know the last part is sent and the connection can move on. - */ -LWS_VISIBLE LWS_EXTERN void -lws_client_http_body_pending(struct lws *wsi, int something_left_to_send); - -/** - * lws_client_http_multipart() - issue appropriate multipart header or trailer - * - * \param wsi: client connection - * \param name: multipart header name field, or NULL if end of multipart - * \param filename: multipart header filename field, or NULL if none - * \param content_type: multipart header content-type part, or NULL if none - * \param p: pointer to position in buffer - * \param end: end of buffer - * - * This issues a multipart mime boundary, or terminator if name = NULL. - * - * Returns 0 if OK or nonzero if couldn't fit in buffer - */ -LWS_VISIBLE LWS_EXTERN int -lws_client_http_multipart(struct lws *wsi, const char *name, - const char *filename, const char *content_type, - char **p, char *end); - -/** - * lws_http_basic_auth_gen() - helper to encode client basic auth string - * - * \param user: user name - * \param pw: password - * \param buf: where to store base64 result - * \param len: max usable size of buf - * - * Encodes a username and password in Basic Auth format for use with the - * Authorization header. On return, buf is filled with something like - * "Basic QWxhZGRpbjpPcGVuU2VzYW1l". - */ -LWS_VISIBLE LWS_EXTERN int -lws_http_basic_auth_gen(const char *user, const char *pw, char *buf, size_t len); - -///@} diff --git a/win64/include/websockets/libwebsockets/lws-context-vhost.h b/win64/include/websockets/libwebsockets/lws-context-vhost.h deleted file mode 100644 index 8e081285..00000000 --- a/win64/include/websockets/libwebsockets/lws-context-vhost.h +++ /dev/null @@ -1,1215 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup context-and-vhost context and vhost related functions - * ##Context and Vhost releated functions - * \ingroup lwsapi - * - * - * LWS requires that there is one context, in which you may define multiple - * vhosts. Each vhost is a virtual host, with either its own listen port - * or sharing an existing one. Each vhost has its own SSL context that can - * be set up individually or left disabled. - * - * If you don't care about multiple "site" support, you can ignore it and - * lws will create a single default vhost at context creation time. - */ -///@{ - -/* - * NOTE: These public enums are part of the abi. If you want to add one, - * add it at where specified so existing users are unaffected. - */ - - -#define LWS_SERVER_OPTION_REQUIRE_VALID_OPENSSL_CLIENT_CERT ((1ll << 1) | \ - (1ll << 12)) - /**< (VH) Don't allow the connection unless the client has a - * client cert that we recognize; provides - * LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT */ -#define LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME (1ll << 2) - /**< (CTX) Don't try to get the server's hostname */ -#define LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT ((1ll << 3) | \ - (1ll << 12)) - /**< (VH) Allow non-SSL (plaintext) connections on the same - * port as SSL is listening. If combined with - * LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS it will try to - * force http connections on an https listener (eg, http://x.com:443) to - * redirect to an explicit https connection (eg, https://x.com) - */ -#define LWS_SERVER_OPTION_LIBEV (1ll << 4) - /**< (CTX) Use libev event loop */ -#define LWS_SERVER_OPTION_DISABLE_IPV6 (1ll << 5) - /**< (VH) Disable IPV6 support */ -#define LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS (1ll << 6) - /**< (VH) Don't load OS CA certs, you will need to load your - * own CA cert(s) */ -#define LWS_SERVER_OPTION_PEER_CERT_NOT_REQUIRED (1ll << 7) - /**< (VH) Accept connections with no valid Cert (eg, selfsigned) */ -#define LWS_SERVER_OPTION_VALIDATE_UTF8 (1ll << 8) - /**< (VH) Check UT-8 correctness */ -#define LWS_SERVER_OPTION_SSL_ECDH ((1ll << 9) | \ - (1ll << 12)) - /**< (VH) initialize ECDH ciphers */ -#define LWS_SERVER_OPTION_LIBUV (1ll << 10) - /**< (CTX) Use libuv event loop */ -#define LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS ((1ll << 11) |\ - (1ll << 12)) - /**< (VH) Use an http redirect to force the client to ask for https. - * Notice if your http server issues the STS header and the client has - * ever seen that, the client will fail the http connection before it - * can actually do the redirect. - * - * Combine with LWS_SERVER_OPTION_REDIRECT_HTTP_TO_HTTPS to handle, eg, - * http://x.com:443 -> https://x.com - * - * (deprecated: use mount redirection) */ -#define LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT (1ll << 12) - /**< (CTX) Initialize the SSL library at all */ -#define LWS_SERVER_OPTION_EXPLICIT_VHOSTS (1ll << 13) - /**< (CTX) Only create the context when calling context - * create api, implies user code will create its own vhosts */ -#define LWS_SERVER_OPTION_UNIX_SOCK (1ll << 14) - /**< (VH) Use Unix socket */ -#define LWS_SERVER_OPTION_STS (1ll << 15) - /**< (VH) Send Strict Transport Security header, making - * clients subsequently go to https even if user asked for http */ -#define LWS_SERVER_OPTION_IPV6_V6ONLY_MODIFY (1ll << 16) - /**< (VH) Enable LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE to take effect */ -#define LWS_SERVER_OPTION_IPV6_V6ONLY_VALUE (1ll << 17) - /**< (VH) if set, only ipv6 allowed on the vhost */ -#define LWS_SERVER_OPTION_UV_NO_SIGSEGV_SIGFPE_SPIN (1ll << 18) - /**< (CTX) Libuv only: Do not spin on SIGSEGV / SIGFPE. A segfault - * normally makes the lib spin so you can attach a debugger to it - * even if it happened without a debugger in place. You can disable - * that by giving this option. - */ -#define LWS_SERVER_OPTION_JUST_USE_RAW_ORIGIN (1ll << 19) - /**< For backwards-compatibility reasons, by default - * lws prepends "http://" to the origin you give in the client - * connection info struct. If you give this flag when you create - * the context, only the string you give in the client connect - * info for .origin (if any) will be used directly. - */ -#define LWS_SERVER_OPTION_FALLBACK_TO_RAW /* use below name */ (1ll << 20) -#define LWS_SERVER_OPTION_FALLBACK_TO_APPLY_LISTEN_ACCEPT_CONFIG (1ll << 20) - /**< (VH) if invalid http is coming in the first line, then abandon - * trying to treat the connection as http, and belatedly apply the - * .listen_accept_role / .listen_accept_protocol info struct members to - * the connection. If they are NULL, for backwards-compatibility the - * connection is bound to "raw-skt" role, and in order of priority: - * 1) the vh protocol with a pvo named "raw", 2) the vh protocol with a - * pvo named "default", or 3) protocols[0]. - * - * Must be combined with LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT - * to work with a socket listening with tls. - */ - -#define LWS_SERVER_OPTION_LIBEVENT (1ll << 21) - /**< (CTX) Use libevent event loop */ - -#define LWS_SERVER_OPTION_ONLY_RAW /* Use below name instead */ (1ll << 22) -#define LWS_SERVER_OPTION_ADOPT_APPLY_LISTEN_ACCEPT_CONFIG (1ll << 22) - /**< (VH) All connections to this vhost / port are bound to the - * role and protocol given in .listen_accept_role / - * .listen_accept_protocol. - * - * If those explicit user-controlled names are NULL, for backwards- - * compatibility the connection is bound to "raw-skt" role, and in order - * of priority: 1) the vh protocol with a pvo named "raw", 2) the vh - * protocol with a pvo named "default", or 3) protocols[0]. - * - * It's much preferred to specify the role + protocol using the - * .listen_accept_role and .listen_accept_protocol in the info struct. - */ -#define LWS_SERVER_OPTION_ALLOW_LISTEN_SHARE (1ll << 23) - /**< (VH) Set to allow multiple listen sockets on one interface + - * address + port. The default is to strictly allow only one - * listen socket at a time. This is automatically selected if you - * have multiple service threads. Linux only. - */ -#define LWS_SERVER_OPTION_CREATE_VHOST_SSL_CTX (1ll << 24) - /**< (VH) Force setting up the vhost SSL_CTX, even though the user - * code doesn't explicitly provide a cert in the info struct. It - * implies the user code is going to provide a cert at the - * LWS_CALLBACK_OPENSSL_LOAD_EXTRA_SERVER_VERIFY_CERTS callback, which - * provides the vhost SSL_CTX * in the user parameter. - */ -#define LWS_SERVER_OPTION_SKIP_PROTOCOL_INIT (1ll << 25) - /**< (VH) You probably don't want this. It forces this vhost to not - * call LWS_CALLBACK_PROTOCOL_INIT on its protocols. It's used in the - * special case of a temporary vhost bound to a single protocol. - */ -#define LWS_SERVER_OPTION_IGNORE_MISSING_CERT (1ll << 26) - /**< (VH) Don't fail if the vhost TLS cert or key are missing, just - * continue. The vhost won't be able to serve anything, but if for - * example the ACME plugin was configured to fetch a cert, this lets - * you bootstrap your vhost from having no cert to start with. - */ -#define LWS_SERVER_OPTION_VHOST_UPG_STRICT_HOST_CHECK (1ll << 27) - /**< (VH) On this vhost, if the connection is being upgraded, insist - * that there's a Host: header and that the contents match the vhost - * name + port (443 / 80 are assumed if no :port given based on if the - * connection is using TLS). - * - * By default, without this flag, on upgrade lws just checks that the - * Host: header was given without checking the contents... this is to - * allow lax hostname mappings like localhost / 127.0.0.1, and CNAME - * mappings like www.mysite.com / mysite.com - */ -#define LWS_SERVER_OPTION_HTTP_HEADERS_SECURITY_BEST_PRACTICES_ENFORCE (1ll << 28) - /**< (VH) Send lws default HTTP headers recommended by Mozilla - * Observatory for security. This is a helper option that sends canned - * headers on each http response enabling a VERY strict Content Security - * Policy. The policy is so strict, for example it won't let the page - * run its own inline JS nor show images or take CSS from a different - * server. In many cases your JS only comes from your server as do the - * image sources and CSS, so that is what you want... attackers hoping - * to inject JS into your DOM are completely out of luck since even if - * they succeed, it will be rejected for execution by the browser - * according to the strict CSP. In other cases you have to deviate from - * the complete strictness, in which case don't use this flag: use the - * .headers member in the vhost init described in struct - * lws_context_creation_info instead to send the adapted headers - * yourself. - */ - -#define LWS_SERVER_OPTION_ALLOW_HTTP_ON_HTTPS_LISTENER (1ll << 29) - /**< (VH) If you really want to allow HTTP connections on a tls - * listener, you can do it with this combined with - * LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT. But this is allowing - * accidental loss of the security assurances provided by tls depending - * on the client using http when he meant https... it's not - * recommended. - */ -#define LWS_SERVER_OPTION_FAIL_UPON_UNABLE_TO_BIND (1ll << 30) - /**< (VH) When instantiating a new vhost and the specified port is - * already in use, a null value shall be return to signal the error. - */ - -#define LWS_SERVER_OPTION_H2_JUST_FIX_WINDOW_UPDATE_OVERFLOW (1ll << 31) - /**< (VH) Indicates the connections using this vhost should ignore - * h2 WINDOW_UPDATE from broken peers and fix them up */ - -#define LWS_SERVER_OPTION_VH_H2_HALF_CLOSED_LONG_POLL (1ll << 32) - /**< (VH) Tell the vhost to treat half-closed remote clients as - * entered into an immortal (ie, not subject to normal timeouts) long - * poll mode. - */ - -#define LWS_SERVER_OPTION_GLIB (1ll << 33) - /**< (CTX) Use glib event loop */ - -#define LWS_SERVER_OPTION_H2_PRIOR_KNOWLEDGE (1ll << 34) - /**< (VH) Tell the vhost to treat plain text http connections as - * H2 with prior knowledge (no upgrade request involved) - */ - -#define LWS_SERVER_OPTION_NO_LWS_SYSTEM_STATES (1ll << 35) - /**< (CTX) Disable lws_system state, eg, because we are a secure streams - * proxy client that is not trying to track system state by itself. */ - - /****** add new things just above ---^ ******/ - - -#define lws_check_opt(c, f) ((((uint64_t)c) & ((uint64_t)f)) == ((uint64_t)f)) - -struct lws_plat_file_ops; -struct lws_ss_policy; -struct lws_ss_plugin; - -typedef int (*lws_context_ready_cb_t)(struct lws_context *context); - -typedef int (*lws_peer_limits_notify_t)(struct lws_context *ctx, - lws_sockfd_type sockfd, - lws_sockaddr46 *sa46); - -/** struct lws_context_creation_info - parameters to create context and /or vhost with - * - * This is also used to create vhosts.... if LWS_SERVER_OPTION_EXPLICIT_VHOSTS - * is not given, then for backwards compatibility one vhost is created at - * context-creation time using the info from this struct. - * - * If LWS_SERVER_OPTION_EXPLICIT_VHOSTS is given, then no vhosts are created - * at the same time as the context, they are expected to be created afterwards. - */ -struct lws_context_creation_info { -#if defined(LWS_WITH_NETWORK) - const char *iface; - /**< VHOST: NULL to bind the listen socket to all interfaces, or the - * interface name, eg, "eth2" - * If options specifies LWS_SERVER_OPTION_UNIX_SOCK, this member is - * the pathname of a UNIX domain socket. you can use the UNIX domain - * sockets in abstract namespace, by prepending an at symbol to the - * socket name. */ - const struct lws_protocols *protocols; - /**< VHOST: Array of structures listing supported protocols and a - * protocol-specific callback for each one. The list is ended with an - * entry that has a NULL callback pointer. SEE ALSO .pprotocols below, - * which gives an alternative way to provide an array of pointers to - * protocol structs. */ -#if defined(LWS_ROLE_WS) - const struct lws_extension *extensions; - /**< VHOST: NULL or array of lws_extension structs listing the - * extensions this context supports. */ -#endif -#if defined(LWS_ROLE_H1) || defined(LWS_ROLE_H2) - const struct lws_token_limits *token_limits; - /**< CONTEXT: NULL or struct lws_token_limits pointer which is - * initialized with a token length limit for each possible WSI_TOKEN_ */ - const char *http_proxy_address; - /**< VHOST: If non-NULL, attempts to proxy via the given address. - * If proxy auth is required, use format - * "username:password\@server:port" */ - const struct lws_protocol_vhost_options *headers; - /**< VHOST: pointer to optional linked list of per-vhost - * canned headers that are added to server responses */ - - const struct lws_protocol_vhost_options *reject_service_keywords; - /**< CONTEXT: Optional list of keywords and rejection codes + text. - * - * The keywords are checked for existing in the user agent string. - * - * Eg, "badrobot" "404 Not Found" - */ - const struct lws_protocol_vhost_options *pvo; - /**< VHOST: pointer to optional linked list of per-vhost - * options made accessible to protocols */ - const char *log_filepath; - /**< VHOST: filepath to append logs to... this is opened before - * any dropping of initial privileges */ - const struct lws_http_mount *mounts; - /**< VHOST: optional linked list of mounts for this vhost */ - const char *server_string; - /**< CONTEXT: string used in HTTP headers to identify server - * software, if NULL, "libwebsockets". */ - - const char *error_document_404; - /**< VHOST: If non-NULL, when asked to serve a non-existent file, - * lws attempts to server this url path instead. Eg, - * "/404.html" */ - int port; - /**< VHOST: Port to listen on. Use CONTEXT_PORT_NO_LISTEN to suppress - * listening for a client. Use CONTEXT_PORT_NO_LISTEN_SERVER if you are - * writing a server but you are using \ref sock-adopt instead of the - * built-in listener. - * - * You can also set port to 0, in which case the kernel will pick - * a random port that is not already in use. You can find out what - * port the vhost is listening on using lws_get_vhost_listen_port() */ - - unsigned int http_proxy_port; - /**< VHOST: If http_proxy_address was non-NULL, uses this port */ - unsigned int max_http_header_data2; - /**< CONTEXT: if max_http_header_data is 0 and this - * is nonzero, this will be used in place of the default. It's - * like this for compatibility with the original short version, - * this is unsigned int length. */ - unsigned int max_http_header_pool2; - /**< CONTEXT: if max_http_header_pool is 0 and this - * is nonzero, this will be used in place of the default. It's - * like this for compatibility with the original short version: - * this is unsigned int length. */ - - int keepalive_timeout; - /**< VHOST: (default = 0 = 5s, 31s for http/2) seconds to allow remote - * client to hold on to an idle HTTP/1.1 connection. Timeout lifetime - * applied to idle h2 network connections */ - uint32_t http2_settings[7]; - /**< VHOST: if http2_settings[0] is nonzero, the values given in - * http2_settings[1]..[6] are used instead of the lws - * platform default values. - * Just leave all at 0 if you don't care. - */ - - unsigned short max_http_header_data; - /**< CONTEXT: The max amount of header payload that can be handled - * in an http request (unrecognized header payload is dropped) */ - unsigned short max_http_header_pool; - /**< CONTEXT: The max number of connections with http headers that - * can be processed simultaneously (the corresponding memory is - * allocated and deallocated dynamically as needed). If the pool is - * fully busy new incoming connections must wait for accept until one - * becomes free. 0 = allow as many ah as number of availble fds for - * the process */ - -#endif - -#if defined(LWS_WITH_TLS) - const char *ssl_private_key_password; - /**< VHOST: NULL or the passphrase needed for the private key. (For - * backwards compatibility, this can also be used to pass the client - * cert passphrase when setting up a vhost client SSL context, but it is - * preferred to use .client_ssl_private_key_password for that.) */ - const char *ssl_cert_filepath; - /**< VHOST: If libwebsockets was compiled to use ssl, and you want - * to listen using SSL, set to the filepath to fetch the - * server cert from, otherwise NULL for unencrypted. (For backwards - * compatibility, this can also be used to pass the client certificate - * when setting up a vhost client SSL context, but it is preferred to - * use .client_ssl_cert_filepath for that.) - * - * Notice you can alternatively set a single DER or PEM from a memory - * buffer as the vhost tls cert using \p server_ssl_cert_mem and - * \p server_ssl_cert_mem_len. - */ - const char *ssl_private_key_filepath; - /**< VHOST: filepath to private key if wanting SSL mode; - * if this is set to NULL but ssl_cert_filepath is set, the - * OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY callback is called - * to allow setting of the private key directly via openSSL - * library calls. (For backwards compatibility, this can also be used - * to pass the client cert private key filepath when setting up a - * vhost client SSL context, but it is preferred to use - * .client_ssl_private_key_filepath for that.) - * - * Notice you can alternatively set a DER or PEM private key from a - * memory buffer as the vhost tls private key using - * \p server_ssl_private_key_mem and \p server_ssl_private_key_mem_len. - */ - const char *ssl_ca_filepath; - /**< VHOST: CA certificate filepath or NULL. (For backwards - * compatibility, this can also be used to pass the client CA - * filepath when setting up a vhost client SSL context, - * but it is preferred to use .client_ssl_ca_filepath for that.) - * - * Notice you can alternatively set a DER or PEM CA cert from a memory - * buffer using \p server_ssl_ca_mem and \p server_ssl_ca_mem_len. - */ - const char *ssl_cipher_list; - /**< VHOST: List of valid ciphers to use ON TLS1.2 AND LOWER ONLY (eg, - * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" - * or you can leave it as NULL to get "DEFAULT" (For backwards - * compatibility, this can also be used to pass the client cipher - * list when setting up a vhost client SSL context, - * but it is preferred to use .client_ssl_cipher_list for that.) - * SEE .tls1_3_plus_cipher_list and .client_tls_1_3_plus_cipher_list - * for the equivalent for tls1.3. - */ - const char *ecdh_curve; - /**< VHOST: if NULL, defaults to initializing server with - * "prime256v1" */ - const char *tls1_3_plus_cipher_list; - /**< VHOST: List of valid ciphers to use for incoming server connections - * ON TLS1.3 AND ABOVE (eg, "TLS_CHACHA20_POLY1305_SHA256" on this vhost - * or you can leave it as NULL to get "DEFAULT". - * SEE .client_tls_1_3_plus_cipher_list to do the same on the vhost - * client SSL_CTX. - */ - - const void *server_ssl_cert_mem; - /**< VHOST: Alternative for \p ssl_cert_filepath that allows setting - * from memory instead of from a file. At most one of - * \p ssl_cert_filepath or \p server_ssl_cert_mem should be non-NULL. */ - const void *server_ssl_private_key_mem; - /**< VHOST: Alternative for \p ssl_private_key_filepath allowing - * init from a private key in memory instead of a file. At most one - * of \p ssl_private_key_filepath or \p server_ssl_private_key_mem - * should be non-NULL. */ - const void *server_ssl_ca_mem; - /**< VHOST: Alternative for \p ssl_ca_filepath allowing - * init from a CA cert in memory instead of a file. At most one - * of \p ssl_ca_filepath or \p server_ssl_ca_mem should be non-NULL. */ - - long ssl_options_set; - /**< VHOST: Any bits set here will be set as server SSL options */ - long ssl_options_clear; - /**< VHOST: Any bits set here will be cleared as server SSL options */ - int simultaneous_ssl_restriction; - /**< CONTEXT: 0 (no limit) or limit of simultaneous SSL sessions - * possible.*/ - int ssl_info_event_mask; - /**< VHOST: mask of ssl events to be reported on LWS_CALLBACK_SSL_INFO - * callback for connections on this vhost. The mask values are of - * the form SSL_CB_ALERT, defined in openssl/ssl.h. The default of - * 0 means no info events will be reported. - */ - unsigned int server_ssl_cert_mem_len; - /**< VHOST: Server SSL context init: length of server_ssl_cert_mem in - * bytes */ - unsigned int server_ssl_private_key_mem_len; - /**< VHOST: length of \p server_ssl_private_key_mem in memory */ - unsigned int server_ssl_ca_mem_len; - /**< VHOST: length of \p server_ssl_ca_mem in memory */ - - const char *alpn; - /**< CONTEXT: If non-NULL, default list of advertised alpn, comma- - * separated - * - * VHOST: If non-NULL, per-vhost list of advertised alpn, comma- - * separated - */ - - -#if defined(LWS_WITH_CLIENT) - const char *client_ssl_private_key_password; - /**< VHOST: Client SSL context init: NULL or the passphrase needed - * for the private key */ - const char *client_ssl_cert_filepath; - /**< VHOST: Client SSL context init: The certificate the client - * should present to the peer on connection */ - const void *client_ssl_cert_mem; - /**< VHOST: Client SSL context init: client certificate memory buffer or - * NULL... use this to load client cert from memory instead of file */ - unsigned int client_ssl_cert_mem_len; - /**< VHOST: Client SSL context init: length of client_ssl_cert_mem in - * bytes */ - const char *client_ssl_private_key_filepath; - /**< VHOST: Client SSL context init: filepath to client private key - * if this is set to NULL but client_ssl_cert_filepath is set, you - * can handle the LWS_CALLBACK_OPENSSL_LOAD_EXTRA_CLIENT_VERIFY_CERTS - * callback of protocols[0] to allow setting of the private key directly - * via tls library calls */ - const void *client_ssl_key_mem; - /**< VHOST: Client SSL context init: client key memory buffer or - * NULL... use this to load client key from memory instead of file */ - const char *client_ssl_ca_filepath; - /**< VHOST: Client SSL context init: CA certificate filepath or NULL */ - const void *client_ssl_ca_mem; - /**< VHOST: Client SSL context init: CA certificate memory buffer or - * NULL... use this to load CA cert from memory instead of file */ - - const char *client_ssl_cipher_list; - /**< VHOST: Client SSL context init: List of valid ciphers to use (eg, - * "RC4-MD5:RC4-SHA:AES128-SHA:AES256-SHA:HIGH:!DSS:!aNULL" - * or you can leave it as NULL to get "DEFAULT" */ - const char *client_tls_1_3_plus_cipher_list; - /**< VHOST: List of valid ciphers to use for outgoing client connections - * ON TLS1.3 AND ABOVE on this vhost (eg, - * "TLS_CHACHA20_POLY1305_SHA256") or you can leave it as NULL to get - * "DEFAULT". - */ - - long ssl_client_options_set; - /**< VHOST: Any bits set here will be set as CLIENT SSL options */ - long ssl_client_options_clear; - /**< VHOST: Any bits set here will be cleared as CLIENT SSL options */ - - - unsigned int client_ssl_ca_mem_len; - /**< VHOST: Client SSL context init: length of client_ssl_ca_mem in - * bytes */ - unsigned int client_ssl_key_mem_len; - /**< VHOST: Client SSL context init: length of client_ssl_key_mem in - * bytes */ - -#endif - -#if !defined(LWS_WITH_MBEDTLS) - SSL_CTX *provided_client_ssl_ctx; - /**< CONTEXT: If non-null, swap out libwebsockets ssl - * implementation for the one provided by provided_ssl_ctx. - * Libwebsockets no longer is responsible for freeing the context - * if this option is selected. */ -#endif -#endif - - int ka_time; - /**< CONTEXT: 0 for no TCP keepalive, otherwise apply this keepalive - * timeout to all libwebsocket sockets, client or server */ - int ka_probes; - /**< CONTEXT: if ka_time was nonzero, after the timeout expires how many - * times to try to get a response from the peer before giving up - * and killing the connection */ - int ka_interval; - /**< CONTEXT: if ka_time was nonzero, how long to wait before each ka_probes - * attempt */ - unsigned int timeout_secs; - /**< VHOST: various processes involving network roundtrips in the - * library are protected from hanging forever by timeouts. If - * nonzero, this member lets you set the timeout used in seconds. - * Otherwise a default timeout is used. */ - unsigned int connect_timeout_secs; - /**< VHOST: client connections have this long to find a working server - * from the DNS results, or the whole connection times out. If zero, - * a default timeout is used */ - int bind_iface; - /**< VHOST: nonzero to strictly bind sockets to the interface name in - * .iface (eg, "eth2"), using SO_BIND_TO_DEVICE. - * - * Requires SO_BINDTODEVICE support from your OS and CAP_NET_RAW - * capability. - * - * Notice that common things like access network interface IP from - * your local machine use your lo / loopback interface and will be - * disallowed by this. - */ - unsigned int timeout_secs_ah_idle; - /**< VHOST: seconds to allow a client to hold an ah without using it. - * 0 defaults to 10s. */ -#endif /* WITH_NETWORK */ - - int gid; - /**< CONTEXT: group id to change to after setting listen socket, - * or -1. See also .username below. */ - int uid; - /**< CONTEXT: user id to change to after setting listen socket, - * or -1. See also .groupname below. */ - uint64_t options; - /**< VHOST + CONTEXT: 0, or LWS_SERVER_OPTION_... bitfields */ - void *user; - /**< VHOST + CONTEXT: optional user pointer that will be associated - * with the context when creating the context (and can be retrieved by - * lws_context_user(context), or with the vhost when creating the vhost - * (and can be retrieved by lws_vhost_user(vhost)). You will need to - * use LWS_SERVER_OPTION_EXPLICIT_VHOSTS and create the vhost separately - * if you care about giving the context and vhost different user pointer - * values. - */ - unsigned int count_threads; - /**< CONTEXT: how many contexts to create in an array, 0 = 1 */ - unsigned int fd_limit_per_thread; - /**< CONTEXT: nonzero means restrict each service thread to this - * many fds, 0 means the default which is divide the process fd - * limit by the number of threads. - * - * Note if this is nonzero, and fd_limit_per_thread multiplied by the - * number of service threads is less than the process ulimit, then lws - * restricts internal lookup table allocation to the smaller size, and - * switches to a less efficient lookup scheme. You should use this to - * trade off speed against memory usage if you know the lws context - * will only use a handful of fds. - * - * Bear in mind lws may use some fds internally, for example for the - * cancel pipe, so you may need to allow for some extras for normal - * operation. - */ - const char *vhost_name; - /**< VHOST: name of vhost, must match external DNS name used to - * access the site, like "warmcat.com" as it's used to match - * Host: header and / or SNI name for SSL. */ -#if defined(LWS_WITH_PLUGINS) - const char * const *plugin_dirs; - /**< CONTEXT: NULL, or NULL-terminated array of directories to - * scan for lws protocol plugins at context creation time */ -#endif - void *external_baggage_free_on_destroy; - /**< CONTEXT: NULL, or pointer to something externally malloc'd, that - * should be freed when the context is destroyed. This allows you to - * automatically sync the freeing action to the context destruction - * action, so there is no need for an external free() if the context - * succeeded to create. - */ - - - unsigned int pt_serv_buf_size; - /**< CONTEXT: 0 = default of 4096. This buffer is used by - * various service related features including file serving, it - * defines the max chunk of file that can be sent at once. - * At the risk of lws having to buffer failed large sends, it - * can be increased to, eg, 128KiB to improve throughput. */ -#if defined(LWS_WITH_FILE_OPS) - const struct lws_plat_file_ops *fops; - /**< CONTEXT: NULL, or pointer to an array of fops structs, terminated - * by a sentinel with NULL .open. - * - * If NULL, lws provides just the platform file operations struct for - * backwards compatibility. - */ -#endif - -#if defined(LWS_WITH_SOCKS5) - const char *socks_proxy_address; - /**< VHOST: If non-NULL, attempts to proxy via the given address. - * If proxy auth is required, use format - * "username:password\@server:port" */ - unsigned int socks_proxy_port; - /**< VHOST: If socks_proxy_address was non-NULL, uses this port - * if nonzero, otherwise requires "server:port" in .socks_proxy_address - */ -#endif - -#if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP) - cap_value_t caps[4]; - /**< CONTEXT: array holding Linux capabilities you want to - * continue to be available to the server after it transitions - * to a noprivileged user. Usually none are needed but for, eg, - * .bind_iface, CAP_NET_RAW is required. This gives you a way - * to still have the capability but drop root. - */ - char count_caps; - /**< CONTEXT: count of Linux capabilities in .caps[]. 0 means - * no capabilities will be inherited from root (the default) */ -#endif - void **foreign_loops; - /**< CONTEXT: This is ignored if the context is not being started with - * an event loop, ie, .options has a flag like - * LWS_SERVER_OPTION_LIBUV. - * - * NULL indicates lws should start its own even loop for - * each service thread, and deal with closing the loops - * when the context is destroyed. - * - * Non-NULL means it points to an array of external - * ("foreign") event loops that are to be used in turn for - * each service thread. In the default case of 1 service - * thread, it can just point to one foreign event loop. - */ - void (*signal_cb)(void *event_lib_handle, int signum); - /**< CONTEXT: NULL: default signal handling. Otherwise this receives - * the signal handler callback. event_lib_handle is the - * native event library signal handle, eg uv_signal_t * - * for libuv. - */ - struct lws_context **pcontext; - /**< CONTEXT: if non-NULL, at the end of context destroy processing, - * the pointer pointed to by pcontext is written with NULL. You can - * use this to let foreign event loops know that lws context destruction - * is fully completed. - */ - void (*finalize)(struct lws_vhost *vh, void *arg); - /**< VHOST: NULL, or pointer to function that will be called back - * when the vhost is just about to be freed. The arg parameter - * will be set to whatever finalize_arg is below. - */ - void *finalize_arg; - /**< VHOST: opaque pointer lws ignores but passes to the finalize - * callback. If you don't care, leave it NULL. - */ - const char *listen_accept_role; - /**< VHOST: NULL for default, or force accepted incoming connections to - * bind to this role. Uses the role names from their ops struct, eg, - * "raw-skt". - */ - const char *listen_accept_protocol; - /**< VHOST: NULL for default, or force accepted incoming connections to - * bind to this vhost protocol name. - */ - const struct lws_protocols **pprotocols; - /**< VHOST: NULL: use .protocols, otherwise ignore .protocols and use - * this array of pointers to protocols structs. The end of the array - * is marked by a NULL pointer. - * - * This is preferred over .protocols, because it allows the protocol - * struct to be opaquely defined elsewhere, with just a pointer to it - * needed to create the context with it. .protocols requires also - * the type of the user data to be known so its size can be given. - */ - - const char *username; /**< CONTEXT: string username for post-init - * permissions. Like .uid but takes a string username. */ - const char *groupname; /**< CONTEXT: string groupname for post-init - * permissions. Like .gid but takes a string groupname. */ - const char *unix_socket_perms; /**< VHOST: if your vhost is listening - * on a unix socket, you can give a "username:groupname" string here - * to control the owner:group it's created with. It's always created - * with 0660 mode. */ - const lws_system_ops_t *system_ops; - /**< CONTEXT: hook up lws_system_ apis to system-specific - * implementations */ -#if defined(LWS_WITH_DETAILED_LATENCY) - det_lat_buf_cb_t detailed_latency_cb; - /**< CONTEXT: NULL, or callback to receive detailed latency information - * collected for each read and write */ - const char *detailed_latency_filepath; - /**< CONTEXT: NULL, or filepath to put latency data into */ -#endif - const lws_retry_bo_t *retry_and_idle_policy; - /**< VHOST: optional retry and idle policy to apply to this vhost. - * Currently only the idle parts are applied to the connections. - */ -#if defined(LWS_WITH_SYS_STATE) - lws_state_notify_link_t * const *register_notifier_list; - /**< CONTEXT: NULL, or pointer to an array of notifiers that should - * be registered during context creation, so they can see state change - * events from very early on. The array should end with a NULL. */ -#endif -#if defined(LWS_WITH_SECURE_STREAMS) -#if defined(LWS_WITH_SECURE_STREAMS_STATIC_POLICY_ONLY) - const struct lws_ss_policy *pss_policies; /**< CONTEXT: point to first - * in a linked-list of streamtype policies prepared by user code */ -#else - const char *pss_policies_json; /**< CONTEXT: point to a string - * containing a JSON description of the secure streams policies. Set - * to NULL if not using Secure Streams. */ -#endif - const struct lws_ss_plugin **pss_plugins; /**< CONTEXT: point to an array - * of pointers to plugin structs here, terminated with a NULL ptr. - * Set to NULL if not using Secure Streams. */ - const char *ss_proxy_bind; /**< CONTEXT: NULL, or: ss_proxy_port == 0: - * point to a string giving the Unix Domain Socket address to use (start - * with @ for abstract namespace), ss_proxy_port nonzero: set the - * network interface address (not name, it's ambiguous for ipv4/6) to - * bind the tcp connection to the proxy to */ - const char *ss_proxy_address; /**< CONTEXT: NULL, or if ss_proxy_port - * nonzero: the tcp address of the ss proxy to connect to */ - uint16_t ss_proxy_port; /* 0 = if connecting to ss proxy, do it via a - * Unix Domain Socket, "+@proxy.ss.lws" if ss_proxy_bind is NULL else - * the socket path given in ss_proxy_bind (start it with a + or +@); - * nonzero means connect via a tcp socket to the tcp address in - * ss_proxy_bind and the given port */ -#endif - - int rlimit_nofile; - /**< 0 = inherit the initial ulimit for files / sockets from the startup - * environment. Nonzero = try to set the limit for this process. - */ -#if defined(LWS_WITH_PEER_LIMITS) - lws_peer_limits_notify_t pl_notify_cb; - /**< CONTEXT: NULL, or a callback to receive notifications each time a - * connection is being dropped because of peer limits. - * - * The callback provides the context, and an lws_sockaddr46 with the - * peer address and port. - */ - unsigned short ip_limit_ah; - /**< CONTEXT: max number of ah a single IP may use simultaneously - * 0 is no limit. This is a soft limit: if the limit is - * reached, connections from that IP will wait in the ah - * waiting list and not be able to acquire an ah until - * a connection belonging to the IP relinquishes one it - * already has. - */ - unsigned short ip_limit_wsi; - /**< CONTEXT: max number of wsi a single IP may use simultaneously. - * 0 is no limit. This is a hard limit, connections from - * the same IP will simply be dropped once it acquires the - * amount of simultaneous wsi / accepted connections - * given here. - */ - -#endif /* PEER_LIMITS */ -#if defined(LWS_WITH_UDP) - uint8_t udp_loss_sim_tx_pc; - /**< CONTEXT: percentage of udp writes we could have performed - * to instead not do, in order to simulate and test udp retry flow */ - uint8_t udp_loss_sim_rx_pc; - /**< CONTEXT: percentage of udp reads we actually received - * to make disappear, in order to simulate and test udp retry flow */ -#endif - -#if defined(LWS_WITH_SYS_SMD) - lws_smd_notification_cb_t early_smd_cb; - /**< CONTEXT: NULL, or an smd notification callback that will be registered - * immediately after the smd in the context is initialized. This ensures - * you can get all notifications without having to intercept the event loop - * creation, eg, when using an event library. Other callbacks can be - * registered later manually without problems. - */ - void *early_smd_opaque; - lws_smd_class_t early_smd_class_filter; -#endif - - /* Add new things just above here ---^ - * This is part of the ABI, don't needlessly break compatibility - * - * The below is to ensure later library versions with new - * members added above will see 0 (default) even if the app - * was not built against the newer headers. - */ - - void *_unused[2]; /**< dummy */ -}; - -/** - * lws_create_context() - Create the websocket handler - * \param info: pointer to struct with parameters - * - * This function creates the listening socket (if serving) and takes care - * of all initialization in one step. - * - * If option LWS_SERVER_OPTION_EXPLICIT_VHOSTS is given, no vhost is - * created; you're expected to create your own vhosts afterwards using - * lws_create_vhost(). Otherwise a vhost named "default" is also created - * using the information in the vhost-related members, for compatibility. - * - * After initialization, it returns a struct lws_context * that - * represents this server. After calling, user code needs to take care - * of calling lws_service() with the context pointer to get the - * server's sockets serviced. This must be done in the same process - * context as the initialization call. - * - * The protocol callback functions are called for a handful of events - * including http requests coming in, websocket connections becoming - * established, and data arriving; it's also called periodically to allow - * async transmission. - * - * HTTP requests are sent always to the FIRST protocol in protocol, since - * at that time websocket protocol has not been negotiated. Other - * protocols after the first one never see any HTTP callback activity. - * - * The server created is a simple http server by default; part of the - * websocket standard is upgrading this http connection to a websocket one. - * - * This allows the same server to provide files like scripts and favicon / - * images or whatever over http and dynamic data over websockets all in - * one place; they're all handled in the user callback. - */ -LWS_VISIBLE LWS_EXTERN struct lws_context * -lws_create_context(const struct lws_context_creation_info *info); - - -/** - * lws_context_destroy() - Destroy the websocket context - * \param context: Websocket context - * - * This function closes any active connections and then frees the - * context. After calling this, any further use of the context is - * undefined. - */ -LWS_VISIBLE LWS_EXTERN void -lws_context_destroy(struct lws_context *context); - -typedef int (*lws_reload_func)(void); - -/** - * lws_context_deprecate() - Deprecate the websocket context - * - * \param context: Websocket context - * \param cb: Callback notified when old context listen sockets are closed - * - * This function is used on an existing context before superceding it - * with a new context. - * - * It closes any listen sockets in the context, so new connections are - * not possible. - * - * And it marks the context to be deleted when the number of active - * connections into it falls to zero. - * - * This is aimed at allowing seamless configuration reloads. - * - * The callback cb will be called after the listen sockets are actually - * closed and may be reopened. In the callback the new context should be - * configured and created. (With libuv, socket close happens async after - * more loop events). - */ -LWS_VISIBLE LWS_EXTERN void -lws_context_deprecate(struct lws_context *context, lws_reload_func cb); - -LWS_VISIBLE LWS_EXTERN int -lws_context_is_deprecated(struct lws_context *context); - -/** - * lws_set_proxy() - Setups proxy to lws_context. - * \param vhost: pointer to struct lws_vhost you want set proxy for - * \param proxy: pointer to c string containing proxy in format address:port - * - * Returns 0 if proxy string was parsed and proxy was setup. - * Returns -1 if proxy is NULL or has incorrect format. - * - * This is only required if your OS does not provide the http_proxy - * environment variable (eg, OSX) - * - * IMPORTANT! You should call this function right after creation of the - * lws_context and before call to connect. If you call this - * function after connect behavior is undefined. - * This function will override proxy settings made on lws_context - * creation with genenv() call. - */ -LWS_VISIBLE LWS_EXTERN int -lws_set_proxy(struct lws_vhost *vhost, const char *proxy); - -/** - * lws_set_socks() - Setup socks to lws_context. - * \param vhost: pointer to struct lws_vhost you want set socks for - * \param socks: pointer to c string containing socks in format address:port - * - * Returns 0 if socks string was parsed and socks was setup. - * Returns -1 if socks is NULL or has incorrect format. - * - * This is only required if your OS does not provide the socks_proxy - * environment variable (eg, OSX) - * - * IMPORTANT! You should call this function right after creation of the - * lws_context and before call to connect. If you call this - * function after connect behavior is undefined. - * This function will override proxy settings made on lws_context - * creation with genenv() call. - */ -LWS_VISIBLE LWS_EXTERN int -lws_set_socks(struct lws_vhost *vhost, const char *socks); - -struct lws_vhost; - -/** - * lws_create_vhost() - Create a vhost (virtual server context) - * \param context: pointer to result of lws_create_context() - * \param info: pointer to struct with parameters - * - * This function creates a virtual server (vhost) using the vhost-related - * members of the info struct. You can create many vhosts inside one context - * if you created the context with the option LWS_SERVER_OPTION_EXPLICIT_VHOSTS - */ -LWS_VISIBLE LWS_EXTERN struct lws_vhost * -lws_create_vhost(struct lws_context *context, - const struct lws_context_creation_info *info); - -/** - * lws_vhost_destroy() - Destroy a vhost (virtual server context) - * - * \param vh: pointer to result of lws_create_vhost() - * - * This function destroys a vhost. Normally, if you just want to exit, - * then lws_destroy_context() will take care of everything. If you want - * to destroy an individual vhost and all connections and allocations, you - * can do it with this. - * - * If the vhost has a listen sockets shared by other vhosts, it will be given - * to one of the vhosts sharing it rather than closed. - * - * The vhost close is staged according to the needs of the event loop, and if - * there are multiple service threads. At the point the vhost itself if - * about to be freed, if you provided a finalize callback and optional arg at - * vhost creation time, it will be called just before the vhost is freed. - */ -LWS_VISIBLE LWS_EXTERN void -lws_vhost_destroy(struct lws_vhost *vh); - -/** - * lwsws_get_config_globals() - Parse a JSON server config file - * \param info: pointer to struct with parameters - * \param d: filepath of the config file - * \param config_strings: storage for the config strings extracted from JSON, - * the pointer is incremented as strings are stored - * \param len: pointer to the remaining length left in config_strings - * the value is decremented as strings are stored - * - * This function prepares a n lws_context_creation_info struct with global - * settings from a file d. - * - * Requires CMake option LWS_WITH_LEJP_CONF to have been enabled - */ -LWS_VISIBLE LWS_EXTERN int -lwsws_get_config_globals(struct lws_context_creation_info *info, const char *d, - char **config_strings, int *len); - -/** - * lwsws_get_config_vhosts() - Create vhosts from a JSON server config file - * \param context: pointer to result of lws_create_context() - * \param info: pointer to struct with parameters - * \param d: filepath of the config file - * \param config_strings: storage for the config strings extracted from JSON, - * the pointer is incremented as strings are stored - * \param len: pointer to the remaining length left in config_strings - * the value is decremented as strings are stored - * - * This function creates vhosts into a context according to the settings in - *JSON files found in directory d. - * - * Requires CMake option LWS_WITH_LEJP_CONF to have been enabled - */ -LWS_VISIBLE LWS_EXTERN int -lwsws_get_config_vhosts(struct lws_context *context, - struct lws_context_creation_info *info, const char *d, - char **config_strings, int *len); - -/** - * lws_get_vhost() - return the vhost a wsi belongs to - * - * \param wsi: which connection - */ -LWS_VISIBLE LWS_EXTERN struct lws_vhost * -lws_get_vhost(struct lws *wsi); - -/** - * lws_get_vhost_name() - returns the name of a vhost - * - * \param vhost: which vhost - */ -LWS_VISIBLE LWS_EXTERN const char * -lws_get_vhost_name(struct lws_vhost *vhost); - -/** - * lws_get_vhost_by_name() - returns the vhost with the requested name, or NULL - * - * \param context: the lws_context to look in - * \param name: vhost name we are looking for - * - * Returns NULL, or the vhost with the name \p name - */ -LWS_VISIBLE LWS_EXTERN struct lws_vhost * -lws_get_vhost_by_name(struct lws_context *context, const char *name); - -/** - * lws_get_vhost_port() - returns the port a vhost listens on, or -1 - * - * \param vhost: which vhost - */ -LWS_VISIBLE LWS_EXTERN int -lws_get_vhost_port(struct lws_vhost *vhost); - -/** - * lws_get_vhost_user() - returns the user pointer for the vhost - * - * \param vhost: which vhost - */ -LWS_VISIBLE LWS_EXTERN void * -lws_get_vhost_user(struct lws_vhost *vhost); - -/** - * lws_get_vhost_iface() - returns the binding for the vhost listen socket - * - * \param vhost: which vhost - */ -LWS_VISIBLE LWS_EXTERN const char * -lws_get_vhost_iface(struct lws_vhost *vhost); - -/** - * lws_json_dump_vhost() - describe vhost state and stats in JSON - * - * \param vh: the vhost - * \param buf: buffer to fill with JSON - * \param len: max length of buf - */ -LWS_VISIBLE LWS_EXTERN int -lws_json_dump_vhost(const struct lws_vhost *vh, char *buf, int len); - -/** - * lws_json_dump_context() - describe context state and stats in JSON - * - * \param context: the context - * \param buf: buffer to fill with JSON - * \param len: max length of buf - * \param hide_vhosts: nonzero to not provide per-vhost mount etc information - * - * Generates a JSON description of vhost state into buf - */ -LWS_VISIBLE LWS_EXTERN int -lws_json_dump_context(const struct lws_context *context, char *buf, int len, - int hide_vhosts); - -/** - * lws_vhost_user() - get the user data associated with the vhost - * \param vhost: Websocket vhost - * - * This returns the optional user pointer that can be attached to - * a vhost when it was created. Lws never dereferences this pointer, it only - * sets it when the vhost is created, and returns it using this api. - */ -LWS_VISIBLE LWS_EXTERN void * -lws_vhost_user(struct lws_vhost *vhost); - -/** - * lws_context_user() - get the user data associated with the context - * \param context: Websocket context - * - * This returns the optional user allocation that can be attached to - * the context the sockets live in at context_create time. It's a way - * to let all sockets serviced in the same context share data without - * using globals statics in the user code. - */ -LWS_VISIBLE LWS_EXTERN void * -lws_context_user(struct lws_context *context); - -/*! \defgroup vhost-mounts Vhost mounts and options - * \ingroup context-and-vhost-creation - * - * ##Vhost mounts and options - */ -///@{ -/** struct lws_protocol_vhost_options - linked list of per-vhost protocol - * name=value options - * - * This provides a general way to attach a linked-list of name=value pairs, - * which can also have an optional child link-list using the options member. - */ -struct lws_protocol_vhost_options { - const struct lws_protocol_vhost_options *next; /**< linked list */ - const struct lws_protocol_vhost_options *options; /**< child linked-list of more options for this node */ - const char *name; /**< name of name=value pair */ - const char *value; /**< value of name=value pair */ -}; - -/** enum lws_mount_protocols - * This specifies the mount protocol for a mountpoint, whether it is to be - * served from a filesystem, or it is a cgi etc. - */ -enum lws_mount_protocols { - LWSMPRO_HTTP = 0, /**< http reverse proxy */ - LWSMPRO_HTTPS = 1, /**< https reverse proxy */ - LWSMPRO_FILE = 2, /**< serve from filesystem directory */ - LWSMPRO_CGI = 3, /**< pass to CGI to handle */ - LWSMPRO_REDIR_HTTP = 4, /**< redirect to http:// url */ - LWSMPRO_REDIR_HTTPS = 5, /**< redirect to https:// url */ - LWSMPRO_CALLBACK = 6, /**< hand by named protocol's callback */ -}; - -/** enum lws_authentication_mode - * This specifies the authentication mode of the mount. The basic_auth_login_file mount parameter - * is ignored unless LWSAUTHM_DEFAULT is set. - */ -enum lws_authentication_mode { - LWSAUTHM_DEFAULT = 0, /**< default authenticate only if basic_auth_login_file is provided */ - LWSAUTHM_BASIC_AUTH_CALLBACK = 1 << 28 /**< Basic auth with a custom verifier */ -}; - -/** The authentication mode is stored in the top 4 bits of lws_http_mount.auth_mask */ -#define AUTH_MODE_MASK 0xF0000000 - -/** struct lws_http_mount - * - * arguments for mounting something in a vhost's url namespace - */ -struct lws_http_mount { - const struct lws_http_mount *mount_next; - /**< pointer to next struct lws_http_mount */ - const char *mountpoint; - /**< mountpoint in http pathspace, eg, "/" */ - const char *origin; - /**< path to be mounted, eg, "/var/www/warmcat.com" */ - const char *def; - /**< default target, eg, "index.html" */ - const char *protocol; - /**<"protocol-name" to handle mount */ - - const struct lws_protocol_vhost_options *cgienv; - /**< optional linked-list of cgi options. These are created - * as environment variables for the cgi process - */ - const struct lws_protocol_vhost_options *extra_mimetypes; - /**< optional linked-list of mimetype mappings */ - const struct lws_protocol_vhost_options *interpret; - /**< optional linked-list of files to be interpreted */ - - int cgi_timeout; - /**< seconds cgi is allowed to live, if cgi://mount type */ - int cache_max_age; - /**< max-age for reuse of client cache of files, seconds */ - unsigned int auth_mask; - /**< bits set here must be set for authorized client session */ - - unsigned int cache_reusable:1; /**< set if client cache may reuse this */ - unsigned int cache_revalidate:1; /**< set if client cache should revalidate on use */ - unsigned int cache_intermediaries:1; /**< set if intermediaries are allowed to cache */ - - unsigned char origin_protocol; /**< one of enum lws_mount_protocols */ - unsigned char mountpoint_len; /**< length of mountpoint string */ - - const char *basic_auth_login_file; - /**<NULL, or filepath to use to check basic auth logins against. (requires LWSAUTHM_DEFAULT) */ - - /* Add new things just above here ---^ - * This is part of the ABI, don't needlessly break compatibility - * - * The below is to ensure later library versions with new - * members added above will see 0 (default) even if the app - * was not built against the newer headers. - */ - - void *_unused[2]; /**< dummy */ -}; - -///@} -///@} diff --git a/win64/include/websockets/libwebsockets/lws-dbus.h b/win64/include/websockets/libwebsockets/lws-dbus.h deleted file mode 100644 index 2a82d810..00000000 --- a/win64/include/websockets/libwebsockets/lws-dbus.h +++ /dev/null @@ -1,94 +0,0 @@ - /* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * must be included manually as - * - * #include <libwebsockets/lws-dbus.h> - * - * if dbus apis needed - */ - -#if !defined(__LWS_DBUS_H__) -#define __LWS_DBUS_H__ - -#include <dbus/dbus.h> - -/* helper type to simplify implementing methods as individual functions */ -typedef DBusHandlerResult (*lws_dbus_message_handler)(DBusConnection *conn, - DBusMessage *message, DBusMessage **reply, void *d); - -struct lws_dbus_ctx; -typedef void (*lws_dbus_closing_t)(struct lws_dbus_ctx *ctx); - -struct lws_dbus_ctx { - struct lws_dll2_owner owner; /* dbusserver ctx: HEAD of accepted list */ - struct lws_dll2 next; /* dbusserver ctx: HEAD of accepted list */ - struct lws_vhost *vh; /* the vhost we logically bind to in lws */ - int tsi; /* the lws thread service index (0 if only one service - thread as is the default */ - DBusConnection *conn; - DBusServer *dbs; - DBusWatch *w[4]; - DBusPendingCall *pc; - - char hup; - char timeouts; - - /* cb_closing callback will be called after the connection and this - * related ctx struct have effectively gone out of scope. - * - * The callback should close and clean up the connection and free the - * ctx. - */ - lws_dbus_closing_t cb_closing; -}; - -/** - * lws_dbus_connection_setup() - bind dbus connection object to lws event loop - * - * \param ctx: additional information about the connection - * \param conn: the DBusConnection object to bind - * - * This configures a DBusConnection object to use lws for watchers and timeout - * operations. - */ -LWS_VISIBLE LWS_EXTERN int -lws_dbus_connection_setup(struct lws_dbus_ctx *ctx, DBusConnection *conn, - lws_dbus_closing_t cb_closing); - -/** - * lws_dbus_server_listen() - bind dbus connection object to lws event loop - * - * \param ctx: additional information about the connection - * \param ads: the DBUS address to listen on, eg, "unix:abstract=mysocket" - * \param err: a DBusError object to take any extra error information - * \param new_conn: a callback function to prepare new accepted connections - * - * This creates a DBusServer and binds it to the lws event loop, and your - * callback to accept new connections. - */ -LWS_VISIBLE LWS_EXTERN DBusServer * -lws_dbus_server_listen(struct lws_dbus_ctx *ctx, const char *ads, - DBusError *err, DBusNewConnectionFunction new_conn); - -#endif diff --git a/win64/include/websockets/libwebsockets/lws-detailed-latency.h b/win64/include/websockets/libwebsockets/lws-detailed-latency.h deleted file mode 100644 index 1b352c7a..00000000 --- a/win64/include/websockets/libwebsockets/lws-detailed-latency.h +++ /dev/null @@ -1,140 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * included from libwebsockets.h - */ - -enum { - - /* types of latency, all nonblocking except name resolution */ - - LDLT_READ, /* time taken to read LAT_DUR_PROXY_RX_TO_CLIENT_WRITE */ - LDLT_WRITE, - LDLT_NAME_RESOLUTION, /* BLOCKING: LAT_DUR_PROXY_CLIENT_REQ_TO_WRITE */ - LDLT_CONNECTION, /* conn duration: LAT_DUR_PROXY_CLIENT_REQ_TO_WRITE */ - LDLT_TLS_NEG_CLIENT, /* tls conn duration: LAT_DUR_PROXY_CLIENT_REQ_TO_WRITE */ - LDLT_TLS_NEG_SERVER, /* tls conn duration: LAT_DUR_PROXY_CLIENT_REQ_TO_WRITE */ - - LDLT_USER, - - /* interval / duration elements in latencies array */ - - LAT_DUR_PROXY_CLIENT_REQ_TO_WRITE = 0, - /* us the client spent waiting to write to proxy */ - LAT_DUR_PROXY_CLIENT_WRITE_TO_PROXY_RX, - /* us the packet took to be received by proxy */ - LAT_DUR_PROXY_PROXY_REQ_TO_WRITE, - /* us the proxy has to wait before it could write */ - LAT_DUR_PROXY_RX_TO_ONWARD_TX, - /* us the proxy spent waiting to write to destination, or - * if nonproxied, then time between write request and write */ - - LAT_DUR_USERCB, /* us duration of user callback */ - - LAT_DUR_STEPS /* last */ -}; - -typedef struct lws_detlat { - lws_usec_t earliest_write_req; - lws_usec_t earliest_write_req_pre_write; - /**< use this for interval comparison */ - const char *aux; /* name for name resolution timing */ - int type; - uint32_t latencies[LAT_DUR_STEPS]; - size_t req_size; - size_t acc_size; -} lws_detlat_t; - -typedef int (*det_lat_buf_cb_t)(struct lws_context *context, - const lws_detlat_t *d); - -/** - * lws_det_lat_cb() - inject your own latency records - * - * \param context: the lws_context - * \param d: the lws_detlat_t you have prepared - * - * For proxying or similar cases where latency information is available from - * user code rather than lws itself, you can generate your own latency callback - * events with your own lws_detlat_t. - */ - -LWS_VISIBLE LWS_EXTERN int -lws_det_lat_cb(struct lws_context *context, lws_detlat_t *d); - -/* - * detailed_latency_plot_cb() - canned save to file in plottable format cb - * - * \p context: the lws_context - * \p d: the detailed latency event information - * - * This canned callback makes it easy to export the detailed latency information - * to a file. Just set the context creation members like this - * - * #if defined(LWS_WITH_DETAILED_LATENCY) - * info.detailed_latency_cb = lws_det_lat_plot_cb; - * info.detailed_latency_filepath = "/tmp/lws-latency-results"; - * #endif - * - * and you will get a file containing information like this - * - * 718823864615 N 10589 0 0 10589 0 0 0 - * 718823880837 C 16173 0 0 16173 0 0 0 - * 718823913063 T 32212 0 0 32212 0 0 0 - * 718823931835 r 0 0 0 0 232 30 256 - * 718823948757 r 0 0 0 0 40 30 256 - * 718823948799 r 0 0 0 0 83 30 256 - * 718823965602 r 0 0 0 0 27 30 256 - * 718823965617 r 0 0 0 0 43 30 256 - * 718823965998 r 0 0 0 0 12 28 256 - * 718823983887 r 0 0 0 0 74 3 4096 - * 718823986411 w 16 87 7 110 9 80 80 - * 718824006358 w 8 68 6 82 6 80 80 - * - * which is easy to grep and pass to gnuplot. - * - * The columns are - * - * - unix time in us - * - N = Name resolution, C = TCP Connection, T = TLS negotiation server, - * t = TLS negotiation client, r = Read, w = Write - * - us duration, for w time client spent waiting to write - * - us duration, for w time data spent in transit to proxy - * - us duration, for w time proxy waited to send data - * - as a convenience, sum of last 3 columns above - * - us duration, time spent in callback - * - last 2 are actual / requested size in bytes - */ -LWS_VISIBLE LWS_EXTERN int -lws_det_lat_plot_cb(struct lws_context *context, const lws_detlat_t *d); - -/** - * lws_det_lat_active() - indicates if latencies are being measured - * - * \context: lws_context - * - * Returns 0 if latency measurement has not been set up (the callback is NULL). - * Otherwise returns 1 - */ -LWS_VISIBLE LWS_EXTERN int -lws_det_lat_active(struct lws_context *context); diff --git a/win64/include/websockets/libwebsockets/lws-diskcache.h b/win64/include/websockets/libwebsockets/lws-diskcache.h deleted file mode 100644 index bec8082d..00000000 --- a/win64/include/websockets/libwebsockets/lws-diskcache.h +++ /dev/null @@ -1,187 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup diskcache LWS disk cache - * ## Disk cache API - * - * Lws provides helper apis useful if you need a disk cache containing hashed - * files and need to delete files from it on an LRU basis to keep it below some - * size limit. - * - * The API `lws_diskcache_prepare()` deals with creating the cache dir and - * 256 subdirs, which are used according to the first two chars of the hex - * hash of the cache file. - * - * `lws_diskcache_create()` and `lws_diskcache_destroy()` allocate and free - * an opaque struct that represents the disk cache. - * - * `lws_diskcache_trim()` should be called at eg, 1s intervals to perform the - * cache dir monitoring and LRU autodelete in the background lazily. It can - * be done in its own thread or on a timer... it monitors the directories in a - * stateful way that stats one or more file in the cache per call, and keeps - * a list of the oldest files as it goes. When it completes a scan, if the - * aggregate size is over the limit, it will delete oldest files first to try - * to keep it under the limit. - * - * The cache size monitoring is extremely efficient in time and memory even when - * the cache directory becomes huge. - * - * `lws_diskcache_query()` is used to determine if the file already exists in - * the cache, or if it must be created. If it must be created, then the file - * is opened using a temp name that must be converted to a findable name with - * `lws_diskcache_finalize_name()` when the generation of the file contents are - * complete. Aborted cached files that did not complete generation will be - * flushed by the LRU eventually. If the file already exists, it is 'touched' - * to make it new again and the fd returned. - * - */ -///@{ - -struct lws_diskcache_scan; - -/** - * lws_diskcache_create() - creates an opaque struct representing the disk cache - * - * \param cache_dir_base: The cache dir path, eg `/var/cache/mycache` - * \param cache_size_limit: maximum size on disk the cache is allowed to use - * - * This returns an opaque `struct lws_diskcache_scan *` which represents the - * disk cache, the trim scanning state and so on. You should use - * `lws_diskcache_destroy()` to free it to destroy it. - */ -LWS_VISIBLE LWS_EXTERN struct lws_diskcache_scan * -lws_diskcache_create(const char *cache_dir_base, uint64_t cache_size_limit); - -/** - * lws_diskcache_destroy() - destroys the pointer returned by ...create() - * - * \param lds: pointer to the pointer returned by lws_diskcache_create() - * - * Frees *lds and any allocations it did, and then sets *lds to NULL and - * returns. - */ -LWS_VISIBLE LWS_EXTERN void -lws_diskcache_destroy(struct lws_diskcache_scan **lds); - -/** - * lws_diskcache_prepare() - ensures the cache dir structure exists on disk - * - * \param cache_base_dir: The cache dir path, eg `/var/cache/mycache` - * \param mode: octal dir mode to enforce, like 0700 - * \param uid: uid the cache dir should belong to - * - * This should be called while your app is still privileged. It will create - * the cache directory structure on disk as necessary, enforce the given access - * mode on it and set the given uid as the owner. It won't make any trouble - * if the cache already exists. - * - * Typically the mode is 0700 and the owner is the user that your application - * will transition to use when it drops root privileges. - */ -LWS_VISIBLE LWS_EXTERN int -lws_diskcache_prepare(const char *cache_base_dir, int mode, int uid); - -#define LWS_DISKCACHE_QUERY_NO_CACHE 0 -#define LWS_DISKCACHE_QUERY_EXISTS 1 -#define LWS_DISKCACHE_QUERY_CREATING 2 -#define LWS_DISKCACHE_QUERY_ONGOING 3 /* something else is creating it */ - -/** - * lws_diskcache_query() - ensures the cache dir structure exists on disk - * - * \param lds: The opaque struct representing the disk cache - * \param is_bot: nonzero means the request is from a bot. Don't create new cache contents if so. - * \param hash_hex: hex string representation of the cache object hash - * \param _fd: pointer to the fd to be set - * \param cache: destination string to take the cache filepath - * \param cache_len: length of the buffer at `cache` - * \param extant_cache_len: pointer to a size_t to take any extant cached file size - * - * This function is called when you want to find if the hashed name already - * exists in the cache. The possibilities for the return value are - * - * - LWS_DISKCACHE_QUERY_NO_CACHE: It's not in the cache and you can't create - * it in the cache for whatever reason. - * - LWS_DISKCACHE_QUERY_EXISTS: It exists in the cache. It's open RDONLY and - * *_fd has been set to the file descriptor. *extant_cache_len has been set - * to the size of the cached file in bytes. cache has been set to the - * full filepath of the cached file. Closing _fd is your responsibility. - * - LWS_DISKCACHE_QUERY_CREATING: It didn't exist, but a temp file has been - * created in the cache and *_fd set to a file descriptor opened on it RDWR. - * You should create the contents, and call `lws_diskcache_finalize_name()` - * when it is done. Closing _fd is your responsibility. - * - LWS_DISKCACHE_QUERY_ONGOING: not returned by this api, but you may find it - * desirable to make a wrapper function which can handle another asynchronous - * process that is already creating the cached file. This can be used to - * indicate that situation externally... how to determine the same thing is - * already being generated is out of scope of this api. - */ -LWS_VISIBLE LWS_EXTERN int -lws_diskcache_query(struct lws_diskcache_scan *lds, int is_bot, - const char *hash_hex, int *_fd, char *cache, int cache_len, - size_t *extant_cache_len); - -/** - * lws_diskcache_query() - ensures the cache dir structure exists on disk - * - * \param cache: The cache file temp name returned with LWS_DISKCACHE_QUERY_CREATING - * - * This renames the cache file you are creating to its final name. It should - * be called on the temp name returned by `lws_diskcache_query()` if it gave a - * LWS_DISKCACHE_QUERY_CREATING return, after you have filled the cache file and - * closed it. - */ -LWS_VISIBLE LWS_EXTERN int -lws_diskcache_finalize_name(char *cache); - -/** - * lws_diskcache_trim() - performs one or more file checks in the cache for size management - * - * \param lds: The opaque object representing the cache - * - * This should be called periodically to statefully walk the cache on disk - * collecting the oldest files. When it has visited every file, if the cache - * is oversize it will delete the oldest files until it's back under size again. - * - * Each time it's called, it will look at one or more dir in the cache. If - * called when the cache is oversize, it increases the amount of work done each - * call until it is reduced again. Typically it will take 256 calls before it - * deletes anything, so if called once per second, it will delete files once - * every 4 minutes. Each call is very inexpensive both in memory and time. - */ -LWS_VISIBLE LWS_EXTERN int -lws_diskcache_trim(struct lws_diskcache_scan *lds); - - -/** - * lws_diskcache_secs_to_idle() - see how long to idle before calling trim - * - * \param lds: The opaque object representing the cache - * - * If the cache is undersize, there's no need to monitor it immediately. This - * suggests how long to "sleep" before calling `lws_diskcache_trim()` again. - */ -LWS_VISIBLE LWS_EXTERN int -lws_diskcache_secs_to_idle(struct lws_diskcache_scan *lds); -///@} diff --git a/win64/include/websockets/libwebsockets/lws-display.h b/win64/include/websockets/libwebsockets/lws-display.h deleted file mode 100644 index 203cfc57..00000000 --- a/win64/include/websockets/libwebsockets/lws-display.h +++ /dev/null @@ -1,158 +0,0 @@ -/* - * lws abstract display - * - * Copyright (C) 2019 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#if !defined(__LWS_DISPLAY_H__) -#define __LWS_DISPLAY_H__ - -#include <stdint.h> - -typedef uint16_t lws_display_scalar; - -/* - * This is embedded in the actual display implementation object at the top, - * so a pointer to this can be cast to a pointer to the implementation object - * by any code that is specific to how it was implemented. - * - * Notice for the backlight / display intensity we contain pwm_ops... these can - * be some other pwm_ops like existing gpio pwm ops, or handled in a customized - * way like set oled contrast. Either way, the pwm level is arrived at via a - * full set of lws_led_sequences capable of generic lws transitions - */ - -typedef struct lws_display { - int (*init)(const struct lws_display *disp); - const lws_pwm_ops_t *bl_pwm_ops; - int (*contrast)(const struct lws_display *disp, uint8_t contrast); - int (*blit)(const struct lws_display *disp, const uint8_t *src, - lws_display_scalar x, lws_display_scalar y, - lws_display_scalar w, lws_display_scalar h); - int (*power)(const struct lws_display *disp, int state); - - const lws_led_sequence_def_t *bl_active; - const lws_led_sequence_def_t *bl_dim; - const lws_led_sequence_def_t *bl_transition; - - void *variant; - - int bl_index; - - lws_display_scalar w; - /**< display surface width in pixels */ - lws_display_scalar h; - /**< display surface height in pixels */ - - uint8_t latency_wake_ms; - /**< ms required after wake from sleep before display usable again... - * delay bringing up the backlight for this amount of time on wake. - * This is managed via a sul on the event loop, not blocking. */ -} lws_display_t; - -/* - * This contains dynamic data related to display state - */ - -enum lws_display_controller_state { - LWSDISPS_OFF, - LWSDISPS_AUTODIMMED, /* is in pre- blanking static dim mode */ - LWSDISPS_BECOMING_ACTIVE, /* waiting for wake latency before active */ - LWSDISPS_ACTIVE, /* is active */ - LWSDISPS_GOING_OFF /* dimming then off */ -}; - -typedef struct lws_display_state { - - lws_sorted_usec_list_t sul_autodim; - const lws_display_t *disp; - struct lws_context *ctx; - - int autodim_ms; - int off_ms; - - struct lws_led_state *bl_lcs; - - lws_led_state_chs_t chs; - /* set of sequencer transition channels */ - - enum lws_display_controller_state state; - -} lws_display_state_t; - -/** - * lws_display_state_init() - initialize display states - * - * \param lds: the display state object - * \param ctx: the lws context - * \param autodim_ms: ms since last active report to dim display (<0 = never) - * \param off_ms: ms since dim to turn display off (<0 = never) - * \param bl_lcs: the led controller instance that has the backlight - * \param disp: generic display object we belong to - * - * This initializes a display's state, and sets up the optional screen auto-dim - * and blanking on inactive, and gradual brightness change timer. - * - * - auto-dim then off: set autodim to some ms and off_ms to some ms - * - auto-dim only: set autodim to some ms and off_ms to -1 - * - off-only: set autodim to some ms and off_ms to 0 - * - neither: set both autodim and off_ms to -1 - */ -LWS_VISIBLE LWS_EXTERN void -lws_display_state_init(lws_display_state_t *lds, struct lws_context *ctx, - int autodim_ms, int off_ms, struct lws_led_state *bl_lcs, - const lws_display_t *disp); - -/** - * lws_display_state_set_brightness() - gradually change the brightness - * - * \param lds: the display state we are changing - * \param target: the target brightness to transition to - * - * Adjusts the brightness gradually twoards the target at 20Hz - */ -LWS_VISIBLE LWS_EXTERN void -lws_display_state_set_brightness(lws_display_state_t *lds, - const lws_led_sequence_def_t *pwmseq); - -/* - * lws_display_state_active() - inform the system the display is active - * - * \param lds: the display state we are marking as active - * - * Resets the auto-dim and auto-off timers and makes sure the display is on and - * at the active brightness level - */ -LWS_VISIBLE LWS_EXTERN void -lws_display_state_active(lws_display_state_t *lds); - -/* - * lws_display_state_off() - turns off the related display - * - * \param lds: the display state we are turning off - * - * Turns the display to least power mode or completely off if possible. - * Disables the timers related to dimming and blanking. - */ -LWS_VISIBLE LWS_EXTERN void -lws_display_state_off(lws_display_state_t *lds); - -#endif diff --git a/win64/include/websockets/libwebsockets/lws-dll2.h b/win64/include/websockets/libwebsockets/lws-dll2.h deleted file mode 100644 index 151e7fcd..00000000 --- a/win64/include/websockets/libwebsockets/lws-dll2.h +++ /dev/null @@ -1,298 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** \defgroup ll linked-lists -* ##Linked list apis -* -* simple single and doubly-linked lists -*/ -///@{ - -/** - * lws_start_foreach_ll(): linkedlist iterator helper start - * - * \param type: type of iteration, eg, struct xyz * - * \param it: iterator var name to create - * \param start: start of list - * - * This helper creates an iterator and starts a while (it) { - * loop. The iterator runs through the linked list starting at start and - * ends when it gets a NULL. - * The while loop should be terminated using lws_start_foreach_ll(). - */ -#define lws_start_foreach_ll(type, it, start)\ -{ \ - type it = start; \ - while (it) { - -/** - * lws_end_foreach_ll(): linkedlist iterator helper end - * - * \param it: same iterator var name given when starting - * \param nxt: member name in the iterator pointing to next list element - * - * This helper is the partner for lws_start_foreach_ll() that ends the - * while loop. - */ - -#define lws_end_foreach_ll(it, nxt) \ - it = it->nxt; \ - } \ -} - -/** - * lws_start_foreach_ll_safe(): linkedlist iterator helper start safe against delete - * - * \param type: type of iteration, eg, struct xyz * - * \param it: iterator var name to create - * \param start: start of list - * \param nxt: member name in the iterator pointing to next list element - * - * This helper creates an iterator and starts a while (it) { - * loop. The iterator runs through the linked list starting at start and - * ends when it gets a NULL. - * The while loop should be terminated using lws_end_foreach_ll_safe(). - * Performs storage of next increment for situations where iterator can become invalidated - * during iteration. - */ -#define lws_start_foreach_ll_safe(type, it, start, nxt)\ -{ \ - type it = start; \ - while (it) { \ - type next_##it = it->nxt; - -/** - * lws_end_foreach_ll_safe(): linkedlist iterator helper end (pre increment storage) - * - * \param it: same iterator var name given when starting - * - * This helper is the partner for lws_start_foreach_ll_safe() that ends the - * while loop. It uses the precreated next_ variable already stored during - * start. - */ - -#define lws_end_foreach_ll_safe(it) \ - it = next_##it; \ - } \ -} - -/** - * lws_start_foreach_llp(): linkedlist pointer iterator helper start - * - * \param type: type of iteration, eg, struct xyz ** - * \param it: iterator var name to create - * \param start: start of list - * - * This helper creates an iterator and starts a while (it) { - * loop. The iterator runs through the linked list starting at the - * address of start and ends when it gets a NULL. - * The while loop should be terminated using lws_start_foreach_llp(). - * - * This helper variant iterates using a pointer to the previous linked-list - * element. That allows you to easily delete list members by rewriting the - * previous pointer to the element's next pointer. - */ -#define lws_start_foreach_llp(type, it, start)\ -{ \ - type it = &(start); \ - while (*(it)) { - -#define lws_start_foreach_llp_safe(type, it, start, nxt)\ -{ \ - type it = &(start); \ - type next; \ - while (*(it)) { \ - next = &((*(it))->nxt); \ - -/** - * lws_end_foreach_llp(): linkedlist pointer iterator helper end - * - * \param it: same iterator var name given when starting - * \param nxt: member name in the iterator pointing to next list element - * - * This helper is the partner for lws_start_foreach_llp() that ends the - * while loop. - */ - -#define lws_end_foreach_llp(it, nxt) \ - it = &(*(it))->nxt; \ - } \ -} - -#define lws_end_foreach_llp_safe(it) \ - it = next; \ - } \ -} - -#define lws_ll_fwd_insert(\ - ___new_object, /* pointer to new object */ \ - ___m_list, /* member for next list object ptr */ \ - ___list_head /* list head */ \ - ) {\ - ___new_object->___m_list = ___list_head; \ - ___list_head = ___new_object; \ - } - -#define lws_ll_fwd_remove(\ - ___type, /* type of listed object */ \ - ___m_list, /* member for next list object ptr */ \ - ___target, /* object to remove from list */ \ - ___list_head /* list head */ \ - ) { \ - lws_start_foreach_llp(___type **, ___ppss, ___list_head) { \ - if (*___ppss == ___target) { \ - *___ppss = ___target->___m_list; \ - break; \ - } \ - } lws_end_foreach_llp(___ppss, ___m_list); \ - } - - -/* - * doubly linked-list - */ - -/* - * lws_dll2_owner / lws_dll2 : more capable version of lws_dll. Differences: - * - * - there's an explicit lws_dll2_owner struct which holds head, tail and - * count of members. - * - * - list members all hold a pointer to their owner. So user code does not - * have to track anything about exactly what lws_dll2_owner list the object - * is a member of. - * - * - you can use lws_dll unless you want the member count or the ability to - * not track exactly which list it's on. - * - * - layout is compatible with lws_dll (but lws_dll apis will not update the - * new stuff) - */ - - -struct lws_dll2; -struct lws_dll2_owner; - -typedef struct lws_dll2 { - struct lws_dll2 *prev; - struct lws_dll2 *next; - struct lws_dll2_owner *owner; -} lws_dll2_t; - -typedef struct lws_dll2_owner { - struct lws_dll2 *tail; - struct lws_dll2 *head; - - uint32_t count; -} lws_dll2_owner_t; - -static LWS_INLINE int -lws_dll2_is_detached(const struct lws_dll2 *d) { return !d->owner; } - -static LWS_INLINE const struct lws_dll2_owner * -lws_dll2_owner(const struct lws_dll2 *d) { return d->owner; } - -static LWS_INLINE struct lws_dll2 * -lws_dll2_get_head(struct lws_dll2_owner *owner) { return owner->head; } - -static LWS_INLINE struct lws_dll2 * -lws_dll2_get_tail(struct lws_dll2_owner *owner) { return owner->tail; } - -LWS_VISIBLE LWS_EXTERN void -lws_dll2_add_head(struct lws_dll2 *d, struct lws_dll2_owner *owner); - -LWS_VISIBLE LWS_EXTERN void -lws_dll2_add_tail(struct lws_dll2 *d, struct lws_dll2_owner *owner); - -LWS_VISIBLE LWS_EXTERN void -lws_dll2_remove(struct lws_dll2 *d); - -LWS_VISIBLE LWS_EXTERN int -lws_dll2_foreach_safe(struct lws_dll2_owner *owner, void *user, - int (*cb)(struct lws_dll2 *d, void *user)); - -LWS_VISIBLE LWS_EXTERN void -lws_dll2_clear(struct lws_dll2 *d); - -LWS_VISIBLE LWS_EXTERN void -lws_dll2_owner_clear(struct lws_dll2_owner *d); - -LWS_VISIBLE LWS_EXTERN void -lws_dll2_add_before(struct lws_dll2 *d, struct lws_dll2 *after); - -LWS_VISIBLE LWS_EXTERN void -lws_dll2_add_sorted(lws_dll2_t *d, lws_dll2_owner_t *own, - int (*compare)(const lws_dll2_t *d, const lws_dll2_t *i)); - -LWS_VISIBLE LWS_EXTERN void * -_lws_dll2_search_sz_pl(lws_dll2_owner_t *own, const char *name, size_t namelen, - size_t dll2_ofs, size_t ptr_ofs); - -/* - * Searches objects in an owner list linearly and returns one with a given - * member C-string matching a supplied length-provided string if it exists, else - * NULL. - */ - -#define lws_dll2_search_sz_pl(own, name, namelen, type, membd2list, membptr) \ - ((type *)_lws_dll2_search_sz_pl(own, name, namelen, \ - offsetof(type, membd2list), \ - offsetof(type, membptr))) - -#if defined(_DEBUG) -void -lws_dll2_describe(struct lws_dll2_owner *owner, const char *desc); -#else -#define lws_dll2_describe(x, y) -#endif - -/* - * these are safe against the current container object getting deleted, - * since the hold his next in a temp and go to that next. ___tmp is - * the temp. - */ - -#define lws_start_foreach_dll_safe(___type, ___it, ___tmp, ___start) \ -{ \ - ___type ___it = ___start; \ - while (___it) { \ - ___type ___tmp = (___it)->next; - -#define lws_end_foreach_dll_safe(___it, ___tmp) \ - ___it = ___tmp; \ - } \ -} - -#define lws_start_foreach_dll(___type, ___it, ___start) \ -{ \ - ___type ___it = ___start; \ - while (___it) { - -#define lws_end_foreach_dll(___it) \ - ___it = (___it)->next; \ - } \ -} - -///@} - diff --git a/win64/include/websockets/libwebsockets/lws-dsh.h b/win64/include/websockets/libwebsockets/lws-dsh.h deleted file mode 100644 index ee7168bc..00000000 --- a/win64/include/websockets/libwebsockets/lws-dsh.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/* - * lws_dsh (Disordered Shared Heap) is an opaque abstraction supporting a single - * linear buffer (overallocated at end of the lws_dsh_t) which may contain - * multiple kinds of packets that are retired out of order, and tracked by kind. - * - * Each kind of packet has an lws_dll2 list of its kind of packets and acts as - * a FIFO; packets of a particular type are always retired in order. But there - * is no requirement about the order types are retired matching the original - * order they arrived. - * - * Gaps are tracked as just another kind of "packet" list. - * - * "allocations" (including gaps) are prepended by an lws_dsh_object_t. - * - * dsh may themselves be on an lws_dll2_owner list, and under memory pressure - * allocate into other buffers on the list. - * - * All management structures exist inside the allocated buffer. - */ - -/** - * lws_dsh_create() - Allocate a DSH buffer - * - * \param owner: the owning list this dsh belongs on, or NULL if standalone - * \param buffer_size: the allocation in bytes - * \param count_kinds: how many separately-tracked fifos use the buffer - * - * This makes a single heap allocation that includes internal tracking objects - * in the buffer. Sub-allocated objects are bound to a "kind" index and - * managed via a FIFO for each kind. - * - * Every "kind" of allocation shares the same buffer space. - * - * Multiple buffers may be bound together in an lws_dll2 list, and if an - * allocation cannot be satisfied by the local buffer, space can be borrowed - * from other dsh in the same list (the local dsh FIFO tracks these "foreign" - * allocations as if they were local). - * - * Returns an opaque pointer to the dsh, or NULL if allocation failed. - */ -LWS_VISIBLE LWS_EXTERN struct lws_dsh * -lws_dsh_create(lws_dll2_owner_t *owner, size_t buffer_size, int count_kinds); - -/** - * lws_dsh_destroy() - Destroy a DSH buffer - * - * \param pdsh: pointer to the dsh pointer - * - * Deallocates the DSH and sets *pdsh to NULL. - * - * Before destruction, any foreign buffer usage on the part of this dsh are - * individually freed. All dsh on the same list are walked and checked if they - * have their own foreign allocations on the dsh buffer being destroyed. If so, - * it attempts to migrate the allocation to a dsh that is not currently being - * destroyed. If all else fails (basically the buffer memory is being shrunk) - * unmigratable objects are cleanly destroyed. - */ -LWS_VISIBLE LWS_EXTERN void -lws_dsh_destroy(struct lws_dsh **pdsh); - -/** - * lws_dsh_alloc_tail() - make a suballocation inside a dsh - * - * \param dsh: the dsh tracking the allocation - * \param kind: the kind of allocation - * \param src1: the first source data to copy - * \param size1: the size of the first source data - * \param src2: the second source data to copy (after the first), or NULL - * \param size2: the size of the second source data - * - * Allocates size1 + size2 bytes in a dsh (it prefers the given dsh but will - * borrow space from other dsh on the same list if necessary) and copies size1 - * bytes into it from src1, followed by size2 bytes from src2 if src2 isn't - * NULL. The actual suballocation is a bit larger because of alignment and a - * prepended management header. - * - * The suballocation is added to the kind-specific FIFO at the tail. - */ -LWS_VISIBLE LWS_EXTERN int -lws_dsh_alloc_tail(struct lws_dsh *dsh, int kind, const void *src1, - size_t size1, const void *src2, size_t size2); - -/** - * lws_dsh_free() - free a suballocation from the dsh - * - * \param obj: a pointer to a void * that pointed to the allocated payload - * - * This returns the space used by \p obj in the dsh buffer to the free list - * of the dsh the allocation came from. - */ -LWS_VISIBLE LWS_EXTERN void -lws_dsh_free(void **obj); - -/** - * lws_dsh_get_head() - get the head allocation inside the dsh - * - * \param dsh: the dsh tracking the allocation - * \param kind: the kind of allocation - * \param obj: pointer to a void * to be set to the payload - * \param size: set to the size of the allocation - * - * This gets the "next" object in the kind FIFO for the dsh, and returns 0 if - * any. If none, returns nonzero. - * - * This is nondestructive of the fifo or the payload. Use lws_dsh_free on - * obj to remove the entry from the kind fifo and return the payload to the - * free list. - */ -LWS_VISIBLE LWS_EXTERN int -lws_dsh_get_head(struct lws_dsh *dsh, int kind, void **obj, size_t *size); - -/** - * lws_dsh_describe() - DEBUG BUILDS ONLY dump the dsh to the logs - * - * \param dsh: the dsh to dump - * \param desc: text that appears at the top of the dump - * - * Useful information for debugging lws_dsh - */ -LWS_VISIBLE LWS_EXTERN void -lws_dsh_describe(struct lws_dsh *dsh, const char *desc); diff --git a/win64/include/websockets/libwebsockets/lws-eventlib-exports.h b/win64/include/websockets/libwebsockets/lws-eventlib-exports.h deleted file mode 100644 index 87c4085b..00000000 --- a/win64/include/websockets/libwebsockets/lws-eventlib-exports.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * These are exports needed by event lib plugins. - * - * You should consider these opaque for normal user code. - */ - -LWS_VISIBLE LWS_EXTERN void * -lws_realloc(void *ptr, size_t size, const char *reason); - -LWS_VISIBLE LWS_EXTERN void -lws_vhost_destroy1(struct lws_vhost *vh); - -LWS_VISIBLE LWS_EXTERN void -lws_close_free_wsi(struct lws *wsi, enum lws_close_status reason, - const char *caller); - -struct lws_context_per_thread; -LWS_VISIBLE LWS_EXTERN void -lws_service_do_ripe_rxflow(struct lws_context_per_thread *pt); - -#if !defined(wsi_from_fd) && !defined(WIN32) && !defined(_WIN32) -struct lws_context; -LWS_VISIBLE LWS_EXTERN struct lws * -wsi_from_fd(const struct lws_context *context, int fd); -#endif - -LWS_VISIBLE LWS_EXTERN int -_lws_plat_service_forced_tsi(struct lws_context *context, int tsi); - -LWS_VISIBLE LWS_EXTERN void -lws_context_destroy2(struct lws_context *context); - -LWS_VISIBLE LWS_EXTERN void -lws_destroy_event_pipe(struct lws *wsi); - -LWS_VISIBLE LWS_EXTERN void -__lws_close_free_wsi_final(struct lws *wsi); - -#if LWS_MAX_SMP > 1 - -struct lws_mutex_refcount { - pthread_mutex_t lock; - pthread_t lock_owner; - const char *last_lock_reason; - char lock_depth; - char metadata; -}; - -LWS_VISIBLE LWS_EXTERN void -lws_mutex_refcount_assert_held(struct lws_mutex_refcount *mr); - -LWS_VISIBLE LWS_EXTERN void -lws_mutex_refcount_init(struct lws_mutex_refcount *mr); - -LWS_VISIBLE LWS_EXTERN void -lws_mutex_refcount_destroy(struct lws_mutex_refcount *mr); - -LWS_VISIBLE LWS_EXTERN void -lws_mutex_refcount_lock(struct lws_mutex_refcount *mr, const char *reason); - -LWS_VISIBLE LWS_EXTERN void -lws_mutex_refcount_unlock(struct lws_mutex_refcount *mr); - -#endif diff --git a/win64/include/websockets/libwebsockets/lws-freertos.h b/win64/include/websockets/libwebsockets/lws-freertos.h deleted file mode 100644 index a7872299..00000000 --- a/win64/include/websockets/libwebsockets/lws-freertos.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * This is included from libwebsockets.h if LWS_PLAT_FREERTOS - */ - -typedef int lws_sockfd_type; -typedef int lws_filefd_type; - -#if defined(LWS_AMAZON_RTOS) -#include <FreeRTOS.h> -#include <event_groups.h> -#include <string.h> -#include "timers.h" -#include <lwip/sockets.h> - -/* - * Later lwip (at least 2.1.12) already defines these in its own headers - * protected by the same test as used here... if POLLIN / POLLOUT already exist - * then assume no need to declare those and struct pollfd. - * - * Older lwip needs these declarations done here. - */ - -#if !defined(POLLIN) && !defined(POLLOUT) - -struct pollfd { - lws_sockfd_type fd; /**< fd related to */ - short events; /**< which POLL... events to respond to */ - short revents; /**< which POLL... events occurred */ -}; -#define POLLIN 0x0001 -#define POLLPRI 0x0002 -#define POLLOUT 0x0004 -#define POLLERR 0x0008 -#define POLLHUP 0x0010 -#define POLLNVAL 0x0020 - -#endif - -#else /* LWS_AMAZON_RTOS */ -#include <freertos/FreeRTOS.h> -#include <freertos/event_groups.h> -#include <string.h> -#include "esp_wifi.h" -#include "esp_system.h" -#include "esp_event.h" -//#include "esp_event_loop.h" -#include "nvs.h" -#include "driver/gpio.h" -#include "esp_spi_flash.h" -#include "freertos/timers.h" - -#if defined(LWS_ESP_PLATFORM) -#include "lwip/sockets.h" -#include "lwip/netdb.h" -#if defined(LWS_WITH_DRIVERS) -#include "libwebsockets/lws-gpio.h" -extern const lws_gpio_ops_t lws_gpio_plat; -#endif -#endif - -#endif /* LWS_AMAZON_RTOS */ - -#if !defined(CONFIG_FREERTOS_HZ) -#define CONFIG_FREERTOS_HZ 100 -#endif diff --git a/win64/include/websockets/libwebsockets/lws-fts.h b/win64/include/websockets/libwebsockets/lws-fts.h deleted file mode 100644 index e7d31aff..00000000 --- a/win64/include/websockets/libwebsockets/lws-fts.h +++ /dev/null @@ -1,215 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** \defgroup search Search - * - * ##Full-text search - * - * Lws provides superfast indexing and fulltext searching from index files on - * storage. - */ -///@{ - -struct lws_fts; -struct lws_fts_file; - -/* - * Queries produce their results in an lwsac, using these public API types. - * The first thing in the lwsac is always a struct lws_fts_result (see below) - * containing heads for linked-lists of the other result types. - */ - -/* one filepath's results */ - -struct lws_fts_result_filepath { - struct lws_fts_result_filepath *next; - int matches; /* logical number of matches */ - int matches_length; /* bytes in length table (may be zero) */ - int lines_in_file; - int filepath_length; - - /* - uint32_t line table follows (first for alignment) */ - /* - filepath (of filepath_length) follows */ -}; - -/* autocomplete result */ - -struct lws_fts_result_autocomplete { - struct lws_fts_result_autocomplete *next; - int instances; - int agg_instances; - int ac_length; - char elided; /* children skipped in interest of antecedent children */ - char has_children; - - /* - autocomplete suggestion (of length ac_length) follows */ -}; - -/* - * The results lwsac always starts with this. If no results and / or no - * autocomplete the members may be NULL. This implies the symbol nor any - * suffix on it exists in the trie file. - */ -struct lws_fts_result { - struct lws_fts_result_filepath *filepath_head; - struct lws_fts_result_autocomplete *autocomplete_head; - int duration_ms; - int effective_flags; /* the search flags that were used */ -}; - -/* - * index creation functions - */ - -/** - * lws_fts_create() - Create a new index file - * - * \param fd: The fd opened for write - * - * Inits a new index file, returning a struct lws_fts to represent it - */ -LWS_VISIBLE LWS_EXTERN struct lws_fts * -lws_fts_create(int fd); - -/** - * lws_fts_destroy() - Finalize a new index file / destroy the trie lwsac - * - * \param trie: The previously opened index being finalized - * - * Finalizes an index file that was being created, and frees the memory involved - * *trie is set to NULL afterwards. - */ -LWS_VISIBLE LWS_EXTERN void -lws_fts_destroy(struct lws_fts **trie); - -/** - * lws_fts_file_index() - Create a new entry in the trie file for an input path - * - * \param t: The previously opened index being written - * \param filepath: The filepath (which may be virtual) associated with this file - * \param filepath_len: The number of chars in the filepath - * \param priority: not used yet - * - * Returns an ordinal that represents this new filepath in the index file. - */ -LWS_VISIBLE LWS_EXTERN int -lws_fts_file_index(struct lws_fts *t, const char *filepath, int filepath_len, - int priority); - -/** - * lws_fts_fill() - Process all or a bufferload of input file - * - * \param t: The previously opened index being written - * \param file_index: The ordinal representing this input filepath - * \param buf: A bufferload of data from the input file - * \param len: The number of bytes in buf - * - * Indexes a buffer of data from the input file. - */ -LWS_VISIBLE LWS_EXTERN int -lws_fts_fill(struct lws_fts *t, uint32_t file_index, const char *buf, - size_t len); - -/** - * lws_fts_serialize() - Store the in-memory trie into the index file - * - * \param t: The previously opened index being written - * - * The trie is held in memory where it can be added to... after all the input - * filepaths and data have been processed, this is called to serialize / - * write the trie data into the index file. - */ -LWS_VISIBLE LWS_EXTERN int -lws_fts_serialize(struct lws_fts *t); - -/* - * index search functions - */ - -/** - * lws_fts_open() - Open an existing index file to search it - * - * \param filepath: The filepath to the index file to open - * - * Opening the index file returns an opaque struct lws_fts_file * that is - * used to perform other operations on it, or NULL if it can't be opened. - */ -LWS_VISIBLE LWS_EXTERN struct lws_fts_file * -lws_fts_open(const char *filepath); - -#define LWSFTS_F_QUERY_AUTOCOMPLETE (1 << 0) -#define LWSFTS_F_QUERY_FILES (1 << 1) -#define LWSFTS_F_QUERY_FILE_LINES (1 << 2) -#define LWSFTS_F_QUERY_QUOTE_LINE (1 << 3) - -struct lws_fts_search_params { - /* the actual search term */ - const char *needle; - /* if non-NULL, FILE results for this filepath only */ - const char *only_filepath; - /* will be set to the results lwsac */ - struct lwsac *results_head; - /* combination of LWSFTS_F_QUERY_* flags */ - int flags; - /* maximum number of autocomplete suggestions to return */ - int max_autocomplete; - /* maximum number of filepaths to return */ - int max_files; - /* maximum number of line number results to return per filepath */ - int max_lines; -}; - -/** - * lws_fts_search() - Perform a search operation on an index - * - * \param jtf: The index file struct returned by lws_fts_open - * \param ftsp: The struct lws_fts_search_params filled in by the caller - * - * The caller should memset the ftsp struct to 0 to ensure members that may be - * introduced in later versions contain known values, then set the related - * members to describe the kind of search action required. - * - * ftsp->results_head is the results lwsac, or NULL. It should be freed with - * lwsac_free() when the results are finished with. - * - * Returns a pointer into the results lwsac that is a struct lws_fts_result - * containing the head pointers into linked-lists of results for autocomplete - * and filepath data, along with some sundry information. This does not need - * to be freed since freeing the lwsac will also remove this and everything it - * points to. - */ -LWS_VISIBLE LWS_EXTERN struct lws_fts_result * -lws_fts_search(struct lws_fts_file *jtf, struct lws_fts_search_params *ftsp); - -/** - * lws_fts_close() - Close a previously-opened index file - * - * \param jtf: The pointer returned from the open - * - * Closes the file handle on the index and frees any allocations - */ -LWS_VISIBLE LWS_EXTERN void -lws_fts_close(struct lws_fts_file *jtf); - -///@} diff --git a/win64/include/websockets/libwebsockets/lws-genaes.h b/win64/include/websockets/libwebsockets/lws-genaes.h deleted file mode 100644 index 6095f683..00000000 --- a/win64/include/websockets/libwebsockets/lws-genaes.h +++ /dev/null @@ -1,170 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup generic AES - * ## Generic AES related functions - * - * Lws provides generic AES functions that abstract the ones - * provided by whatever tls library you are linking against. - * - * It lets you use the same code if you build against mbedtls or OpenSSL - * for example. - */ -///@{ - -#if defined(LWS_WITH_MBEDTLS) -#include <mbedtls/aes.h> -#include <mbedtls/gcm.h> -#endif - -enum enum_aes_modes { - LWS_GAESM_CBC, - LWS_GAESM_CFB128, - LWS_GAESM_CFB8, - LWS_GAESM_CTR, - LWS_GAESM_ECB, - LWS_GAESM_OFB, - LWS_GAESM_XTS, /* care... requires double-length key */ - LWS_GAESM_GCM, - LWS_GAESM_KW, -}; - -enum enum_aes_operation { - LWS_GAESO_ENC, - LWS_GAESO_DEC -}; - -enum enum_aes_padding { - LWS_GAESP_NO_PADDING, - LWS_GAESP_WITH_PADDING -}; - -/* include/libwebsockets/lws-jwk.h must be included before this */ - -#define LWS_AES_BLOCKSIZE 128 -#define LWS_AES_CBC_BLOCKLEN 16 - -struct lws_genaes_ctx { -#if defined(LWS_WITH_MBEDTLS) - union { - mbedtls_aes_context ctx; -#if defined(MBEDTLS_CIPHER_MODE_XTS) - mbedtls_aes_xts_context ctx_xts; -#endif - mbedtls_gcm_context ctx_gcm; - } u; -#else - EVP_CIPHER_CTX *ctx; - const EVP_CIPHER *cipher; - ENGINE *engine; - char init; -#endif - unsigned char tag[16]; - struct lws_gencrypto_keyelem *k; - enum enum_aes_operation op; - enum enum_aes_modes mode; - enum enum_aes_padding padding; - int taglen; - char underway; -}; - -/** lws_genaes_create() - Create RSA public decrypt context - * - * \param ctx: your struct lws_genaes_ctx - * \param op: LWS_GAESO_ENC or LWS_GAESO_DEC - * \param mode: one of LWS_GAESM_ - * \param el: struct prepared with key element data - * \param padding: 0 = no padding, 1 = padding - * \param engine: if openssl engine used, pass the pointer here - * - * Creates an RSA context with a public key associated with it, formed from - * the key elements in \p el. - * - * Returns 0 for OK or nonzero for error. - * - * This and related APIs operate identically with OpenSSL or mbedTLS backends. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genaes_create(struct lws_genaes_ctx *ctx, enum enum_aes_operation op, - enum enum_aes_modes mode, struct lws_gencrypto_keyelem *el, - enum enum_aes_padding padding, void *engine); - -/** lws_genaes_destroy() - Destroy genaes AES context - * - * \param ctx: your struct lws_genaes_ctx - * \param tag: NULL, or, GCM-only: buffer to receive tag - * \param tlen: 0, or, GCM-only: length of tag buffer - * - * Destroys any allocations related to \p ctx. - * - * For GCM only, up to tlen bytes of tag buffer will be set on exit. - * - * This and related APIs operate identically with OpenSSL or mbedTLS backends. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genaes_destroy(struct lws_genaes_ctx *ctx, unsigned char *tag, size_t tlen); - -/** lws_genaes_crypt() - Encrypt or decrypt - * - * \param ctx: your struct lws_genaes_ctx - * \param in: input plaintext or ciphertext - * \param len: length of input (which is always length of output) - * \param out: output plaintext or ciphertext - * \param iv_or_nonce_ctr_or_data_unit_16: NULL, iv, nonce_ctr16, or data_unit16 - * \param stream_block_16: pointer to 16-byte stream block for CTR mode only - * \param nc_or_iv_off: NULL or pointer to nc, or iv_off - * \param taglen: length of tag - * - * Encrypts or decrypts using the AES mode set when the ctx was created. - * The last three arguments have different meanings depending on the mode: - * - * KW CBC CFB128 CFB8 CTR ECB OFB XTS - * iv_or_nonce_ct.._unit_16 : iv iv iv iv nonce NULL iv dataunt - * stream_block_16 : NULL NULL NULL NULL stream NULL NULL NULL - * nc_or_iv_off : NULL NULL iv_off NULL nc_off NULL iv_off NULL - * - * For GCM: - * - * iv_or_nonce_ctr_or_data_unit_16 : iv - * stream_block_16 : pointer to tag - * nc_or_iv_off : set pointed-to size_t to iv length - * in : first call: additional data, subsequently - * : input data - * len : first call: add data length, subsequently - * : input / output length - * - * The length of the optional arg is always 16 if used, regardless of the mode. - * - * Returns 0 for OK or nonzero for error. - * - * This and related APIs operate identically with OpenSSL or mbedTLS backends. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genaes_crypt(struct lws_genaes_ctx *ctx, const uint8_t *in, size_t len, - uint8_t *out, - uint8_t *iv_or_nonce_ctr_or_data_unit_16, - uint8_t *stream_block_16, - size_t *nc_or_iv_off, int taglen); - -///@} diff --git a/win64/include/websockets/libwebsockets/lws-gencrypto.h b/win64/include/websockets/libwebsockets/lws-gencrypto.h deleted file mode 100644 index 644ce892..00000000 --- a/win64/include/websockets/libwebsockets/lws-gencrypto.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/* - * These are gencrypto-level constants... they are used by both JOSE and direct - * gencrypto code. However while JWK relies on these, using gencrypto apis has - * no dependency at all on any JOSE type. - */ - -enum lws_gencrypto_kty { - LWS_GENCRYPTO_KTY_UNKNOWN, - - LWS_GENCRYPTO_KTY_OCT, - LWS_GENCRYPTO_KTY_RSA, - LWS_GENCRYPTO_KTY_EC -}; - -/* - * Keytypes where the same element name is reused must all agree to put the - * same-named element at the same e[] index. It's because when used with jwk, - * we parse and store in incoming key data, but we may not be informed of the - * definitive keytype until the end. - */ - -enum lws_gencrypto_oct_tok { - LWS_GENCRYPTO_OCT_KEYEL_K, /* note... same offset as AES K */ - - LWS_GENCRYPTO_OCT_KEYEL_COUNT -}; - -enum lws_gencrypto_rsa_tok { - LWS_GENCRYPTO_RSA_KEYEL_E, - LWS_GENCRYPTO_RSA_KEYEL_N, - LWS_GENCRYPTO_RSA_KEYEL_D, /* note... same offset as EC D */ - LWS_GENCRYPTO_RSA_KEYEL_P, - LWS_GENCRYPTO_RSA_KEYEL_Q, - LWS_GENCRYPTO_RSA_KEYEL_DP, - LWS_GENCRYPTO_RSA_KEYEL_DQ, - LWS_GENCRYPTO_RSA_KEYEL_QI, - - LWS_GENCRYPTO_RSA_KEYEL_COUNT -}; - -enum lws_gencrypto_ec_tok { - LWS_GENCRYPTO_EC_KEYEL_CRV, - LWS_GENCRYPTO_EC_KEYEL_X, - /* note... same offset as RSA D */ - LWS_GENCRYPTO_EC_KEYEL_D = LWS_GENCRYPTO_RSA_KEYEL_D, - LWS_GENCRYPTO_EC_KEYEL_Y, - - LWS_GENCRYPTO_EC_KEYEL_COUNT -}; - -enum lws_gencrypto_aes_tok { - /* note... same offset as OCT K */ - LWS_GENCRYPTO_AES_KEYEL_K = LWS_GENCRYPTO_OCT_KEYEL_K, - - LWS_GENCRYPTO_AES_KEYEL_COUNT -}; - -/* largest number of key elements for any algorithm */ -#define LWS_GENCRYPTO_MAX_KEYEL_COUNT LWS_GENCRYPTO_RSA_KEYEL_COUNT - -/* this "stretchy" type holds individual key element data in binary form. - * It's typcially used in an array with the layout mapping the element index to - * the key element meaning defined by the enums above. An array of these of - * length LWS_GENCRYPTO_MAX_KEYEL_COUNT can define key elements for any key - * type. - */ - -struct lws_gencrypto_keyelem { - uint8_t *buf; - uint32_t len; -}; - - -/** - * lws_gencrypto_bits_to_bytes() - returns rounded up bytes needed for bits - * - * \param bits - * - * Returns the number of bytes needed to store the given number of bits. If - * a byte is partially used, the byte count is rounded up. - */ -LWS_VISIBLE LWS_EXTERN int -lws_gencrypto_bits_to_bytes(int bits); - -/** - * lws_base64_size() - returns estimated size of base64 encoding - * - * \param bytes - * - * Returns a slightly oversize estimate of the size of a base64 encoded version - * of the given amount of unencoded data. - */ -LWS_VISIBLE LWS_EXTERN int -lws_base64_size(int bytes); - -/** - * lws_gencrypto_padded_length() - returns PKCS#5/#7 padded length - * - * @param blocksize - blocksize to pad to - * @param len - Length of input to pad - * - * Returns the length of a buffer originally of size len after PKCS#5 or PKCS#7 - * padding has been applied to it. - */ -LWS_VISIBLE LWS_EXTERN size_t -lws_gencrypto_padded_length(size_t block_size, size_t len); diff --git a/win64/include/websockets/libwebsockets/lws-genec.h b/win64/include/websockets/libwebsockets/lws-genec.h deleted file mode 100644 index 2cb57b4d..00000000 --- a/win64/include/websockets/libwebsockets/lws-genec.h +++ /dev/null @@ -1,211 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -enum enum_genec_alg { - LEGENEC_UNKNOWN, - - LEGENEC_ECDH, - LEGENEC_ECDSA -}; - -struct lws_genec_ctx { -#if defined(LWS_WITH_MBEDTLS) - union { - mbedtls_ecdh_context *ctx_ecdh; - mbedtls_ecdsa_context *ctx_ecdsa; - } u; -#else - EVP_PKEY_CTX *ctx[2]; -#endif - struct lws_context *context; - const struct lws_ec_curves *curve_table; - enum enum_genec_alg genec_alg; - - char has_private; -}; - -#if defined(LWS_WITH_MBEDTLS) -enum enum_lws_dh_side { - LDHS_OURS = MBEDTLS_ECDH_OURS, - LDHS_THEIRS = MBEDTLS_ECDH_THEIRS -}; -#else -enum enum_lws_dh_side { - LDHS_OURS, - LDHS_THEIRS -}; -#endif - -struct lws_ec_curves { - const char *name; - int tls_lib_nid; - uint16_t key_bytes; -}; - - -/* ECDH-specific apis */ - -/** lws_genecdh_create() - Create a genecdh - * - * \param ctx: your genec context - * \param context: your lws_context (for RNG access) - * \param curve_table: NULL, enabling P-256, P-384 and P-521, or a replacement - * struct lws_ec_curves array, terminated by an entry with - * .name = NULL, of curves you want to whitelist - * - * Initializes a genecdh - */ -LWS_VISIBLE int -lws_genecdh_create(struct lws_genec_ctx *ctx, struct lws_context *context, - const struct lws_ec_curves *curve_table); - -/** lws_genecdh_set_key() - Apply an EC key to our or theirs side - * - * \param ctx: your genecdh context - * \param el: your key elements - * \param side: LDHS_OURS or LDHS_THEIRS - * - * Applies an EC key to one side or the other of an ECDH ctx - */ -LWS_VISIBLE LWS_EXTERN int -lws_genecdh_set_key(struct lws_genec_ctx *ctx, struct lws_gencrypto_keyelem *el, - enum enum_lws_dh_side side); - -/** lws_genecdh_new_keypair() - Create a genec with a new public / private key - * - * \param ctx: your genec context - * \param side: LDHS_OURS or LDHS_THEIRS - * \param curve_name: an EC curve name, like "P-256" - * \param el: array pf LWS_GENCRYPTO_EC_KEYEL_COUNT key elems to take the new key - * - * Creates a genecdh with a newly minted EC public / private key - */ -LWS_VISIBLE LWS_EXTERN int -lws_genecdh_new_keypair(struct lws_genec_ctx *ctx, enum enum_lws_dh_side side, - const char *curve_name, struct lws_gencrypto_keyelem *el); - -LWS_VISIBLE LWS_EXTERN int -lws_genecdh_compute_shared_secret(struct lws_genec_ctx *ctx, uint8_t *ss, - int *ss_len); - - -/* ECDSA-specific apis */ - -/** lws_genecdsa_create() - Create a genecdsa and - * - * \param ctx: your genec context - * \param context: your lws_context (for RNG access) - * \param curve_table: NULL, enabling P-256, P-384 and P-521, or a replacement - * struct lws_ec_curves array, terminated by an entry with - * .name = NULL, of curves you want to whitelist - * - * Initializes a genecdh - */ -LWS_VISIBLE int -lws_genecdsa_create(struct lws_genec_ctx *ctx, struct lws_context *context, - const struct lws_ec_curves *curve_table); - -/** lws_genecdsa_new_keypair() - Create a genecdsa with a new public / private key - * - * \param ctx: your genec context - * \param curve_name: an EC curve name, like "P-256" - * \param el: array pf LWS_GENCRYPTO_EC_KEYEL_COUNT key elements to take the new key - * - * Creates a genecdsa with a newly minted EC public / private key - */ -LWS_VISIBLE LWS_EXTERN int -lws_genecdsa_new_keypair(struct lws_genec_ctx *ctx, const char *curve_name, - struct lws_gencrypto_keyelem *el); - -/** lws_genecdsa_set_key() - Apply an EC key to an ecdsa context - * - * \param ctx: your genecdsa context - * \param el: your key elements - * - * Applies an EC key to an ecdsa context - */ -LWS_VISIBLE LWS_EXTERN int -lws_genecdsa_set_key(struct lws_genec_ctx *ctx, - struct lws_gencrypto_keyelem *el); - -/** lws_genecdsa_hash_sig_verify_jws() - Verifies a JWS ECDSA signature on a given hash - * - * \param ctx: your struct lws_genrsa_ctx - * \param in: unencrypted payload (usually a recomputed hash) - * \param hash_type: one of LWS_GENHASH_TYPE_ - * \param keybits: number of bits in the crypto key - * \param sig: pointer to the signature we received with the payload - * \param sig_len: length of the signature we are checking in bytes - * - * This just looks at the signed hash... that's why there's no input length - * parameter, it's decided by the choice of hash. It's up to you to confirm - * separately the actual payload matches the hash that was confirmed by this to - * be validly signed. - * - * Returns <0 for error, or 0 if signature matches the hash + key.. - * - * The JWS ECDSA signature verification algorithm differs to generic ECDSA - * signatures and they're not interoperable. - * - * This and related APIs operate identically with OpenSSL or mbedTLS backends. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genecdsa_hash_sig_verify_jws(struct lws_genec_ctx *ctx, const uint8_t *in, - enum lws_genhash_types hash_type, int keybits, - const uint8_t *sig, size_t sig_len); - -/** lws_genecdsa_hash_sign_jws() - Creates a JWS ECDSA signature for a hash you provide - * - * \param ctx: your struct lws_genrsa_ctx - * \param in: precomputed hash - * \param hash_type: one of LWS_GENHASH_TYPE_ - * \param keybits: number of bits in the crypto key - * \param sig: pointer to buffer to take signature - * \param sig_len: length of the buffer (must be >= length of key N) - * - * Returns <0 for error, or 0 for success. - * - * This creates a JWS ECDSA signature for a hash you already computed and provide. - * - * The JWS ECDSA signature generation algorithm differs to generic ECDSA - * signatures and they're not interoperable. - * - * This and related APIs operate identically with OpenSSL or mbedTLS backends. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genecdsa_hash_sign_jws(struct lws_genec_ctx *ctx, const uint8_t *in, - enum lws_genhash_types hash_type, int keybits, - uint8_t *sig, size_t sig_len); - - -/* Apis that apply to both ECDH and ECDSA */ - -LWS_VISIBLE LWS_EXTERN void -lws_genec_destroy(struct lws_genec_ctx *ctx); - -LWS_VISIBLE LWS_EXTERN void -lws_genec_destroy_elements(struct lws_gencrypto_keyelem *el); - -LWS_VISIBLE LWS_EXTERN int -lws_genec_dump(struct lws_gencrypto_keyelem *el); diff --git a/win64/include/websockets/libwebsockets/lws-genhash.h b/win64/include/websockets/libwebsockets/lws-genhash.h deleted file mode 100644 index 8407d2f0..00000000 --- a/win64/include/websockets/libwebsockets/lws-genhash.h +++ /dev/null @@ -1,187 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup generichash Generic Hash - * ## Generic Hash related functions - * - * Lws provides generic hash / digest accessors that abstract the ones - * provided by whatever tls library you are linking against. - * - * It lets you use the same code if you build against mbedtls or OpenSSL - * for example. - */ -///@{ - -enum lws_genhash_types { - LWS_GENHASH_TYPE_UNKNOWN, - LWS_GENHASH_TYPE_MD5, - LWS_GENHASH_TYPE_SHA1, - LWS_GENHASH_TYPE_SHA256, - LWS_GENHASH_TYPE_SHA384, - LWS_GENHASH_TYPE_SHA512, -}; - -enum lws_genhmac_types { - LWS_GENHMAC_TYPE_UNKNOWN, - LWS_GENHMAC_TYPE_SHA256, - LWS_GENHMAC_TYPE_SHA384, - LWS_GENHMAC_TYPE_SHA512, -}; - -#define LWS_GENHASH_LARGEST 64 - -struct lws_genhash_ctx { - uint8_t type; -#if defined(LWS_WITH_MBEDTLS) - union { - mbedtls_md5_context md5; - mbedtls_sha1_context sha1; - mbedtls_sha256_context sha256; - mbedtls_sha512_context sha512; /* 384 also uses this */ - const mbedtls_md_info_t *hmac; - } u; -#else - const EVP_MD *evp_type; - EVP_MD_CTX *mdctx; -#endif -}; - -struct lws_genhmac_ctx { - uint8_t type; -#if defined(LWS_WITH_MBEDTLS) - const mbedtls_md_info_t *hmac; - mbedtls_md_context_t ctx; -#else - const EVP_MD *evp_type; - -#if defined(LWS_HAVE_EVP_PKEY_new_raw_private_key) - EVP_MD_CTX *ctx; - EVP_PKEY *key; -#else -#if defined(LWS_HAVE_HMAC_CTX_new) - HMAC_CTX *ctx; -#else - HMAC_CTX ctx; -#endif -#endif - -#endif -}; - -/** lws_genhash_size() - get hash size in bytes - * - * \param type: one of LWS_GENHASH_TYPE_... - * - * Returns number of bytes in this type of hash - */ -LWS_VISIBLE LWS_EXTERN size_t LWS_WARN_UNUSED_RESULT -lws_genhash_size(enum lws_genhash_types type); - -/** lws_genhmac_size() - get hash size in bytes - * - * \param type: one of LWS_GENHASH_TYPE_... - * - * Returns number of bytes in this type of hmac - */ -LWS_VISIBLE LWS_EXTERN size_t LWS_WARN_UNUSED_RESULT -lws_genhmac_size(enum lws_genhmac_types type); - -/** lws_genhash_init() - prepare your struct lws_genhash_ctx for use - * - * \param ctx: your struct lws_genhash_ctx - * \param type: one of LWS_GENHASH_TYPE_... - * - * Initializes the hash context for the type you requested - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_genhash_init(struct lws_genhash_ctx *ctx, enum lws_genhash_types type); - -/** lws_genhash_update() - digest len bytes of the buffer starting at in - * - * \param ctx: your struct lws_genhash_ctx - * \param in: start of the bytes to digest - * \param len: count of bytes to digest - * - * Updates the state of your hash context to reflect digesting len bytes from in - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_genhash_update(struct lws_genhash_ctx *ctx, const void *in, size_t len); - -/** lws_genhash_destroy() - copy out the result digest and destroy the ctx - * - * \param ctx: your struct lws_genhash_ctx - * \param result: NULL, or where to copy the result hash - * - * Finalizes the hash and copies out the digest. Destroys any allocations such - * that ctx can safely go out of scope after calling this. - * - * NULL result is supported so that you can destroy the ctx cleanly on error - * conditions, where there is no valid result. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genhash_destroy(struct lws_genhash_ctx *ctx, void *result); - -/** lws_genhmac_init() - prepare your struct lws_genhmac_ctx for use - * - * \param ctx: your struct lws_genhmac_ctx - * \param type: one of LWS_GENHMAC_TYPE_... - * \param key: pointer to the start of the HMAC key - * \param key_len: length of the HMAC key - * - * Initializes the hash context for the type you requested - * - * If the return is nonzero, it failed and there is nothing needing to be - * destroyed. - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_genhmac_init(struct lws_genhmac_ctx *ctx, enum lws_genhmac_types type, - const uint8_t *key, size_t key_len); - -/** lws_genhmac_update() - digest len bytes of the buffer starting at in - * - * \param ctx: your struct lws_genhmac_ctx - * \param in: start of the bytes to digest - * \param len: count of bytes to digest - * - * Updates the state of your hash context to reflect digesting len bytes from in - * - * If the return is nonzero, it failed and needs destroying. - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_genhmac_update(struct lws_genhmac_ctx *ctx, const void *in, size_t len); - -/** lws_genhmac_destroy() - copy out the result digest and destroy the ctx - * - * \param ctx: your struct lws_genhmac_ctx - * \param result: NULL, or where to copy the result hash - * - * Finalizes the hash and copies out the digest. Destroys any allocations such - * that ctx can safely go out of scope after calling this. - * - * NULL result is supported so that you can destroy the ctx cleanly on error - * conditions, where there is no valid result. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genhmac_destroy(struct lws_genhmac_ctx *ctx, void *result); -///@} diff --git a/win64/include/websockets/libwebsockets/lws-genrsa.h b/win64/include/websockets/libwebsockets/lws-genrsa.h deleted file mode 100644 index 744a4843..00000000 --- a/win64/include/websockets/libwebsockets/lws-genrsa.h +++ /dev/null @@ -1,254 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup genericRSA Generic RSA - * ## Generic RSA related functions - * - * Lws provides generic RSA functions that abstract the ones - * provided by whatever OpenSSL library you are linking against. - * - * It lets you use the same code if you build against mbedtls or OpenSSL - * for example. - */ -///@{ - -/* include/libwebsockets/lws-jwk.h must be included before this */ - -enum enum_genrsa_mode { - LGRSAM_PKCS1_1_5, - LGRSAM_PKCS1_OAEP_PSS, - - LGRSAM_COUNT -}; - -struct lws_genrsa_ctx { -#if defined(LWS_WITH_MBEDTLS) - mbedtls_rsa_context *ctx; -#else - BIGNUM *bn[LWS_GENCRYPTO_RSA_KEYEL_COUNT]; - EVP_PKEY_CTX *ctx; - RSA *rsa; -#endif - struct lws_context *context; - enum enum_genrsa_mode mode; -}; - -/** lws_genrsa_public_decrypt_create() - Create RSA public decrypt context - * - * \param ctx: your struct lws_genrsa_ctx - * \param el: struct prepared with key element data - * \param context: lws_context for RNG - * \param mode: RSA mode, one of LGRSAM_ constants - * \param oaep_hashid: the lws genhash id for the hash used in MFG1 hash - * used in OAEP mode - normally, SHA1 - * - * Creates an RSA context with a public key associated with it, formed from - * the key elements in \p el. - * - * Mode LGRSAM_PKCS1_1_5 is in widespread use but has weaknesses. It's - * recommended to use LGRSAM_PKCS1_OAEP_PSS for new implementations. - * - * Returns 0 for OK or nonzero for error. - * - * This and related APIs operate identically with OpenSSL or mbedTLS backends. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genrsa_create(struct lws_genrsa_ctx *ctx, struct lws_gencrypto_keyelem *el, - struct lws_context *context, enum enum_genrsa_mode mode, - enum lws_genhash_types oaep_hashid); - -/** lws_genrsa_destroy_elements() - Free allocations in genrsa_elements - * - * \param el: your struct lws_gencrypto_keyelem - * - * This is a helper for user code making use of struct lws_gencrypto_keyelem - * where the elements are allocated on the heap, it frees any non-NULL - * buf element and sets the buf to NULL. - * - * NB: lws_genrsa_public_... apis do not need this as they take care of the key - * creation and destruction themselves. - */ -LWS_VISIBLE LWS_EXTERN void -lws_genrsa_destroy_elements(struct lws_gencrypto_keyelem *el); - -/** lws_genrsa_new_keypair() - Create new RSA keypair - * - * \param context: your struct lws_context (may be used for RNG) - * \param ctx: your struct lws_genrsa_ctx - * \param mode: RSA mode, one of LGRSAM_ constants - * \param el: struct to get the new key element data allocated into it - * \param bits: key size, eg, 4096 - * - * Creates a new RSA context and generates a new keypair into it, with \p bits - * bits. - * - * Returns 0 for OK or nonzero for error. - * - * Mode LGRSAM_PKCS1_1_5 is in widespread use but has weaknesses. It's - * recommended to use LGRSAM_PKCS1_OAEP_PSS for new implementations. - * - * This and related APIs operate identically with OpenSSL or mbedTLS backends. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genrsa_new_keypair(struct lws_context *context, struct lws_genrsa_ctx *ctx, - enum enum_genrsa_mode mode, struct lws_gencrypto_keyelem *el, - int bits); - -/** lws_genrsa_public_encrypt() - Perform RSA public key encryption - * - * \param ctx: your struct lws_genrsa_ctx - * \param in: plaintext input - * \param in_len: length of plaintext input - * \param out: encrypted output - * - * Performs PKCS1 v1.5 Encryption - * - * Returns <0 for error, or length of decrypted data. - * - * This and related APIs operate identically with OpenSSL or mbedTLS backends. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genrsa_public_encrypt(struct lws_genrsa_ctx *ctx, const uint8_t *in, - size_t in_len, uint8_t *out); - -/** lws_genrsa_private_encrypt() - Perform RSA private key encryption - * - * \param ctx: your struct lws_genrsa_ctx - * \param in: plaintext input - * \param in_len: length of plaintext input - * \param out: encrypted output - * - * Performs PKCS1 v1.5 Encryption - * - * Returns <0 for error, or length of decrypted data. - * - * This and related APIs operate identically with OpenSSL or mbedTLS backends. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genrsa_private_encrypt(struct lws_genrsa_ctx *ctx, const uint8_t *in, - size_t in_len, uint8_t *out); - -/** lws_genrsa_public_decrypt() - Perform RSA public key decryption - * - * \param ctx: your struct lws_genrsa_ctx - * \param in: encrypted input - * \param in_len: length of encrypted input - * \param out: decrypted output - * \param out_max: size of output buffer - * - * Performs PKCS1 v1.5 Decryption - * - * Returns <0 for error, or length of decrypted data. - * - * This and related APIs operate identically with OpenSSL or mbedTLS backends. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genrsa_public_decrypt(struct lws_genrsa_ctx *ctx, const uint8_t *in, - size_t in_len, uint8_t *out, size_t out_max); - -/** lws_genrsa_private_decrypt() - Perform RSA private key decryption - * - * \param ctx: your struct lws_genrsa_ctx - * \param in: encrypted input - * \param in_len: length of encrypted input - * \param out: decrypted output - * \param out_max: size of output buffer - * - * Performs PKCS1 v1.5 Decryption - * - * Returns <0 for error, or length of decrypted data. - * - * This and related APIs operate identically with OpenSSL or mbedTLS backends. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genrsa_private_decrypt(struct lws_genrsa_ctx *ctx, const uint8_t *in, - size_t in_len, uint8_t *out, size_t out_max); - -/** lws_genrsa_hash_sig_verify() - Verifies RSA signature on a given hash - * - * \param ctx: your struct lws_genrsa_ctx - * \param in: input to be hashed - * \param hash_type: one of LWS_GENHASH_TYPE_ - * \param sig: pointer to the signature we received with the payload - * \param sig_len: length of the signature we are checking in bytes - * - * Returns <0 for error, or 0 if signature matches the payload + key. - * - * This just looks at a hash... that's why there's no input length - * parameter, it's decided by the choice of hash. It's up to you to confirm - * separately the actual payload matches the hash that was confirmed by this to - * be validly signed. - * - * This and related APIs operate identically with OpenSSL or mbedTLS backends. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genrsa_hash_sig_verify(struct lws_genrsa_ctx *ctx, const uint8_t *in, - enum lws_genhash_types hash_type, - const uint8_t *sig, size_t sig_len); - -/** lws_genrsa_hash_sign() - Creates an ECDSA signature for a hash you provide - * - * \param ctx: your struct lws_genrsa_ctx - * \param in: input to be hashed and signed - * \param hash_type: one of LWS_GENHASH_TYPE_ - * \param sig: pointer to buffer to take signature - * \param sig_len: length of the buffer (must be >= length of key N) - * - * Returns <0 for error, or 0 for success. - * - * This creates an RSA signature for a hash you already computed and provide. - * You should have created the hash before calling this by iterating over the - * actual payload you need to confirm. - * - * This and related APIs operate identically with OpenSSL or mbedTLS backends. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genrsa_hash_sign(struct lws_genrsa_ctx *ctx, const uint8_t *in, - enum lws_genhash_types hash_type, - uint8_t *sig, size_t sig_len); - -/** lws_genrsa_public_decrypt_destroy() - Destroy RSA public decrypt context - * - * \param ctx: your struct lws_genrsa_ctx - * - * Destroys any allocations related to \p ctx. - * - * This and related APIs operate identically with OpenSSL or mbedTLS backends. - */ -LWS_VISIBLE LWS_EXTERN void -lws_genrsa_destroy(struct lws_genrsa_ctx *ctx); - -/** lws_genrsa_render_pkey_asn1() - Exports public or private key to ASN1/DER - * - * \param ctx: your struct lws_genrsa_ctx - * \param _private: 0 = public part only, 1 = all parts of the key - * \param pkey_asn1: pointer to buffer to take the ASN1 - * \param pkey_asn1_len: max size of the pkey_asn1_len - * - * Returns length of pkey_asn1 written, or -1 for error. - */ -LWS_VISIBLE LWS_EXTERN int -lws_genrsa_render_pkey_asn1(struct lws_genrsa_ctx *ctx, int _private, - uint8_t *pkey_asn1, size_t pkey_asn1_len); -///@} diff --git a/win64/include/websockets/libwebsockets/lws-gpio.h b/win64/include/websockets/libwebsockets/lws-gpio.h deleted file mode 100644 index f86620ad..00000000 --- a/win64/include/websockets/libwebsockets/lws-gpio.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generic GPIO ops - * - * Copyright (C) 2019 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * This is like an abstract class for gpio, a real implementation provides - * functions for the ops that use the underlying OS gpio arrangements. - */ - -#if !defined(__LWS_GPIO_H__) -#define __LWS_GPIO_H__ - -typedef int _lws_plat_gpio_t; - -typedef enum { - LWSGGPIO_IRQ_NONE, - LWSGGPIO_IRQ_RISING, - LWSGGPIO_IRQ_FALLING, - LWSGGPIO_IRQ_CHANGE, - LWSGGPIO_IRQ_LOW, - LWSGGPIO_IRQ_HIGH -} lws_gpio_irq_t; - -enum { - LWSGGPIO_FL_READ = (1 << 0), - LWSGGPIO_FL_WRITE = (1 << 1), - LWSGGPIO_FL_PULLUP = (1 << 2), - LWSGGPIO_FL_PULLDOWN = (1 << 3), - LWSGGPIO_FL_START_LOW = (1 << 4), -}; - -typedef void (*lws_gpio_irq_cb_t)(void *arg); - -typedef struct lws_gpio_ops { - void (*mode)(_lws_plat_gpio_t gpio, int flags); - int (*read)(_lws_plat_gpio_t gpio); - void (*set)(_lws_plat_gpio_t gpio, int val); - int (*irq_mode)(_lws_plat_gpio_t gpio, lws_gpio_irq_t irq, - lws_gpio_irq_cb_t cb, void *arg); -} lws_gpio_ops_t; - -#endif diff --git a/win64/include/websockets/libwebsockets/lws-http.h b/win64/include/websockets/libwebsockets/lws-http.h deleted file mode 100644 index b228497f..00000000 --- a/win64/include/websockets/libwebsockets/lws-http.h +++ /dev/null @@ -1,928 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/* minimal space for typical headers and CSP stuff */ - -#define LWS_RECOMMENDED_MIN_HEADER_SPACE 2048 - -/*! \defgroup http HTTP - - Modules related to handling HTTP -*/ -//@{ - -/*! \defgroup httpft HTTP File transfer - * \ingroup http - - APIs for sending local files in response to HTTP requests -*/ -//@{ - -/** - * lws_get_mimetype() - Determine mimetype to use from filename - * - * \param file: filename - * \param m: NULL, or mount context - * - * This uses a canned list of known filetypes first, if no match and m is - * non-NULL, then tries a list of per-mount file suffix to mimtype mappings. - * - * Returns either NULL or a pointer to the mimetype matching the file. - */ -LWS_VISIBLE LWS_EXTERN const char * -lws_get_mimetype(const char *file, const struct lws_http_mount *m); - -/** - * lws_serve_http_file() - Send a file back to the client using http - * \param wsi: Websocket instance (available from user callback) - * \param file: The file to issue over http - * \param content_type: The http content type, eg, text/html - * \param other_headers: NULL or pointer to header string - * \param other_headers_len: length of the other headers if non-NULL - * - * This function is intended to be called from the callback in response - * to http requests from the client. It allows the callback to issue - * local files down the http link in a single step. - * - * Returning <0 indicates error and the wsi should be closed. Returning - * >0 indicates the file was completely sent and - * lws_http_transaction_completed() called on the wsi (and close if != 0) - * ==0 indicates the file transfer is started and needs more service later, - * the wsi should be left alone. - */ -LWS_VISIBLE LWS_EXTERN int -lws_serve_http_file(struct lws *wsi, const char *file, const char *content_type, - const char *other_headers, int other_headers_len); - -LWS_VISIBLE LWS_EXTERN int -lws_serve_http_file_fragment(struct lws *wsi); -//@} - - -enum http_status { - HTTP_STATUS_CONTINUE = 100, - - HTTP_STATUS_OK = 200, - HTTP_STATUS_NO_CONTENT = 204, - HTTP_STATUS_PARTIAL_CONTENT = 206, - - HTTP_STATUS_MOVED_PERMANENTLY = 301, - HTTP_STATUS_FOUND = 302, - HTTP_STATUS_SEE_OTHER = 303, - HTTP_STATUS_NOT_MODIFIED = 304, - - HTTP_STATUS_BAD_REQUEST = 400, - HTTP_STATUS_UNAUTHORIZED, - HTTP_STATUS_PAYMENT_REQUIRED, - HTTP_STATUS_FORBIDDEN, - HTTP_STATUS_NOT_FOUND, - HTTP_STATUS_METHOD_NOT_ALLOWED, - HTTP_STATUS_NOT_ACCEPTABLE, - HTTP_STATUS_PROXY_AUTH_REQUIRED, - HTTP_STATUS_REQUEST_TIMEOUT, - HTTP_STATUS_CONFLICT, - HTTP_STATUS_GONE, - HTTP_STATUS_LENGTH_REQUIRED, - HTTP_STATUS_PRECONDITION_FAILED, - HTTP_STATUS_REQ_ENTITY_TOO_LARGE, - HTTP_STATUS_REQ_URI_TOO_LONG, - HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE, - HTTP_STATUS_REQ_RANGE_NOT_SATISFIABLE, - HTTP_STATUS_EXPECTATION_FAILED, - - HTTP_STATUS_INTERNAL_SERVER_ERROR = 500, - HTTP_STATUS_NOT_IMPLEMENTED, - HTTP_STATUS_BAD_GATEWAY, - HTTP_STATUS_SERVICE_UNAVAILABLE, - HTTP_STATUS_GATEWAY_TIMEOUT, - HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED, -}; -/*! \defgroup html-chunked-substitution HTML Chunked Substitution - * \ingroup http - * - * ##HTML chunked Substitution - * - * APIs for receiving chunks of text, replacing a set of variable names via - * a callback, and then prepending and appending HTML chunked encoding - * headers. - */ -//@{ - -struct lws_process_html_args { - char *p; /**< pointer to the buffer containing the data */ - int len; /**< length of the original data at p */ - int max_len; /**< maximum length we can grow the data to */ - int final; /**< set if this is the last chunk of the file */ - int chunked; /**< 0 == unchunked, 1 == produce chunk headers - (incompatible with HTTP/2) */ -}; - -typedef const char *(*lws_process_html_state_cb)(void *data, int index); - -struct lws_process_html_state { - char *start; /**< pointer to start of match */ - char swallow[16]; /**< matched character buffer */ - int pos; /**< position in match */ - void *data; /**< opaque pointer */ - const char * const *vars; /**< list of variable names */ - int count_vars; /**< count of variable names */ - - lws_process_html_state_cb replace; - /**< called on match to perform substitution */ -}; - -/*! lws_chunked_html_process() - generic chunked substitution - * \param args: buffer to process using chunked encoding - * \param s: current processing state - */ -LWS_VISIBLE LWS_EXTERN int -lws_chunked_html_process(struct lws_process_html_args *args, - struct lws_process_html_state *s); -//@} - -/** \defgroup HTTP-headers-read HTTP headers: read - * \ingroup http - * - * ##HTTP header releated functions - * - * In lws the client http headers are temporarily stored in a pool, only for the - * duration of the http part of the handshake. It's because in most cases, - * the header content is ignored for the whole rest of the connection lifetime - * and would then just be taking up space needlessly. - * - * During LWS_CALLBACK_HTTP when the URI path is delivered is the last time - * the http headers are still allocated, you can use these apis then to - * look at and copy out interesting header content (cookies, etc) - * - * Notice that the header total length reported does not include a terminating - * '\0', however you must allocate for it when using the _copy apis. So the - * length reported for a header containing "123" is 3, but you must provide - * a buffer of length 4 so that "123\0" may be copied into it, or the copy - * will fail with a nonzero return code. - * - * In the special case of URL arguments, like ?x=1&y=2, the arguments are - * stored in a token named for the method, eg, WSI_TOKEN_GET_URI if it - * was a GET or WSI_TOKEN_POST_URI if POST. You can check the total - * length to confirm the method. - * - * For URL arguments, each argument is stored urldecoded in a "fragment", so - * you can use the fragment-aware api lws_hdr_copy_fragment() to access each - * argument in turn: the fragments contain urldecoded strings like x=1 or y=2. - * - * As a convenience, lws has an api that will find the fragment with a - * given name= part, lws_get_urlarg_by_name(). - */ -///@{ - -/** struct lws_tokens - * you need these to look at headers that have been parsed if using the - * LWS_CALLBACK_FILTER_CONNECTION callback. If a header from the enum - * list below is absent, .token = NULL and len = 0. Otherwise .token - * points to .len chars containing that header content. - */ -struct lws_tokens { - unsigned char *token; /**< pointer to start of the token */ - int len; /**< length of the token's value */ -}; - -/* enum lws_token_indexes - * these have to be kept in sync with lextable.h / minilex.c - * - * NOTE: These public enums are part of the abi. If you want to add one, - * add it at where specified so existing users are unaffected. - */ -enum lws_token_indexes { - WSI_TOKEN_GET_URI, /* 0 */ - WSI_TOKEN_POST_URI, -#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_OPTIONS_URI, -#endif - WSI_TOKEN_HOST, - WSI_TOKEN_CONNECTION, - WSI_TOKEN_UPGRADE, /* 5 */ - WSI_TOKEN_ORIGIN, -#if defined(LWS_ROLE_WS) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_DRAFT, -#endif - WSI_TOKEN_CHALLENGE, -#if defined(LWS_ROLE_WS) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_EXTENSIONS, - WSI_TOKEN_KEY1, /* 10 */ - WSI_TOKEN_KEY2, - WSI_TOKEN_PROTOCOL, - WSI_TOKEN_ACCEPT, - WSI_TOKEN_NONCE, -#endif - WSI_TOKEN_HTTP, -#if defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_HTTP2_SETTINGS, /* 16 */ -#endif - WSI_TOKEN_HTTP_ACCEPT, -#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_HTTP_AC_REQUEST_HEADERS, -#endif - WSI_TOKEN_HTTP_IF_MODIFIED_SINCE, - WSI_TOKEN_HTTP_IF_NONE_MATCH, /* 20 */ - WSI_TOKEN_HTTP_ACCEPT_ENCODING, - WSI_TOKEN_HTTP_ACCEPT_LANGUAGE, - WSI_TOKEN_HTTP_PRAGMA, - WSI_TOKEN_HTTP_CACHE_CONTROL, - WSI_TOKEN_HTTP_AUTHORIZATION, - WSI_TOKEN_HTTP_COOKIE, - WSI_TOKEN_HTTP_CONTENT_LENGTH, /* 27 */ - WSI_TOKEN_HTTP_CONTENT_TYPE, - WSI_TOKEN_HTTP_DATE, - WSI_TOKEN_HTTP_RANGE, -#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_HTTP_REFERER, -#endif -#if defined(LWS_ROLE_WS) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_KEY, - WSI_TOKEN_VERSION, - WSI_TOKEN_SWORIGIN, -#endif -#if defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_HTTP_COLON_AUTHORITY, - WSI_TOKEN_HTTP_COLON_METHOD, - WSI_TOKEN_HTTP_COLON_PATH, - WSI_TOKEN_HTTP_COLON_SCHEME, - WSI_TOKEN_HTTP_COLON_STATUS, -#endif - -#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_HTTP_ACCEPT_CHARSET, -#endif - WSI_TOKEN_HTTP_ACCEPT_RANGES, -#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_HTTP_ACCESS_CONTROL_ALLOW_ORIGIN, -#endif - WSI_TOKEN_HTTP_AGE, - WSI_TOKEN_HTTP_ALLOW, - WSI_TOKEN_HTTP_CONTENT_DISPOSITION, - WSI_TOKEN_HTTP_CONTENT_ENCODING, - WSI_TOKEN_HTTP_CONTENT_LANGUAGE, - WSI_TOKEN_HTTP_CONTENT_LOCATION, - WSI_TOKEN_HTTP_CONTENT_RANGE, - WSI_TOKEN_HTTP_ETAG, - WSI_TOKEN_HTTP_EXPECT, - WSI_TOKEN_HTTP_EXPIRES, - WSI_TOKEN_HTTP_FROM, - WSI_TOKEN_HTTP_IF_MATCH, - WSI_TOKEN_HTTP_IF_RANGE, - WSI_TOKEN_HTTP_IF_UNMODIFIED_SINCE, - WSI_TOKEN_HTTP_LAST_MODIFIED, - WSI_TOKEN_HTTP_LINK, - WSI_TOKEN_HTTP_LOCATION, -#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_HTTP_MAX_FORWARDS, - WSI_TOKEN_HTTP_PROXY_AUTHENTICATE, - WSI_TOKEN_HTTP_PROXY_AUTHORIZATION, -#endif - WSI_TOKEN_HTTP_REFRESH, - WSI_TOKEN_HTTP_RETRY_AFTER, - WSI_TOKEN_HTTP_SERVER, - WSI_TOKEN_HTTP_SET_COOKIE, -#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_HTTP_STRICT_TRANSPORT_SECURITY, -#endif - WSI_TOKEN_HTTP_TRANSFER_ENCODING, -#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_HTTP_USER_AGENT, - WSI_TOKEN_HTTP_VARY, - WSI_TOKEN_HTTP_VIA, - WSI_TOKEN_HTTP_WWW_AUTHENTICATE, -#endif -#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_PATCH_URI, - WSI_TOKEN_PUT_URI, - WSI_TOKEN_DELETE_URI, -#endif - - WSI_TOKEN_HTTP_URI_ARGS, -#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_PROXY, - WSI_TOKEN_HTTP_X_REAL_IP, -#endif - WSI_TOKEN_HTTP1_0, - WSI_TOKEN_X_FORWARDED_FOR, - WSI_TOKEN_CONNECT, - WSI_TOKEN_HEAD_URI, -#if defined(LWS_WITH_HTTP_UNCOMMON_HEADERS) || defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_TE, - WSI_TOKEN_REPLAY_NONCE, /* ACME */ -#endif -#if defined(LWS_ROLE_H2) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_COLON_PROTOCOL, -#endif - WSI_TOKEN_X_AUTH_TOKEN, - - /****** add new things just above ---^ ******/ - - /* use token storage to stash these internally, not for - * user use */ - - _WSI_TOKEN_CLIENT_SENT_PROTOCOLS, - _WSI_TOKEN_CLIENT_PEER_ADDRESS, - _WSI_TOKEN_CLIENT_URI, - _WSI_TOKEN_CLIENT_HOST, - _WSI_TOKEN_CLIENT_ORIGIN, - _WSI_TOKEN_CLIENT_METHOD, - _WSI_TOKEN_CLIENT_IFACE, - _WSI_TOKEN_CLIENT_ALPN, - - /* always last real token index*/ - WSI_TOKEN_COUNT, - - /* parser state additions, no storage associated */ - WSI_TOKEN_NAME_PART, -#if defined(LWS_WITH_CUSTOM_HEADERS) || defined(LWS_HTTP_HEADERS_ALL) - WSI_TOKEN_UNKNOWN_VALUE_PART, -#endif - WSI_TOKEN_SKIPPING, - WSI_TOKEN_SKIPPING_SAW_CR, - WSI_PARSING_COMPLETE, - WSI_INIT_TOKEN_MUXURL, -}; - -struct lws_token_limits { - unsigned short token_limit[WSI_TOKEN_COUNT]; /**< max chars for this token */ -}; - -enum lws_h2_settings { - H2SET_HEADER_TABLE_SIZE = 1, - H2SET_ENABLE_PUSH, - H2SET_MAX_CONCURRENT_STREAMS, - H2SET_INITIAL_WINDOW_SIZE, - H2SET_MAX_FRAME_SIZE, - H2SET_MAX_HEADER_LIST_SIZE, - H2SET_RESERVED7, - H2SET_ENABLE_CONNECT_PROTOCOL, /* defined in mcmanus-httpbis-h2-ws-02 */ - - H2SET_COUNT /* always last */ -}; - -/** - * lws_token_to_string() - returns a textual representation of a hdr token index - * - * \param token: token index - */ -LWS_VISIBLE LWS_EXTERN const unsigned char * -lws_token_to_string(enum lws_token_indexes token); - -/** - * lws_hdr_total_length: report length of all fragments of a header totalled up - * The returned length does not include the space for a - * terminating '\0' - * - * \param wsi: websocket connection - * \param h: which header index we are interested in - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_hdr_total_length(struct lws *wsi, enum lws_token_indexes h); - -/** - * lws_hdr_fragment_length: report length of a single fragment of a header - * The returned length does not include the space for a - * terminating '\0' - * - * \param wsi: websocket connection - * \param h: which header index we are interested in - * \param frag_idx: which fragment of h we want to get the length of - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_hdr_fragment_length(struct lws *wsi, enum lws_token_indexes h, - int frag_idx); - -/** - * lws_hdr_copy() - copy all fragments of the given header to a buffer - * The buffer length len must include space for an additional - * terminating '\0', or it will fail returning -1. - * - * \param wsi: websocket connection - * \param dest: destination buffer - * \param len: length of destination buffer - * \param h: which header index we are interested in - * - * copies the whole, aggregated header, even if it was delivered in - * several actual headers piece by piece. Returns -1 or length of the whole - * header. - */ -LWS_VISIBLE LWS_EXTERN int -lws_hdr_copy(struct lws *wsi, char *dest, int len, enum lws_token_indexes h); - -/** - * lws_hdr_copy_fragment() - copy a single fragment of the given header to a buffer - * The buffer length len must include space for an additional - * terminating '\0', or it will fail returning -1. - * If the requested fragment index is not present, it fails - * returning -1. - * - * \param wsi: websocket connection - * \param dest: destination buffer - * \param len: length of destination buffer - * \param h: which header index we are interested in - * \param frag_idx: which fragment of h we want to copy - * - * Normally this is only useful - * to parse URI arguments like ?x=1&y=2, token index WSI_TOKEN_HTTP_URI_ARGS - * fragment 0 will contain "x=1" and fragment 1 "y=2" - */ -LWS_VISIBLE LWS_EXTERN int -lws_hdr_copy_fragment(struct lws *wsi, char *dest, int len, - enum lws_token_indexes h, int frag_idx); - -/** - * lws_hdr_custom_length() - return length of a custom header - * - * \param wsi: websocket connection - * \param name: header string (including terminating :) - * \param nlen: length of name - * - * Lws knows about 100 common http headers, and parses them into indexes when - * it recognizes them. When it meets a header that it doesn't know, it stores - * the name and value directly, and you can look them up using - * lws_hdr_custom_length() and lws_hdr_custom_copy(). - * - * This api returns -1, or the length of the value part of the header if it - * exists. Lws must be built with LWS_WITH_CUSTOM_HEADERS (on by default) to - * use this api. - */ -LWS_VISIBLE LWS_EXTERN int -lws_hdr_custom_length(struct lws *wsi, const char *name, int nlen); - -/** - * lws_hdr_custom_copy() - copy value part of a custom header - * - * \param wsi: websocket connection - * \param dst: pointer to buffer to receive the copy - * \param len: number of bytes available at dst - * \param name: header string (including terminating :) - * \param nlen: length of name - * - * Lws knows about 100 common http headers, and parses them into indexes when - * it recognizes them. When it meets a header that it doesn't know, it stores - * the name and value directly, and you can look them up using - * lws_hdr_custom_length() and lws_hdr_custom_copy(). - * - * This api returns -1, or the length of the string it copied into dst if it - * was big enough to contain both the string and an extra terminating NUL. Lws - * must be built with LWS_WITH_CUSTOM_HEADERS (on by default) to use this api. - */ -LWS_VISIBLE LWS_EXTERN int -lws_hdr_custom_copy(struct lws *wsi, char *dst, int len, const char *name, - int nlen); - -/** - * lws_get_urlarg_by_name() - return pointer to arg value if present - * \param wsi: the connection to check - * \param name: the arg name, like "token=" - * \param buf: the buffer to receive the urlarg (including the name= part) - * \param len: the length of the buffer to receive the urlarg - * - * Returns NULL if not found or a pointer inside buf to just after the - * name= part. - */ -LWS_VISIBLE LWS_EXTERN const char * -lws_get_urlarg_by_name(struct lws *wsi, const char *name, char *buf, int len); -///@} - -/*! \defgroup HTTP-headers-create HTTP headers: create - * - * ## HTTP headers: Create - * - * These apis allow you to create HTTP response headers in a way compatible with - * both HTTP/1.x and HTTP/2. - * - * They each append to a buffer taking care about the buffer end, which is - * passed in as a pointer. When data is written to the buffer, the current - * position p is updated accordingly. - * - * All of these apis are LWS_WARN_UNUSED_RESULT as they can run out of space - * and fail with nonzero return. - */ -///@{ - -#define LWSAHH_CODE_MASK ((1 << 16) - 1) -#define LWSAHH_FLAG_NO_SERVER_NAME (1 << 30) - -/** - * lws_add_http_header_status() - add the HTTP response status code - * - * \param wsi: the connection to check - * \param code: an HTTP code like 200, 404 etc (see enum http_status) - * \param p: pointer to current position in buffer pointer - * \param end: pointer to end of buffer - * - * Adds the initial response code, so should be called first. - * - * Code may additionally take OR'd flags: - * - * LWSAHH_FLAG_NO_SERVER_NAME: don't apply server name header this time - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_add_http_header_status(struct lws *wsi, - unsigned int code, unsigned char **p, - unsigned char *end); -/** - * lws_add_http_header_by_name() - append named header and value - * - * \param wsi: the connection to check - * \param name: the hdr name, like "my-header" - * \param value: the value after the = for this header - * \param length: the length of the value - * \param p: pointer to current position in buffer pointer - * \param end: pointer to end of buffer - * - * Appends name: value to the headers - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_add_http_header_by_name(struct lws *wsi, const unsigned char *name, - const unsigned char *value, int length, - unsigned char **p, unsigned char *end); -/** - * lws_add_http_header_by_token() - append given header and value - * - * \param wsi: the connection to check - * \param token: the token index for the hdr - * \param value: the value after the = for this header - * \param length: the length of the value - * \param p: pointer to current position in buffer pointer - * \param end: pointer to end of buffer - * - * Appends name=value to the headers, but is able to take advantage of better - * HTTP/2 coding mechanisms where possible. - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_add_http_header_by_token(struct lws *wsi, enum lws_token_indexes token, - const unsigned char *value, int length, - unsigned char **p, unsigned char *end); -/** - * lws_add_http_header_content_length() - append content-length helper - * - * \param wsi: the connection to check - * \param content_length: the content length to use - * \param p: pointer to current position in buffer pointer - * \param end: pointer to end of buffer - * - * Appends content-length: content_length to the headers - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_add_http_header_content_length(struct lws *wsi, - lws_filepos_t content_length, - unsigned char **p, unsigned char *end); -/** - * lws_finalize_http_header() - terminate header block - * - * \param wsi: the connection to check - * \param p: pointer to current position in buffer pointer - * \param end: pointer to end of buffer - * - * Indicates no more headers will be added - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_finalize_http_header(struct lws *wsi, unsigned char **p, - unsigned char *end); - -/** - * lws_finalize_write_http_header() - Helper finializing and writing http headers - * - * \param wsi: the connection to check - * \param start: pointer to the start of headers in the buffer, eg &buf[LWS_PRE] - * \param p: pointer to current position in buffer pointer - * \param end: pointer to end of buffer - * - * Terminates the headers correctly accoring to the protocol in use (h1 / h2) - * and writes the headers. Returns nonzero for error. - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_finalize_write_http_header(struct lws *wsi, unsigned char *start, - unsigned char **p, unsigned char *end); - -#define LWS_ILLEGAL_HTTP_CONTENT_LEN ((lws_filepos_t)-1ll) - -/** - * lws_add_http_common_headers() - Helper preparing common http headers - * - * \param wsi: the connection to check - * \param code: an HTTP code like 200, 404 etc (see enum http_status) - * \param content_type: the content type, like "text/html" - * \param content_len: the content length, in bytes - * \param p: pointer to current position in buffer pointer - * \param end: pointer to end of buffer - * - * Adds the initial response code, so should be called first. - * - * Code may additionally take OR'd flags: - * - * LWSAHH_FLAG_NO_SERVER_NAME: don't apply server name header this time - * - * This helper just calls public apis to simplify adding headers that are - * commonly needed. If it doesn't fit your case, or you want to add additional - * headers just call the public apis directly yourself for what you want. - * - * You can miss out the content length header by providing the constant - * LWS_ILLEGAL_HTTP_CONTENT_LEN for the content_len. - * - * It does not call lws_finalize_http_header(), to allow you to add further - * headers after calling this. You will need to call that yourself at the end. - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_add_http_common_headers(struct lws *wsi, unsigned int code, - const char *content_type, lws_filepos_t content_len, - unsigned char **p, unsigned char *end); - -enum { - LWSHUMETH_GET, - LWSHUMETH_POST, - LWSHUMETH_OPTIONS, - LWSHUMETH_PUT, - LWSHUMETH_PATCH, - LWSHUMETH_DELETE, - LWSHUMETH_CONNECT, - LWSHUMETH_HEAD, - LWSHUMETH_COLON_PATH, -}; - -/** - * lws_http_get_uri_and_method() - Get information on method and url - * - * \param wsi: the connection to get information on - * \param puri_ptr: points to pointer to set to url - * \param puri_len: points to int to set to uri length - * - * Returns -1 or method index as one of the LWSHUMETH_ constants - * - * If returns method, *puri_ptr is set to the method's URI string and *puri_len - * to its length - */ - -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_http_get_uri_and_method(struct lws *wsi, char **puri_ptr, int *puri_len); - -///@} - -/*! \defgroup urlendec Urlencode and Urldecode - * \ingroup http - * - * ##HTML chunked Substitution - * - * APIs for receiving chunks of text, replacing a set of variable names via - * a callback, and then prepending and appending HTML chunked encoding - * headers. - */ -//@{ - -/** - * lws_urlencode() - like strncpy but with urlencoding - * - * \param escaped: output buffer - * \param string: input buffer ('/0' terminated) - * \param len: output buffer max length - * - * Because urlencoding expands the output string, it's not - * possible to do it in-place, ie, with escaped == string - */ -LWS_VISIBLE LWS_EXTERN const char * -lws_urlencode(char *escaped, const char *string, int len); - -/* - * URLDECODE 1 / 2 - * - * This simple urldecode only operates until the first '\0' and requires the - * data to exist all at once - */ -/** - * lws_urldecode() - like strncpy but with urldecoding - * - * \param string: output buffer - * \param escaped: input buffer ('\0' terminated) - * \param len: output buffer max length - * - * This is only useful for '\0' terminated strings - * - * Since urldecoding only shrinks the output string, it is possible to - * do it in-place, ie, string == escaped - * - * Returns 0 if completed OK or nonzero for urldecode violation (non-hex chars - * where hex required, etc) - */ -LWS_VISIBLE LWS_EXTERN int -lws_urldecode(char *string, const char *escaped, int len); -///@} - -/** - * lws_return_http_status() - Return simple http status - * \param wsi: Websocket instance (available from user callback) - * \param code: Status index, eg, 404 - * \param html_body: User-readable HTML description < 1KB, or NULL - * - * Helper to report HTTP errors back to the client cleanly and - * consistently - */ -LWS_VISIBLE LWS_EXTERN int -lws_return_http_status(struct lws *wsi, unsigned int code, - const char *html_body); - -/** - * lws_http_redirect() - write http redirect out on wsi - * - * \param wsi: websocket connection - * \param code: HTTP response code (eg, 301) - * \param loc: where to redirect to - * \param len: length of loc - * \param p: pointer current position in buffer (updated as we write) - * \param end: pointer to end of buffer - * - * Returns amount written, or < 0 indicating fatal write failure. - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_http_redirect(struct lws *wsi, int code, const unsigned char *loc, int len, - unsigned char **p, unsigned char *end); - -/** - * lws_http_transaction_completed() - wait for new http transaction or close - * \param wsi: websocket connection - * - * Returns 1 if the HTTP connection must close now - * Returns 0 and resets connection to wait for new HTTP header / - * transaction if possible - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_http_transaction_completed(struct lws *wsi); - -/** - * lws_http_headers_detach() - drop the associated headers storage and allow - * it to be reused by another connection - * \param wsi: http connection - * - * If the wsi has an ah headers struct attached, detach it. - */ -LWS_VISIBLE LWS_EXTERN int -lws_http_headers_detach(struct lws *wsi); - -/** - * lws_http_mark_sse() - called to indicate this http stream is now doing SSE - * - * \param wsi: http connection - * - * Cancel any timeout on the wsi, and for h2, mark the network connection as - * containing an immortal stream for the duration the SSE stream is open. - */ -LWS_VISIBLE LWS_EXTERN int -lws_http_mark_sse(struct lws *wsi); - -/** - * lws_h2_client_stream_long_poll_rxonly() - h2 stream to immortal read-only - * - * \param wsi: h2 stream client wsi - * - * Send END_STREAM-flagged zero-length DATA frame to set client stream wsi into - * half-closed (local) and remote into half-closed (remote). Set the client - * stream wsi to be immortal (not subject to timeouts). - * - * Used if the remote server supports immortal long poll to put the stream into - * a read-only state where it can wait as long as needed for rx. - * - * Returns 0 if the process (which happens asynchronously) started or non-zero - * if it wasn't an h2 stream. - */ -LWS_VISIBLE LWS_EXTERN int -lws_h2_client_stream_long_poll_rxonly(struct lws *wsi); - -/** - * lws_http_compression_apply() - apply an http compression transform - * - * \param wsi: the wsi to apply the compression transform to - * \param name: NULL, or the name of the compression transform, eg, "deflate" - * \param p: pointer to pointer to headers buffer - * \param end: pointer to end of headers buffer - * \param decomp: 0 = add compressor to wsi, 1 = add decompressor - * - * This allows transparent compression of dynamically generated HTTP. The - * requested compression (eg, "deflate") is only applied if the client headers - * indicated it was supported (and it has support in lws), otherwise it's a NOP. - * - * If the requested compression method is NULL, then the supported compression - * formats are tried, and for non-decompression (server) mode the first that's - * found on the client's accept-encoding header is chosen. - * - * NOTE: the compression transform, same as h2 support, relies on the user - * code using LWS_WRITE_HTTP and then LWS_WRITE_HTTP_FINAL on the last part - * written. The internal lws fileserving code already does this. - * - * If the library was built without the cmake option - * LWS_WITH_HTTP_STREAM_COMPRESSION set, then a NOP is provided for this api, - * allowing user code to build either way and use compression if available. - */ -LWS_VISIBLE LWS_EXTERN int -lws_http_compression_apply(struct lws *wsi, const char *name, - unsigned char **p, unsigned char *end, char decomp); - -/** - * lws_http_is_redirected_to_get() - true if redirected to GET - * - * \param wsi: the wsi to check - * - * Check if the wsi is currently in GET mode, after, eg, doing a POST and - * receiving a 303. - */ -LWS_VISIBLE LWS_EXTERN int -lws_http_is_redirected_to_get(struct lws *wsi); - -/** - * lws_http_cookie_get() - return copy of named cookie if present - * - * \param wsi: the wsi to check - * \param name: name of the cookie - * \param buf: buffer to store the cookie contents into - * \param max_len: on entry, maximum length of buf... on exit, used len of buf - * - * If no cookie header, or no cookie of the requested name, or the value is - * larger than can fit in buf, returns nonzero. - * - * If the cookie is found, copies its value into buf with a terminating NUL, - * sets *max_len to the used length, and returns 0. - * - * This handles the parsing of the possibly multi-cookie header string and - * terminating the requested cookie at the next ; if present. - */ -LWS_VISIBLE LWS_EXTERN int -lws_http_cookie_get(struct lws *wsi, const char *name, char *buf, size_t *max); - -/** - * lws_http_client_http_error() - determine if the response code indicates an error - * - * \param code: the response code to test - * - * Returns nonzero if the code indicates an error, else zero if reflects a - * non-error condition - */ -#define lws_http_client_http_resp_is_error(code) (!(code < 400)) - -/** - * lws_h2_update_peer_txcredit() - manually update stream peer tx credit - * - * \param wsi: the h2 child stream whose peer credit to change - * \param sid: the stream ID, or LWS_H2_STREAM_SID for the wsi stream ID - * \param bump: signed change to confer upon peer tx credit for sid - * - * In conjunction with LCCSCF_H2_MANUAL_RXFLOW flag, allows the user code to - * selectively starve the remote peer of the ability to send us data on a client - * connection. - * - * Normally lws sends an initial window size for the peer to send to it of 0, - * but during the header phase it sends a WINDOW_UPDATE to increase the amount - * available. LCCSCF_H2_MANUAL_RXFLOW restricts this initial increase in tx - * credit for the stream, before it has been asked to send us anything, to the - * amount specified in the client info .manual_initial_tx_credit member, and - * this api can be called to send the other side permission to send us up to - * \p bump additional bytes. - * - * The nwsi tx credit is updated automatically for exactly what was sent to us - * on a stream with LCCSCF_H2_MANUAL_RXFLOW flag, but the stream's own tx credit - * must be handled manually by user code via this api. - * - * Returns 0 for success or nonzero for failure. - */ -#define LWS_H2_STREAM_SID -1 -LWS_VISIBLE LWS_EXTERN int -lws_h2_update_peer_txcredit(struct lws *wsi, int sid, int bump); - - -/** - * lws_h2_get_peer_txcredit_estimate() - return peer tx credit estimate - * - * \param wsi: the h2 child stream whose peer credit estimate to return - * - * Returns the estimated amount of tx credit at the peer, in other words the - * number of bytes the peer is authorized to send to us. - * - * It's an 'estimate' because we don't know how much is already in flight - * towards us and actually already used. - */ -LWS_VISIBLE LWS_EXTERN int -lws_h2_get_peer_txcredit_estimate(struct lws *wsi); - -///@} - diff --git a/win64/include/websockets/libwebsockets/lws-i2c.h b/win64/include/websockets/libwebsockets/lws-i2c.h deleted file mode 100644 index 3bd81ed3..00000000 --- a/win64/include/websockets/libwebsockets/lws-i2c.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Generic I2C ops - * - * Copyright (C) 2019 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * This is like an abstract class for i2c, a real implementation provides - * functions for the ops that use the underlying OS arrangements. - */ - -#if !defined(__LWS_I2C_H__) -#define __LWS_I2C_H__ - -#include <stdint.h> -#include <stddef.h> - -typedef struct lws_i2c_ops { - int (*init)(const struct lws_i2c_ops *ctx); - int (*start)(const struct lws_i2c_ops *ctx); - void (*stop)(const struct lws_i2c_ops *ctx); - int (*write)(const struct lws_i2c_ops *ctx, uint8_t data); - int (*read)(const struct lws_i2c_ops *ctx); - void (*set_ack)(const struct lws_i2c_ops *octx, int ack); -} lws_i2c_ops_t; - -/* - * These are implemented by calling the ops above, and so are generic - */ - -LWS_VISIBLE LWS_EXTERN int -lws_i2c_command(const lws_i2c_ops_t *ctx, uint8_t ads7, uint8_t c); - -LWS_VISIBLE LWS_EXTERN int -lws_i2c_command_list(const lws_i2c_ops_t *ctx, uint8_t ads7, const uint8_t *buf, - size_t len); - -#endif diff --git a/win64/include/websockets/libwebsockets/lws-ili9341-spi.h b/win64/include/websockets/libwebsockets/lws-ili9341-spi.h deleted file mode 100644 index 70a361a4..00000000 --- a/win64/include/websockets/libwebsockets/lws-ili9341-spi.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * lws abstract display implementation for ili9341 on spi - * - * Copyright (C) 2019 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#if !defined(__LWS_DISPLAY_ILI9341_SPI_H__) -#define __LWS_DISPLAY_ILI9341_SPI_H__ - - -typedef struct lws_display_ili9341 { - - lws_display_t disp; /* use lws_display_ili9341_ops to set */ - const lws_spi_ops_t *spi; /* spi ops */ - - const lws_gpio_ops_t *gpio; /* NULL or gpio ops */ - _lws_plat_gpio_t reset_gpio; /* if gpio ops, nReset gpio # */ - - uint8_t spi_index; /* cs index starting from 0 */ - -} lws_display_ili9341_t; - -int -lws_display_ili9341_spi_init(const struct lws_display *disp); -int -lws_display_ili9341_spi_blit(const struct lws_display *disp, const uint8_t *src, - lws_display_scalar x, lws_display_scalar y, - lws_display_scalar w, lws_display_scalar h); -int -lws_display_ili9341_spi_power(const struct lws_display *disp, int state); - -#define lws_display_ili9341_ops \ - .init = lws_display_ili9341_spi_init, \ - .blit = lws_display_ili9341_spi_blit, \ - .power = lws_display_ili9341_spi_power -#endif diff --git a/win64/include/websockets/libwebsockets/lws-jose.h b/win64/include/websockets/libwebsockets/lws-jose.h deleted file mode 100644 index 247d02c6..00000000 --- a/win64/include/websockets/libwebsockets/lws-jose.h +++ /dev/null @@ -1,212 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -enum lws_jws_jose_hdr_indexes { - LJJHI_ALG, /* REQUIRED */ - LJJHI_JKU, /* Optional: string */ - LJJHI_JWK, /* Optional: jwk JSON object: public key: */ - LJJHI_KID, /* Optional: string */ - LJJHI_X5U, /* Optional: string: url of public key cert / chain */ - LJJHI_X5C, /* Optional: base64 (NOT -url): actual cert */ - LJJHI_X5T, /* Optional: base64url: SHA-1 of actual cert */ - LJJHI_X5T_S256, /* Optional: base64url: SHA-256 of actual cert */ - LJJHI_TYP, /* Optional: string: media type */ - LJJHI_CTY, /* Optional: string: content media type */ - LJJHI_CRIT, /* Optional for send, REQUIRED: array of strings: - * mustn't contain standardized strings or null set */ - - LJJHI_RECIPS_HDR, - LJJHI_RECIPS_HDR_ALG, - LJJHI_RECIPS_HDR_KID, - LJJHI_RECIPS_EKEY, - - LJJHI_ENC, /* JWE only: Optional: string */ - LJJHI_ZIP, /* JWE only: Optional: string ("DEF" = deflate) */ - - LJJHI_EPK, /* Additional arg for JWE ECDH: ephemeral public key */ - LJJHI_APU, /* Additional arg for JWE ECDH: base64url */ - LJJHI_APV, /* Additional arg for JWE ECDH: base64url */ - LJJHI_IV, /* Additional arg for JWE AES: base64url */ - LJJHI_TAG, /* Additional arg for JWE AES: base64url */ - LJJHI_P2S, /* Additional arg for JWE PBES2: base64url: salt */ - LJJHI_P2C, /* Additional arg for JWE PBES2: integer: count */ - - LWS_COUNT_JOSE_HDR_ELEMENTS -}; - -enum lws_jose_algtype { - LWS_JOSE_ENCTYPE_NONE, - - LWS_JOSE_ENCTYPE_RSASSA_PKCS1_1_5, - LWS_JOSE_ENCTYPE_RSASSA_PKCS1_OAEP, - LWS_JOSE_ENCTYPE_RSASSA_PKCS1_PSS, - - LWS_JOSE_ENCTYPE_ECDSA, - LWS_JOSE_ENCTYPE_ECDHES, - - LWS_JOSE_ENCTYPE_AES_CBC, - LWS_JOSE_ENCTYPE_AES_CFB128, - LWS_JOSE_ENCTYPE_AES_CFB8, - LWS_JOSE_ENCTYPE_AES_CTR, - LWS_JOSE_ENCTYPE_AES_ECB, - LWS_JOSE_ENCTYPE_AES_OFB, - LWS_JOSE_ENCTYPE_AES_XTS, /* care: requires double-length key */ - LWS_JOSE_ENCTYPE_AES_GCM, -}; - -/* there's a table of these defined in lws-gencrypto-common.c */ - -struct lws_jose_jwe_alg { - enum lws_genhash_types hash_type; - enum lws_genhmac_types hmac_type; - enum lws_jose_algtype algtype_signing; /* the signing cipher */ - enum lws_jose_algtype algtype_crypto; /* the encryption cipher */ - const char *alg; /* the JWA enc alg name, eg "ES512" */ - const char *curve_name; /* NULL, or, eg, "P-256" */ - unsigned short keybits_min, keybits_fixed; - unsigned short ivbits; -}; - -/* - * For JWS, "JOSE header" is defined to be the union of... - * - * o JWS Protected Header - * o JWS Unprotected Header - * - * For JWE, the "JOSE header" is the union of... - * - * o JWE Protected Header - * o JWE Shared Unprotected Header - * o JWE Per-Recipient Unprotected Header - */ - -#define LWS_JWS_MAX_RECIPIENTS 3 - -struct lws_jws_recpient { - /* - * JOSE per-recipient unprotected header... for JWS this contains - * protected / header / signature - */ - struct lws_gencrypto_keyelem unprot[LWS_COUNT_JOSE_HDR_ELEMENTS]; - struct lws_jwk jwk_ephemeral; /* recipient ephemeral key if any */ - struct lws_jwk jwk; /* recipient "jwk" key if any */ -}; - -struct lws_jose { - /* JOSE protected and unprotected header elements */ - struct lws_gencrypto_keyelem e[LWS_COUNT_JOSE_HDR_ELEMENTS]; - - struct lws_jws_recpient recipient[LWS_JWS_MAX_RECIPIENTS]; - - char typ[32]; - - /* information from the protected header part */ - const struct lws_jose_jwe_alg *alg; - const struct lws_jose_jwe_alg *enc_alg; - - int recipients; /* count of used recipient[] entries */ -}; - -/** - * lws_jose_init() - prepare a struct lws_jose for use - * - * \param jose: the jose header struct to prepare - */ -LWS_VISIBLE LWS_EXTERN void -lws_jose_init(struct lws_jose *jose); - -/** - * lws_jose_destroy() - retire a struct lws_jose from use - * - * \param jose: the jose header struct to destroy - */ -LWS_VISIBLE LWS_EXTERN void -lws_jose_destroy(struct lws_jose *jose); - -/** - * lws_gencrypto_jws_alg_to_definition() - look up a jws alg name - * - * \param alg: the jws alg name - * \param jose: pointer to the pointer to the info struct to set on success - * - * Returns 0 if *jose set, else nonzero for failure - */ -LWS_VISIBLE LWS_EXTERN int -lws_gencrypto_jws_alg_to_definition(const char *alg, - const struct lws_jose_jwe_alg **jose); - -/** - * lws_gencrypto_jwe_alg_to_definition() - look up a jwe alg name - * - * \param alg: the jwe alg name - * \param jose: pointer to the pointer to the info struct to set on success - * - * Returns 0 if *jose set, else nonzero for failure - */ -LWS_VISIBLE LWS_EXTERN int -lws_gencrypto_jwe_alg_to_definition(const char *alg, - const struct lws_jose_jwe_alg **jose); - -/** - * lws_gencrypto_jwe_enc_to_definition() - look up a jwe enc name - * - * \param alg: the jwe enc name - * \param jose: pointer to the pointer to the info struct to set on success - * - * Returns 0 if *jose set, else nonzero for failure - */ -LWS_VISIBLE LWS_EXTERN int -lws_gencrypto_jwe_enc_to_definition(const char *enc, - const struct lws_jose_jwe_alg **jose); - -/** - * lws_jws_parse_jose() - parse a JWS JOSE header - * - * \param jose: the jose struct to set to parsing results - * \param buf: the raw JOSE header - * \param len: the length of the raw JOSE header - * \param temp: parent-owned buffer to "allocate" elements into - * \param temp_len: amount of space available in temp - * - * returns the amount of temp used, or -1 for error - */ -LWS_VISIBLE LWS_EXTERN int -lws_jws_parse_jose(struct lws_jose *jose, - const char *buf, int len, char *temp, int *temp_len); - -/** - * lws_jwe_parse_jose() - parse a JWE JOSE header - * - * \param jose: the jose struct to set to parsing results - * \param buf: the raw JOSE header - * \param len: the length of the raw JOSE header - * \param temp: parent-owned buffer to "allocate" elements into - * \param temp_len: amount of space available in temp - * - * returns the amount of temp used, or -1 for error - */ -LWS_VISIBLE LWS_EXTERN int -lws_jwe_parse_jose(struct lws_jose *jose, - const char *buf, int len, char *temp, int *temp_len); - diff --git a/win64/include/websockets/libwebsockets/lws-jwe.h b/win64/include/websockets/libwebsockets/lws-jwe.h deleted file mode 100644 index 6fa99793..00000000 --- a/win64/include/websockets/libwebsockets/lws-jwe.h +++ /dev/null @@ -1,164 +0,0 @@ - /* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * JWE Compact Serialization consists of - * - * BASE64URL(UTF8(JWE Protected Header)) || '.' || - * BASE64URL(JWE Encrypted Key) || '.' || - * BASE64URL(JWE Initialization Vector) || '.' || - * BASE64URL(JWE Ciphertext) || '.' || - * BASE64URL(JWE Authentication Tag) - */ - -#define LWS_JWE_RFC3394_OVERHEAD_BYTES 8 -#define LWS_JWE_AES_IV_BYTES 16 - -#define LWS_JWE_LIMIT_RSA_KEY_BITS 4096 -#define LWS_JWE_LIMIT_AES_KEY_BITS (512 + 64) /* RFC3394 Key Wrap adds 64b */ -#define LWS_JWE_LIMIT_EC_KEY_BITS 528 /* 521 rounded to byte boundary */ -#define LWS_JWE_LIMIT_HASH_BITS (LWS_GENHASH_LARGEST * 8) - -/* the largest key element for any cipher */ -#define LWS_JWE_LIMIT_KEY_ELEMENT_BYTES (LWS_JWE_LIMIT_RSA_KEY_BITS / 8) - - -struct lws_jwe { - struct lws_jose jose; - struct lws_jws jws; - struct lws_jwk jwk; - - /* - * We have to keep a copy of the CEK so we can reuse it with later - * key encryptions for the multiple recipient case. - */ - uint8_t cek[LWS_JWE_LIMIT_KEY_ELEMENT_BYTES]; - unsigned int cek_valid:1; - - int recip; -}; - -LWS_VISIBLE LWS_EXTERN void -lws_jwe_init(struct lws_jwe *jwe, struct lws_context *context); - -LWS_VISIBLE LWS_EXTERN void -lws_jwe_destroy(struct lws_jwe *jwe); - -LWS_VISIBLE LWS_EXTERN void -lws_jwe_be64(uint64_t c, uint8_t *p8); - -/* - * JWE Compact Serialization consists of - * - * BASE64URL(UTF8(JWE Protected Header)) || '.' || - * BASE64URL(JWE Encrypted Key) || '.' || - * BASE64URL(JWE Initialization Vector) || '.' || - * BASE64URL(JWE Ciphertext) || '.' || - * BASE64URL(JWE Authentication Tag) - */ - -LWS_VISIBLE LWS_EXTERN int -lws_jwe_render_compact(struct lws_jwe *jwe, char *out, size_t out_len); - -LWS_VISIBLE int -lws_jwe_render_flattened(struct lws_jwe *jwe, char *out, size_t out_len); - -LWS_VISIBLE LWS_EXTERN int -lws_jwe_json_parse(struct lws_jwe *jwe, const uint8_t *buf, int len, - char *temp, int *temp_len); - -/** - * lws_jwe_auth_and_decrypt() - confirm and decrypt JWE - * - * \param jose: jose context - * \param jws: jws / jwe context... .map and .map_b64 must be filled already - * - * This is a high level JWE decrypt api that takes a jws with the maps - * already processed, and if the authentication passes, returns the decrypted - * plaintext in jws.map.buf[LJWE_CTXT] and its length in jws.map.len[LJWE_CTXT]. - * - * In the jws, the following fields must have been set by the caller - * - * .context - * .jwk (the key encryption key) - * .map - * .map_b64 - * - * Having the b64 and decoded maps filled externally makes it flexible where - * the data was picked from, eg, from a Complete JWE JSON serialization, a - * flattened one, or a Compact Serialization. - * - * Returns decrypt length, or -1 for failure. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jwe_auth_and_decrypt(struct lws_jwe *jwe, char *temp, int *temp_len); - -/** - * lws_jwe_encrypt() - perform JWE encryption - * - * \param jose: the JOSE header information (encryption types, etc) - * \param jws: the JWE elements, pointer to jwk etc - * \param temp: parent-owned buffer to "allocate" elements into - * \param temp_len: amount of space available in temp - * - * May be called up to LWS_JWS_MAX_RECIPIENTS times to encrypt the same CEK - * multiple ways on the same JWE payload. - * - * returns the amount of temp used, or -1 for error. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jwe_encrypt(struct lws_jwe *jwe, char *temp, int *temp_len); - -/** - * lws_jwe_create_packet() - add b64 sig to b64 hdr + payload - * - * \param jwe: the struct lws_jwe we are trying to render - * \param payload: unencoded payload JSON - * \param len: length of unencoded payload JSON - * \param nonce: Nonse string to include in protected header - * \param out: buffer to take signed packet - * \param out_len: size of \p out buffer - * \param conext: lws_context to get random from - * - * This creates a "flattened" JWS packet from the jwk and the plaintext - * payload, and signs it. The packet is written into \p out. - * - * This does the whole packet assembly and signing, calling through to - * lws_jws_sign_from_b64() as part of the process. - * - * Returns the length written to \p out, or -1. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jwe_create_packet(struct lws_jwe *jwe, - const char *payload, size_t len, const char *nonce, - char *out, size_t out_len, struct lws_context *context); - - -/* only exposed because we have test vectors that need it */ -LWS_VISIBLE LWS_EXTERN int -lws_jwe_auth_and_decrypt_cbc_hs(struct lws_jwe *jwe, uint8_t *enc_cek, - uint8_t *aad, int aad_len); - -/* only exposed because we have test vectors that need it */ -LWS_VISIBLE LWS_EXTERN int -lws_jwa_concat_kdf(struct lws_jwe *jwe, int direct, - uint8_t *out, const uint8_t *shared_secret, int sslen); diff --git a/win64/include/websockets/libwebsockets/lws-jwk.h b/win64/include/websockets/libwebsockets/lws-jwk.h deleted file mode 100644 index ab4aff59..00000000 --- a/win64/include/websockets/libwebsockets/lws-jwk.h +++ /dev/null @@ -1,218 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup jwk JSON Web Keys - * ## JSON Web Keys API - * - * Lws provides an API to parse JSON Web Keys into a struct lws_gencrypto_keyelem. - * - * "oct" and "RSA" type keys are supported. For "oct" keys, they are held in - * the "e" member of the struct lws_gencrypto_keyelem. - * - * Keys elements are allocated on the heap. You must destroy the allocations - * in the struct lws_gencrypto_keyelem by calling - * lws_genrsa_destroy_elements() when you are finished with it. - */ -///@{ - -enum enum_jwk_meta_tok { - JWK_META_KTY, - JWK_META_KID, - JWK_META_USE, - JWK_META_KEY_OPS, - JWK_META_X5C, - JWK_META_ALG, - - LWS_COUNT_JWK_ELEMENTS -}; - -struct lws_jwk { - /* key data elements */ - struct lws_gencrypto_keyelem e[LWS_GENCRYPTO_MAX_KEYEL_COUNT]; - /* generic meta key elements, like KID */ - struct lws_gencrypto_keyelem meta[LWS_COUNT_JWK_ELEMENTS]; - int kty; /**< one of LWS_JWK_ */ - char private_key; /* nonzero = has private key elements */ -}; - -typedef int (*lws_jwk_key_import_callback)(struct lws_jwk *s, void *user); - -struct lws_jwk_parse_state { - struct lws_jwk *jwk; - char b64[(((8192 / 8) * 4) / 3) + 1]; /* enough for 8Kb key */ - lws_jwk_key_import_callback per_key_cb; - void *user; - int pos; - unsigned short possible; -}; - -/** lws_jwk_import() - Create a JSON Web key from the textual representation - * - * \param jwk: the JWK object to create - * \param cb: callback for each jwk-processed key, or NULL if importing a single - * key with no parent "keys" JSON - * \param user: pointer to be passed to the callback, otherwise ignored by lws. - * NULL if importing a single key with no parent "keys" JSON - * \param in: a single JWK JSON stanza in utf-8 - * \param len: the length of the JWK JSON stanza in bytes - * - * Creates an lws_jwk struct filled with data from the JSON representation. - * - * There are two ways to use this... with some protocols a single jwk is - * delivered with no parent "keys": [] array. If you call this with cb and - * user as NULL, then the input will be interpreted like that and the results - * placed in s. - * - * The second case is that you are dealing with a "keys":[] array with one or - * more keys in it. In this case, the function iterates through the keys using - * s as a temporary jwk, and calls the user-provided callback for each key in - * turn while it return 0 (nonzero return from the callback terminates the - * iteration through any further keys). - */ -LWS_VISIBLE LWS_EXTERN int -lws_jwk_import(struct lws_jwk *jwk, lws_jwk_key_import_callback cb, void *user, - const char *in, size_t len); - -/** lws_jwk_destroy() - Destroy a JSON Web key - * - * \param jwk: the JWK object to destroy - * - * All allocations in the lws_jwk are destroyed - */ -LWS_VISIBLE LWS_EXTERN void -lws_jwk_destroy(struct lws_jwk *jwk); - -/** lws_jwk_dup_oct() - Set a jwk to a dup'd binary OCT key - * - * \param jwk: the JWK object to set - * \param key: the JWK object to destroy - * \param len: the JWK object to destroy - * - * Sets the kty to OCT, allocates len bytes for K and copies len bytes of key - * into the allocation. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jwk_dup_oct(struct lws_jwk *jwk, const void *key, int len); - -#define LWSJWKF_EXPORT_PRIVATE (1 << 0) -#define LWSJWKF_EXPORT_NOCRLF (1 << 1) - -/** lws_jwk_export() - Export a JSON Web key to a textual representation - * - * \param jwk: the JWK object to export - * \param flags: control export options - * \param p: the buffer to write the exported JWK to - * \param len: the length of the buffer \p p in bytes... reduced by used amount - * - * Returns length of the used part of the buffer if OK, or -1 for error. - * - * \p flags can be OR-ed together - * - * LWSJWKF_EXPORT_PRIVATE: default is only public part, set this to also export - * the private part - * - * LWSJWKF_EXPORT_NOCRLF: normally adds a CRLF at the end of the export, if - * you need to suppress it, set this flag - * - * Serializes the content of the JWK into a char buffer. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jwk_export(struct lws_jwk *jwk, int flags, char *p, int *len); - -/** lws_jwk_load() - Import a JSON Web key from a file - * - * \param jwk: the JWK object to load into - * \param filename: filename to load from - * \param cb: optional callback for each key - * \param user: opaque user pointer passed to cb if given - * - * Returns 0 for OK or -1 for failure - * - * There are two ways to use this... with some protocols a single jwk is - * delivered with no parent "keys": [] array. If you call this with cb and - * user as NULL, then the input will be interpreted like that and the results - * placed in s. - * - * The second case is that you are dealing with a "keys":[] array with one or - * more keys in it. In this case, the function iterates through the keys using - * s as a temporary jwk, and calls the user-provided callback for each key in - * turn while it return 0 (nonzero return from the callback terminates the - * iteration through any further keys, leaving the last one in s). - */ -LWS_VISIBLE LWS_EXTERN int -lws_jwk_load(struct lws_jwk *jwk, const char *filename, - lws_jwk_key_import_callback cb, void *user); - -/** lws_jwk_save() - Export a JSON Web key to a file - * - * \param jwk: the JWK object to save from - * \param filename: filename to save to - * - * Returns 0 for OK or -1 for failure - */ -LWS_VISIBLE LWS_EXTERN int -lws_jwk_save(struct lws_jwk *jwk, const char *filename); - -/** lws_jwk_rfc7638_fingerprint() - jwk to RFC7638 compliant fingerprint - * - * \param jwk: the JWK object to fingerprint - * \param digest32: buffer to take 32-byte digest - * - * Returns 0 for OK or -1 for failure - */ -LWS_VISIBLE LWS_EXTERN int -lws_jwk_rfc7638_fingerprint(struct lws_jwk *jwk, char *digest32); - -/** lws_jwk_strdup_meta() - allocate a duplicated string meta element - * - * \param jwk: the JWK object to fingerprint - * \param idx: JWK_META_ element index - * \param in: string to copy - * \param len: length of string to copy - * - * Returns 0 for OK or -1 for failure - */ -LWS_VISIBLE LWS_EXTERN int -lws_jwk_strdup_meta(struct lws_jwk *jwk, enum enum_jwk_meta_tok idx, - const char *in, int len); - - -LWS_VISIBLE LWS_EXTERN int -lws_jwk_dump(struct lws_jwk *jwk); - -/** lws_jwk_generate() - create a new key of given type and characteristics - * - * \param context: the struct lws_context used for RNG - * \param jwk: the JWK object to fingerprint - * \param kty: One of the LWS_GENCRYPTO_KTY_ key types - * \param bits: for OCT and RSA keys, the number of bits - * \param curve: for EC keys, the name of the curve - * - * Returns 0 for OK or -1 for failure - */ -LWS_VISIBLE int -lws_jwk_generate(struct lws_context *context, struct lws_jwk *jwk, - enum lws_gencrypto_kty kty, int bits, const char *curve); - -///@} diff --git a/win64/include/websockets/libwebsockets/lws-jws.h b/win64/include/websockets/libwebsockets/lws-jws.h deleted file mode 100644 index c59affb9..00000000 --- a/win64/include/websockets/libwebsockets/lws-jws.h +++ /dev/null @@ -1,559 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup jws JSON Web Signature - * ## JSON Web Signature API - * - * Lws provides an API to check and create RFC7515 JSON Web Signatures - * - * SHA256/384/512 HMAC, and RSA 256/384/512 are supported. - * - * The API uses your TLS library crypto, but works exactly the same no matter - * what your TLS backend is. - */ -///@{ - -/* - * The maps are built to work with both JWS (LJWS_) and JWE (LJWE_), and are - * sized to the slightly larger JWE case. - */ - -enum enum_jws_sig_elements { - - /* JWS block namespace */ - LJWS_JOSE, - LJWS_PYLD, - LJWS_SIG, - LJWS_UHDR, - - /* JWE block namespace */ - LJWE_JOSE = 0, - LJWE_EKEY, - LJWE_IV, - LJWE_CTXT, - LJWE_ATAG, - LJWE_AAD, - - LWS_JWS_MAX_COMPACT_BLOCKS -}; - -struct lws_jws_map { - const char *buf[LWS_JWS_MAX_COMPACT_BLOCKS]; - uint32_t len[LWS_JWS_MAX_COMPACT_BLOCKS]; -}; - -#define LWS_JWS_MAX_SIGS 3 - -struct lws_jws { - struct lws_jwk *jwk; /* the struct lws_jwk containing the signing key */ - struct lws_context *context; /* the lws context (used to get random) */ - struct lws_jws_map map, map_b64; -}; - -/* jws EC signatures do not have ASN.1 in them, meaning they're incompatible - * with generic signatures. - */ - -/** - * lws_jws_init() - initialize a jws for use - * - * \param jws: pointer to the jws to initialize - * \param jwk: the jwk to use with this jws - * \param context: the lws_context to use - */ -LWS_VISIBLE LWS_EXTERN void -lws_jws_init(struct lws_jws *jws, struct lws_jwk *jwk, - struct lws_context *context); - -/** - * lws_jws_destroy() - scrub a jws - * - * \param jws: pointer to the jws to destroy - * - * Call before the jws goes out of scope. - * - * Elements defined in the jws are zeroed. - */ -LWS_VISIBLE LWS_EXTERN void -lws_jws_destroy(struct lws_jws *jws); - -/** - * lws_jws_sig_confirm_compact() - check signature - * - * \param map: pointers and lengths for each of the unencoded JWS elements - * \param jwk: public key - * \param context: lws_context - * \param temp: scratchpad - * \param temp_len: length of scratchpad - * - * Confirms the signature on a JWS. Use if you have non-b64 plain JWS elements - * in a map... it'll make a temp b64 version needed for comparison. See below - * for other variants. - * - * Returns 0 on match. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jws_sig_confirm_compact(struct lws_jws_map *map, struct lws_jwk *jwk, - struct lws_context *context, - char *temp, int *temp_len); - -LWS_VISIBLE LWS_EXTERN int -lws_jws_sig_confirm_compact_b64_map(struct lws_jws_map *map_b64, - struct lws_jwk *jwk, - struct lws_context *context, - char *temp, int *temp_len); - -/** - * lws_jws_sig_confirm_compact_b64() - check signature on b64 compact JWS - * - * \param in: pointer to b64 jose.payload[.hdr].sig - * \param len: bytes available at \p in - * \param map: map to take decoded non-b64 content - * \param jwk: public key - * \param context: lws_context - * \param temp: scratchpad - * \param temp_len: size of scratchpad - * - * Confirms the signature on a JWS. Use if you have you have b64 compact layout - * (jose.payload.hdr.sig) as an aggregated string... it'll make a temp plain - * version needed for comparison. - * - * Returns 0 on match. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jws_sig_confirm_compact_b64(const char *in, size_t len, - struct lws_jws_map *map, - struct lws_jwk *jwk, - struct lws_context *context, - char *temp, int *temp_len); - -/** - * lws_jws_sig_confirm() - check signature on plain + b64 JWS elements - * - * \param map_b64: pointers and lengths for each of the b64-encoded JWS elements - * \param map: pointers and lengths for each of the unencoded JWS elements - * \param jwk: public key - * \param context: lws_context - * - * Confirms the signature on a JWS. Use if you have you already have both b64 - * compact layout (jose.payload.hdr.sig) and decoded JWS elements in maps. - * - * If you had the b64 string and called lws_jws_compact_decode() on it, you - * will end up with both maps, and can use this api version, saving needlessly - * regenerating any temp map. - * - * Returns 0 on match. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jws_sig_confirm(struct lws_jws_map *map_b64, /* b64-encoded */ - struct lws_jws_map *map, /* non-b64 */ - struct lws_jwk *jwk, struct lws_context *context); - -/** - * lws_jws_sign_from_b64() - add b64 sig to b64 hdr + payload - * - * \param jose: jose header information - * \param jws: information to include in the signature - * \param b64_sig: output buffer for b64 signature - * \param sig_len: size of \p b64_sig output buffer - * - * This adds a b64-coded JWS signature of the b64-encoded protected header - * and b64-encoded payload, at \p b64_sig. The signature will be as large - * as the N element of the RSA key when the RSA key is used, eg, 512 bytes for - * a 4096-bit key, and then b64-encoding on top. - * - * In some special cases, there is only payload to sign and no header, in that - * case \p b64_hdr may be NULL, and only the payload will be hashed before - * signing. - * - * Returns the length of the encoded signature written to \p b64_sig, or -1. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jws_sign_from_b64(struct lws_jose *jose, struct lws_jws *jws, char *b64_sig, - size_t sig_len); - -/** - * lws_jws_compact_decode() - converts and maps compact serialization b64 sections - * - * \param in: the incoming compact serialized b64 - * \param len: the length of the incoming compact serialized b64 - * \param map: pointer to the results structure - * \param map_b64: NULL, or pointer to a second results structure taking block - * information about the undecoded b64 - * \param out: buffer to hold decoded results - * \param out_len: size of out in bytes - * - * Returns number of sections (2 if "none", else 3), or -1 if illegal. - * - * map is set to point to the start and hold the length of each decoded block. - * If map_b64 is non-NULL, then it's set with information about the input b64 - * blocks. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jws_compact_decode(const char *in, int len, struct lws_jws_map *map, - struct lws_jws_map *map_b64, char *out, int *out_len); - -LWS_VISIBLE LWS_EXTERN int -lws_jws_compact_encode(struct lws_jws_map *map_b64, /* b64-encoded */ - const struct lws_jws_map *map, /* non-b64 */ - char *buf, int *out_len); - -LWS_VISIBLE LWS_EXTERN int -lws_jws_sig_confirm_json(const char *in, size_t len, - struct lws_jws *jws, struct lws_jwk *jwk, - struct lws_context *context, - char *temp, int *temp_len); - -/** - * lws_jws_write_flattened_json() - create flattened JSON sig - * - * \param jws: information to include in the signature - * \param flattened: output buffer for JSON - * \param len: size of \p flattened output buffer - * - */ -LWS_VISIBLE LWS_EXTERN int -lws_jws_write_flattened_json(struct lws_jws *jws, char *flattened, size_t len); - -/** - * lws_jws_write_compact() - create flattened JSON sig - * - * \param jws: information to include in the signature - * \param compact: output buffer for compact format - * \param len: size of \p flattened output buffer - * - */ -LWS_VISIBLE LWS_EXTERN int -lws_jws_write_compact(struct lws_jws *jws, char *compact, size_t len); - - - -/* - * below apis are not normally needed if dealing with whole JWS... they're - * useful for creating from scratch - */ - - -/** - * lws_jws_dup_element() - allocate space for an element and copy data into it - * - * \param map: map to create the element in - * \param idx: index of element in the map to create - * \param temp: space to allocate in - * \param temp_len: available space at temp - * \param in: data to duplicate into element - * \param in_len: length of data to duplicate - * \param actual_alloc: 0 for same as in_len, else actual allocation size - * - * Copies in_len from in to temp, if temp_len is sufficient. - * - * Returns 0 or -1 if not enough space in temp / temp_len. - * - * Over-allocation can be acheived by setting actual_alloc to the real - * allocation desired... in_len will be copied into it. - * - * *temp_len is reduced by actual_alloc if successful. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jws_dup_element(struct lws_jws_map *map, int idx, - char *temp, int *temp_len, const void *in, size_t in_len, - size_t actual_alloc); - -/** - * lws_jws_randomize_element() - create an element and fill with random - * - * \param context: lws_context used for random - * \param map: map to create the element in - * \param idx: index of element in the map to create - * \param temp: space to allocate in - * \param temp_len: available space at temp - * \param random_len: length of data to fill with random - * \param actual_alloc: 0 for same as random_len, else actual allocation size - * - * Randomize random_len bytes at temp, if temp_len is sufficient. - * - * Returns 0 or -1 if not enough space in temp / temp_len. - * - * Over-allocation can be acheived by setting actual_alloc to the real - * allocation desired... the first random_len will be filled with random. - * - * *temp_len is reduced by actual_alloc if successful. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jws_randomize_element(struct lws_context *context, - struct lws_jws_map *map, - int idx, char *temp, int *temp_len, size_t random_len, - size_t actual_alloc); - -/** - * lws_jws_alloc_element() - create an element and reserve space for content - * - * \param map: map to create the element in - * \param idx: index of element in the map to create - * \param temp: space to allocate in - * \param temp_len: available space at temp - * \param len: logical length of element - * \param actual_alloc: 0 for same as len, else actual allocation size - * - * Allocate len bytes at temp, if temp_len is sufficient. - * - * Returns 0 or -1 if not enough space in temp / temp_len. - * - * Over-allocation can be acheived by setting actual_alloc to the real - * allocation desired... the element logical length will be set to len. - * - * *temp_len is reduced by actual_alloc if successful. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jws_alloc_element(struct lws_jws_map *map, int idx, char *temp, - int *temp_len, size_t len, size_t actual_alloc); - -/** - * lws_jws_encode_b64_element() - create an b64-encoded element - * - * \param map: map to create the element in - * \param idx: index of element in the map to create - * \param temp: space to allocate in - * \param temp_len: available space at temp - * \param in: pointer to unencoded input - * \param in_len: length of unencoded input - * - * Allocate len bytes at temp, if temp_len is sufficient. - * - * Returns 0 or -1 if not enough space in temp / temp_len. - * - * Over-allocation can be acheived by setting actual_alloc to the real - * allocation desired... the element logical length will be set to len. - * - * *temp_len is reduced by actual_alloc if successful. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jws_encode_b64_element(struct lws_jws_map *map, int idx, - char *temp, int *temp_len, const void *in, - size_t in_len); - - -/** - * lws_jws_b64_compact_map() - find block starts and lengths in compact b64 - * - * \param in: pointer to b64 jose.payload[.hdr].sig - * \param len: bytes available at \p in - * \param map: output struct with pointers and lengths for each JWS element - * - * Scans a jose.payload[.hdr].sig b64 string and notes where the blocks start - * and their length into \p map. - * - * Returns number of blocks if OK. May return <0 if malformed. - * May not fill all map entries. - */ - -LWS_VISIBLE LWS_EXTERN int -lws_jws_b64_compact_map(const char *in, int len, struct lws_jws_map *map); - - -/** - * lws_jws_base64_enc() - encode input data into b64url data - * - * \param in: the incoming plaintext - * \param in_len: the length of the incoming plaintext in bytes - * \param out: the buffer to store the b64url encoded data to - * \param out_max: the length of \p out in bytes - * - * Returns either -1 if problems, or the number of bytes written to \p out. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jws_base64_enc(const char *in, size_t in_len, char *out, size_t out_max); - -/** - * lws_jws_encode_section() - encode input data into b64url data, - * prepending . if not first - * - * \param in: the incoming plaintext - * \param in_len: the length of the incoming plaintext in bytes - * \param first: nonzero if the first section - * \param p: the buffer to store the b64url encoded data to - * \param end: just past the end of p - * - * Returns either -1 if problems, or the number of bytes written to \p out. - * If the section is not the first one, '.' is prepended. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jws_encode_section(const char *in, size_t in_len, int first, char **p, - char *end); - -/** - * lws_jwt_signed_validate() - check a compact JWT against a key and alg - * - * \param ctx: the lws_context - * \param jwk: the key for checking the signature - * \param alg_list: the expected alg name, like "ES512" - * \param com: the compact JWT - * \param len: the length of com - * \param temp: a temp scratchpad - * \param tl: available length of temp scratchpad - * \param out: the output buffer to hold the validated plaintext - * \param out_len: on entry, max length of out; on exit, used length of out - * - * Returns nonzero if the JWT cannot be validated or the plaintext can't fit the - * provided output buffer, or 0 if it is validated as being signed by the - * provided jwk. - * - * If validated, the plaintext in the JWT is copied into out and out_len set to - * the used length. - * - * temp can be discarded or reused after the call returned, it's used to hold - * transformations of the B64 JWS in the JWT. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jwt_signed_validate(struct lws_context *ctx, struct lws_jwk *jwk, - const char *alg_list, const char *com, size_t len, - char *temp, int tl, char *out, size_t *out_len); - -/** - * lws_jwt_sign_compact() - generate a compact JWT using a key and alg - * - * \param ctx: the lws_context - * \param jwk: the signing key - * \param alg: the signing alg name, like "ES512" - * \param out: the output buffer to hold the signed JWT in compact form - * \param out_len: on entry, the length of out; on exit, the used amount of out - * \param temp: a temp scratchpad - * \param tl: available length of temp scratchpad - * \param format: a printf style format specification - * \param ...: zero or more args for the format specification - * - * Creates a JWT in a single step, from the format string and args through to - * outputting a well-formed compact JWT representation in out. - * - * Returns 0 if all is well and *out_len is the amount of data in out, else - * nonzero if failed. Temp must be large enough to hold various intermediate - * representations. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jwt_sign_compact(struct lws_context *ctx, struct lws_jwk *jwk, - const char *alg, char *out, size_t *out_len, char *temp, - int tl, const char *format, ...) LWS_FORMAT(8); - -/** - * lws_jwt_token_sanity() - check a validated jwt payload for sanity - * - * \param in: the JWT payload - * \param in_len: the length of the JWT payload - * \param iss: the expected issuer of the token - * \param aud: the expected audience of the token - * \param csrf_in: NULL, or the csrf token that came in on a URL - * \param sub: a buffer to hold the subject name in the JWT (eg, account name) - * \param sub_len: the max length of the sub buffer - * \param secs_left: set to the number of seconds of valid auth left if valid - * - * This performs some generic sanity tests on validated JWT payload... - * - * - the issuer is as expected - * - the audience is us - * - current time is OK for nbf ("not before") in the token - * - current time is OK for exp ("expiry") in the token - * - if csrf_in is not NULL, that the JWK has a csrf and it matches it - * - if sub is not NULL, that the JWK provides a subject (and copies it to sub) - * - * If the tests pass, *secs_left is set to the number of remaining seconds the - * auth is valid. - * - * Returns 0 if no inconsistency, else nonzero. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jwt_token_sanity(const char *in, size_t in_len, - const char *iss, const char *aud, const char *csrf_in, - char *sub, size_t sub_len, unsigned long *exp_unix_time); - -#if defined(LWS_ROLE_H1) || defined(LWS_ROLE_H2) - -struct lws_jwt_sign_set_cookie { - struct lws_jwk *jwk; - /**< entry: required signing key */ - const char *alg; - /**< entry: required signing alg, eg, "ES512" */ - const char *iss; - /**< entry: issuer name to use */ - const char *aud; - /**< entry: audience */ - const char *cookie_name; - /**< entry: the name of the cookie */ - char sub[33]; - /**< sign-entry, validate-exit: subject */ - const char *extra_json; - /**< sign-entry, validate-exit: - * optional "ext" JSON object contents for the JWT */ - size_t extra_json_len; - /**< validate-exit: - * length of optional "ext" JSON object contents for the JWT */ - const char *csrf_in; - /**< validate-entry: - * NULL, or an external CSRF token to check against what is in the JWT */ - unsigned long expiry_unix_time; - /**< sign-entry: seconds the JWT and cookie may live, - * validate-exit: expiry unix time */ -}; - -/** - * lws_jwt_sign_token_set_cookie() - creates sets a JWT in a wsi cookie - * - * \param wsi: the wsi to create the cookie header on - * \param i: structure describing what should be in the JWT - * \param p: wsi headers area - * \param end: end of wsi headers area - * - * Creates a JWT specified \p i, and attaches it to the outgoing headers on - * wsi. Returns 0 if successful. - * - * Best-practice security restrictions are applied to the cookie set action, - * including forcing httponly, and __Host- prefix. As required by __Host-, the - * cookie Path is set to /. __Host- is applied by the function, the cookie_name - * should just be "xyz" for "__Host-xyz". - * - * \p extra_json should just be the bare JSON, a { } is provided around it by - * the function if it's non-NULL. For example, "\"authorization\": 1". - * - * It's recommended the secs parameter is kept as small as consistent with one - * user session on the site if possible, eg, 10 minutes or 20 minutes. At the - * server, it can determine how much time is left in the auth and inform the - * client; if the JWT validity expires, the page should reload so the UI always - * reflects what's possible to do with the authorization state correctly. If - * the JWT expires, the user can log back in using credentials usually stored in - * the browser and auto-filled-in, so this is not very inconvenient. - * - * This is a helper on top of the other JOSE and JWT apis that somewhat crosses - * over between JWT and HTTP, since it knows about cookies. So it is only built - * if both LWS_WITH_JOSE and one of the http-related roles enabled. - */ -LWS_VISIBLE LWS_EXTERN int -lws_jwt_sign_token_set_http_cookie(struct lws *wsi, - const struct lws_jwt_sign_set_cookie *i, - uint8_t **p, uint8_t *end); -LWS_VISIBLE LWS_EXTERN int -lws_jwt_get_http_cookie_validate_jwt(struct lws *wsi, - struct lws_jwt_sign_set_cookie *i, - char *out, size_t *out_len); -#endif - -///@} diff --git a/win64/include/websockets/libwebsockets/lws-led.h b/win64/include/websockets/libwebsockets/lws-led.h deleted file mode 100644 index 79e03432..00000000 --- a/win64/include/websockets/libwebsockets/lws-led.h +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Generic LED controller ops - * - * Copyright (C) 2019 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * This is like an abstract class for leds, a real implementation provides - * functions for the ops that use the underlying, eg, OS gpio arrangements. - */ - -/* only b15 significant for GPIO */ -typedef uint16_t lws_led_intensity_t; -typedef uint16_t lws_led_seq_phase_t; - -/* the normalized max intensity */ -#define LWS_LED_MAX_INTENSITY (0xffff) - -/* the normalized 360 degree phase count for intensity functions */ -#define LWS_LED_FUNC_PHASE 65536 -/* used when the sequence doesn't stop by itself and goes around forever */ -#define LWS_SEQ_LEDPHASE_TOTAL_ENDLESS (-1) - -#define LWS_LED_SEQUENCER_UPDATE_INTERVAL_MS 33 - -struct lws_led_state; /* opaque */ -struct lws_pwm_ops; /* forward ref */ - -typedef lws_led_intensity_t (*lws_led_lookup_t)(lws_led_seq_phase_t ph); - -typedef struct lws_led_sequence_def_t { - lws_led_lookup_t func; - lws_led_seq_phase_t ledphase_offset; - int ledphase_total; /* 65536= one cycle */ - uint16_t ms; - uint8_t flags; -} lws_led_sequence_def_t; - -enum { - LLSI_CURR, - LLSI_NEXT, - LLSI_TRANS -}; - -typedef struct lws_led_state_ch -{ - const lws_led_sequence_def_t *seq; /* NULL = inactive */ - lws_led_seq_phase_t ph; - lws_led_seq_phase_t step; - int phase_budget; - lws_led_intensity_t last; - /**< at the end of the sequence we decouple the sequencer, but leave - * the last computed sample behind for further transitions to base off - */ -} lws_led_state_ch_t; - -typedef struct lws_led_state_chs -{ - lws_led_state_ch_t seqs[3]; -} lws_led_state_chs_t; - -/* this should always be first in the subclassed implementation types */ - -typedef struct lws_led_ops { - void (*intensity)(const struct lws_led_ops *lo, const char *name, - lws_led_intensity_t inten); - /**< for BOOL led control like GPIO, only inten b15 is significant */ - struct lws_led_state * (*create)(const struct lws_led_ops *led_ops); - void (*destroy)(struct lws_led_state *); -} lws_led_ops_t; - -typedef struct lws_led_gpio_map { - const char *name; - _lws_plat_gpio_t gpio; - lws_led_lookup_t intensity_correction; - /**< May be NULL. If GPIO-based LED, ignored. If pwm_ops provided, - * NULL means use default CIE 100% correction function. If non-NULL, - * use the pointed-to correction function. This is useful to provide - * LED-specific intensity correction / scaling so different types of - * LED can "look the same". */ - const struct lws_pwm_ops *pwm_ops; - /**< if NULL, gpio controls the led directly. If set to a pwm_ops, - * the led control is outsourced to the pwm controller. */ - uint8_t active_level; -} lws_led_gpio_map_t; - -typedef struct lws_led_gpio_controller { - const lws_led_ops_t led_ops; - - const lws_gpio_ops_t *gpio_ops; - const lws_led_gpio_map_t *led_map; - uint8_t count_leds; -} lws_led_gpio_controller_t; - -/* ops */ - -LWS_VISIBLE LWS_EXTERN struct lws_led_state * -lws_led_gpio_create(const lws_led_ops_t *led_ops); - -LWS_VISIBLE LWS_EXTERN void -lws_led_gpio_destroy(struct lws_led_state *lcs); - -/** - * lws_led_gpio_intensity() - set the static intensity of an led - * - * \param lo: the base class of the led controller - * \param index: which led in the controller set - * \param inten: 16-bit unsigned intensity - * - * For LEDs controlled by a BOOL like GPIO, only inten b15 is significant. - * For PWM type LED control, as many bits as the hardware can support from b15 - * down are significant. - */ -LWS_VISIBLE LWS_EXTERN void -lws_led_gpio_intensity(const struct lws_led_ops *lo, const char *name, - lws_led_intensity_t inten); - -LWS_VISIBLE LWS_EXTERN int -lws_led_transition(struct lws_led_state *lcs, const char *name, - const lws_led_sequence_def_t *next, - const lws_led_sequence_def_t *trans); - - -#define lws_led_gpio_ops \ - { \ - .create = lws_led_gpio_create, \ - .destroy = lws_led_gpio_destroy, \ - .intensity = lws_led_gpio_intensity, \ - } - diff --git a/win64/include/websockets/libwebsockets/lws-lejp.h b/win64/include/websockets/libwebsockets/lws-lejp.h deleted file mode 100644 index cd90777b..00000000 --- a/win64/include/websockets/libwebsockets/lws-lejp.h +++ /dev/null @@ -1,301 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** \defgroup lejp JSON parser - * ##JSON parsing related functions - * \ingroup lwsapi - * - * LEJP is an extremely lightweight JSON stream parser included in lws. - */ -//@{ -struct lejp_ctx; - -#if !defined(LWS_ARRAY_SIZE) -#define LWS_ARRAY_SIZE(_x) (sizeof(_x) / sizeof(_x[0])) -#endif -#define LEJP_FLAG_WS_KEEP 64 -#define LEJP_FLAG_WS_COMMENTLINE 32 - -enum lejp_states { - LEJP_IDLE = 0, - LEJP_MEMBERS = 1, - LEJP_M_P = 2, - LEJP_MP_STRING = LEJP_FLAG_WS_KEEP | 3, - LEJP_MP_STRING_ESC = LEJP_FLAG_WS_KEEP | 4, - LEJP_MP_STRING_ESC_U1 = LEJP_FLAG_WS_KEEP | 5, - LEJP_MP_STRING_ESC_U2 = LEJP_FLAG_WS_KEEP | 6, - LEJP_MP_STRING_ESC_U3 = LEJP_FLAG_WS_KEEP | 7, - LEJP_MP_STRING_ESC_U4 = LEJP_FLAG_WS_KEEP | 8, - LEJP_MP_DELIM = 9, - LEJP_MP_VALUE = 10, - LEJP_MP_VALUE_NUM_INT = LEJP_FLAG_WS_KEEP | 11, - LEJP_MP_VALUE_NUM_EXP = LEJP_FLAG_WS_KEEP | 12, - LEJP_MP_VALUE_TOK = LEJP_FLAG_WS_KEEP | 13, - LEJP_MP_COMMA_OR_END = 14, - LEJP_MP_ARRAY_END = 15, -}; - -enum lejp_reasons { - LEJP_CONTINUE = -1, - LEJP_REJECT_IDLE_NO_BRACE = -2, - LEJP_REJECT_MEMBERS_NO_CLOSE = -3, - LEJP_REJECT_MP_NO_OPEN_QUOTE = -4, - LEJP_REJECT_MP_STRING_UNDERRUN = -5, - LEJP_REJECT_MP_ILLEGAL_CTRL = -6, - LEJP_REJECT_MP_STRING_ESC_ILLEGAL_ESC = -7, - LEJP_REJECT_ILLEGAL_HEX = -8, - LEJP_REJECT_MP_DELIM_MISSING_COLON = -9, - LEJP_REJECT_MP_DELIM_BAD_VALUE_START = -10, - LEJP_REJECT_MP_VAL_NUM_INT_NO_FRAC = -11, - LEJP_REJECT_MP_VAL_NUM_FORMAT = -12, - LEJP_REJECT_MP_VAL_NUM_EXP_BAD_EXP = -13, - LEJP_REJECT_MP_VAL_TOK_UNKNOWN = -14, - LEJP_REJECT_MP_C_OR_E_UNDERF = -15, - LEJP_REJECT_MP_C_OR_E_NOTARRAY = -16, - LEJP_REJECT_MP_ARRAY_END_MISSING = -17, - LEJP_REJECT_STACK_OVERFLOW = -18, - LEJP_REJECT_MP_DELIM_ISTACK = -19, - LEJP_REJECT_NUM_TOO_LONG = -20, - LEJP_REJECT_MP_C_OR_E_NEITHER = -21, - LEJP_REJECT_UNKNOWN = -22, - LEJP_REJECT_CALLBACK = -23 -}; - -#define LEJP_FLAG_CB_IS_VALUE 64 - -enum lejp_callbacks { - LEJPCB_CONSTRUCTED = 0, - LEJPCB_DESTRUCTED = 1, - - LEJPCB_START = 2, - LEJPCB_COMPLETE = 3, - LEJPCB_FAILED = 4, - - LEJPCB_PAIR_NAME = 5, - - LEJPCB_VAL_TRUE = LEJP_FLAG_CB_IS_VALUE | 6, - LEJPCB_VAL_FALSE = LEJP_FLAG_CB_IS_VALUE | 7, - LEJPCB_VAL_NULL = LEJP_FLAG_CB_IS_VALUE | 8, - LEJPCB_VAL_NUM_INT = LEJP_FLAG_CB_IS_VALUE | 9, - LEJPCB_VAL_NUM_FLOAT = LEJP_FLAG_CB_IS_VALUE | 10, - LEJPCB_VAL_STR_START = 11, /* notice handle separately */ - LEJPCB_VAL_STR_CHUNK = LEJP_FLAG_CB_IS_VALUE | 12, - LEJPCB_VAL_STR_END = LEJP_FLAG_CB_IS_VALUE | 13, - - LEJPCB_ARRAY_START = 14, - LEJPCB_ARRAY_END = 15, - - LEJPCB_OBJECT_START = 16, - LEJPCB_OBJECT_END = 17, -}; - -/** - * _lejp_callback() - User parser actions - * \param ctx: LEJP context - * \param reason: Callback reason - * - * Your user callback is associated with the context at construction time, - * and receives calls as the parsing progresses. - * - * All of the callbacks may be ignored and just return 0. - * - * The reasons it might get called, found in @reason, are: - * - * LEJPCB_CONSTRUCTED: The context was just constructed... you might want to - * perform one-time allocation for the life of the context. - * - * LEJPCB_DESTRUCTED: The context is being destructed... if you made any - * allocations at construction-time, you can free them now - * - * LEJPCB_START: Parsing is beginning at the first byte of input - * - * LEJPCB_COMPLETE: Parsing has completed successfully. You'll get a 0 or - * positive return code from lejp_parse indicating the - * amount of unused bytes left in the input buffer - * - * LEJPCB_FAILED: Parsing failed. You'll get a negative error code - * returned from lejp_parse - * - * LEJPCB_PAIR_NAME: When a "name":"value" pair has had the name parsed, - * this callback occurs. You can find the new name at - * the end of ctx->path[] - * - * LEJPCB_VAL_TRUE: The "true" value appeared - * - * LEJPCB_VAL_FALSE: The "false" value appeared - * - * LEJPCB_VAL_NULL: The "null" value appeared - * - * LEJPCB_VAL_NUM_INT: A string representing an integer is in ctx->buf - * - * LEJPCB_VAL_NUM_FLOAT: A string representing a float is in ctx->buf - * - * LEJPCB_VAL_STR_START: We are starting to parse a string, no data yet - * - * LEJPCB_VAL_STR_CHUNK: We filled the string buffer in the ctx, but it's not - * the end of the string. We produce this to spill the - * intermediate buffer to the user code, so we can handle - * huge JSON strings using only the small buffer in the - * ctx. If the whole JSON string fits in the ctx buffer, - * you won't get these callbacks. - * - * LEJPCB_VAL_STR_END: String parsing has completed, the last chunk of the - * string is in ctx->buf. - * - * LEJPCB_ARRAY_START: An array started - * - * LEJPCB_ARRAY_END: An array ended - * - * LEJPCB_OBJECT_START: An object started - * - * LEJPCB_OBJECT_END: An object ended - */ -LWS_EXTERN signed char _lejp_callback(struct lejp_ctx *ctx, char reason); - -typedef signed char (*lejp_callback)(struct lejp_ctx *ctx, char reason); - -#ifndef LEJP_MAX_PARSING_STACK_DEPTH -#define LEJP_MAX_PARSING_STACK_DEPTH 5 -#endif -#ifndef LEJP_MAX_DEPTH -#define LEJP_MAX_DEPTH 12 -#endif -#ifndef LEJP_MAX_INDEX_DEPTH -#define LEJP_MAX_INDEX_DEPTH 5 -#endif -#ifndef LEJP_MAX_PATH -#define LEJP_MAX_PATH 128 -#endif -#ifndef LEJP_STRING_CHUNK -/* must be >= 30 to assemble floats */ -#define LEJP_STRING_CHUNK 254 -#endif - -enum num_flags { - LEJP_SEEN_MINUS = (1 << 0), - LEJP_SEEN_POINT = (1 << 1), - LEJP_SEEN_POST_POINT = (1 << 2), - LEJP_SEEN_EXP = (1 << 3) -}; - -struct _lejp_stack { - char s; /* lejp_state stack*/ - char p; /* path length */ - char i; /* index array length */ - char b; /* user bitfield */ -}; - -struct _lejp_parsing_stack { - void *user; /* private to the stack level */ - signed char (*callback)(struct lejp_ctx *ctx, char reason); - const char * const *paths; - uint8_t count_paths; - uint8_t ppos; - uint8_t path_match; -}; - -struct lejp_ctx { - - /* sorted by type for most compact alignment - * - * pointers - */ - void *user; - - /* arrays */ - - struct _lejp_parsing_stack pst[LEJP_MAX_PARSING_STACK_DEPTH]; - struct _lejp_stack st[LEJP_MAX_DEPTH]; - uint16_t i[LEJP_MAX_INDEX_DEPTH]; /* index array */ - uint16_t wild[LEJP_MAX_INDEX_DEPTH]; /* index array */ - char path[LEJP_MAX_PATH]; - char buf[LEJP_STRING_CHUNK + 1]; - - /* size_t */ - - size_t path_stride; /* 0 means default ptr size, else stride */ - - /* int */ - - uint32_t line; - - /* short */ - - uint16_t uni; - - /* char */ - - uint8_t npos; - uint8_t dcount; - uint8_t f; - uint8_t sp; /* stack head */ - uint8_t ipos; /* index stack depth */ - uint8_t count_paths; - uint8_t path_match; - uint8_t path_match_len; - uint8_t wildcount; - uint8_t pst_sp; /* parsing stack head */ - uint8_t outer_array; -}; - -LWS_VISIBLE LWS_EXTERN void -lejp_construct(struct lejp_ctx *ctx, - signed char (*callback)(struct lejp_ctx *ctx, char reason), - void *user, const char * const *paths, unsigned char paths_count); - -LWS_VISIBLE LWS_EXTERN void -lejp_destruct(struct lejp_ctx *ctx); - -LWS_VISIBLE LWS_EXTERN int -lejp_parse(struct lejp_ctx *ctx, const unsigned char *json, int len); - -LWS_VISIBLE LWS_EXTERN void -lejp_change_callback(struct lejp_ctx *ctx, - signed char (*callback)(struct lejp_ctx *ctx, char reason)); - -/* - * push the current paths / paths_count and lejp_cb to a stack in the ctx, and - * start using the new ones - */ -LWS_VISIBLE LWS_EXTERN int -lejp_parser_push(struct lejp_ctx *ctx, void *user, const char * const *paths, - unsigned char paths_count, lejp_callback lejp_cb); - -/* - * pop the previously used paths / paths_count and lejp_cb, and continue - * parsing using those as before - */ -LWS_VISIBLE LWS_EXTERN int -lejp_parser_pop(struct lejp_ctx *ctx); - -/* exported for use when reevaluating a path for use with a subcontext */ -LWS_VISIBLE LWS_EXTERN void -lejp_check_path_match(struct lejp_ctx *ctx); - -LWS_VISIBLE LWS_EXTERN int -lejp_get_wildcard(struct lejp_ctx *ctx, int wildcard, char *dest, int len); - -LWS_VISIBLE LWS_EXTERN const char * -lejp_error_to_string(int e); -//@} diff --git a/win64/include/websockets/libwebsockets/lws-logs.h b/win64/include/websockets/libwebsockets/lws-logs.h deleted file mode 100644 index c08384e6..00000000 --- a/win64/include/websockets/libwebsockets/lws-logs.h +++ /dev/null @@ -1,302 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** \defgroup log Logging - * - * ##Logging - * - * Lws provides flexible and filterable logging facilities, which can be - * used inside lws and in user code. - * - * Log categories may be individually filtered bitwise, and directed to built-in - * sinks for syslog-compatible logging, or a user-defined function. - */ -///@{ - -#define LLL_ERR (1 << 0) -#define LLL_WARN (1 << 1) -#define LLL_NOTICE (1 << 2) -#define LLL_INFO (1 << 3) -#define LLL_DEBUG (1 << 4) -#define LLL_PARSER (1 << 5) -#define LLL_HEADER (1 << 6) -#define LLL_EXT (1 << 7) -#define LLL_CLIENT (1 << 8) -#define LLL_LATENCY (1 << 9) -#define LLL_USER (1 << 10) -#define LLL_THREAD (1 << 11) - -#define LLL_COUNT (12) /* set to count of valid flags */ - -/** - * lwsl_timestamp: generate logging timestamp string - * - * \param level: logging level - * \param p: char * buffer to take timestamp - * \param len: length of p - * - * returns length written in p - */ -LWS_VISIBLE LWS_EXTERN int -lwsl_timestamp(int level, char *p, int len); - -#if defined(LWS_PLAT_OPTEE) && !defined(LWS_WITH_NETWORK) -#define _lws_log(aaa, ...) SMSG(__VA_ARGS__) -#else -LWS_VISIBLE LWS_EXTERN void _lws_log(int filter, const char *format, ...) LWS_FORMAT(2); -LWS_VISIBLE LWS_EXTERN void _lws_logv(int filter, const char *format, va_list vl); -#endif - -/* - * Figure out which logs to build in or not - */ - -#if defined(_DEBUG) - /* - * In DEBUG build, select all logs unless NO_LOGS - */ - #if defined(LWS_WITH_NO_LOGS) - #define _LWS_LINIT (LLL_ERR | LLL_USER) - #else - #define _LWS_LINIT ((1 << LLL_COUNT) - 1) - #endif -#else /* not _DEBUG */ - #define _LWS_LINIT (LLL_ERR | LLL_USER | LLL_WARN | LLL_NOTICE) -#endif /* _DEBUG */ - -/* - * Create either empty overrides or the ones forced at build-time. - * These overrides have the final say... any bits set in - * LWS_LOGGING_BITFIELD_SET force the build of those logs, any bits - * set in LWS_LOGGING_BITFIELD_CLEAR disable the build of those logs. - * - * If not defined lws decides based on CMAKE_BUILD_TYPE=DEBUG or not - */ - -#if defined(LWS_LOGGING_BITFIELD_SET) - #define _LWS_LBS (LWS_LOGGING_BITFIELD_SET) -#else - #define _LWS_LBS 0 -#endif - -#if defined(LWS_LOGGING_BITFIELD_CLEAR) - #define _LWS_LBC (LWS_LOGGING_BITFIELD_CLEAR) -#else - #define _LWS_LBC 0 -#endif - -/* - * Compute the final active logging bitfield for build - */ -#define _LWS_ENABLED_LOGS (((_LWS_LINIT) | (_LWS_LBS)) & ~(_LWS_LBC)) - -/* - * Individually enable or disable log levels for build - * depending on what was computed - */ - -#if (_LWS_ENABLED_LOGS & LLL_ERR) -#define lwsl_err(...) _lws_log(LLL_ERR, __VA_ARGS__) -#else -#define lwsl_err(...) do {} while(0) -#endif - -#if (_LWS_ENABLED_LOGS & LLL_WARN) -#define lwsl_warn(...) _lws_log(LLL_WARN, __VA_ARGS__) -#else -#define lwsl_warn(...) do {} while(0) -#endif - -#if (_LWS_ENABLED_LOGS & LLL_NOTICE) -#define lwsl_notice(...) _lws_log(LLL_NOTICE, __VA_ARGS__) -#else -#define lwsl_notice(...) do {} while(0) -#endif - -#if (_LWS_ENABLED_LOGS & LLL_INFO) -#define lwsl_info(...) _lws_log(LLL_INFO, __VA_ARGS__) -#else -#define lwsl_info(...) do {} while(0) -#endif - -#if (_LWS_ENABLED_LOGS & LLL_DEBUG) -#define lwsl_debug(...) _lws_log(LLL_DEBUG, __VA_ARGS__) -#else -#define lwsl_debug(...) do {} while(0) -#endif - -#if (_LWS_ENABLED_LOGS & LLL_PARSER) -#define lwsl_parser(...) _lws_log(LLL_PARSER, __VA_ARGS__) -#else -#define lwsl_parser(...) do {} while(0) -#endif - -#if (_LWS_ENABLED_LOGS & LLL_HEADER) -#define lwsl_header(...) _lws_log(LLL_HEADER, __VA_ARGS__) -#else -#define lwsl_header(...) do {} while(0) -#endif - -#if (_LWS_ENABLED_LOGS & LLL_EXT) -#define lwsl_ext(...) _lws_log(LLL_EXT, __VA_ARGS__) -#else -#define lwsl_ext(...) do {} while(0) -#endif - -#if (_LWS_ENABLED_LOGS & LLL_CLIENT) -#define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__) -#else -#define lwsl_client(...) do {} while(0) -#endif - -#if (_LWS_ENABLED_LOGS & LLL_LATENCY) -#define lwsl_latency(...) _lws_log(LLL_LATENCY, __VA_ARGS__) -#else -#define lwsl_latency(...) do {} while(0) -#endif - -#if (_LWS_ENABLED_LOGS & LLL_THREAD) -#define lwsl_thread(...) _lws_log(LLL_THREAD, __VA_ARGS__) -#else -#define lwsl_thread(...) do {} while(0) -#endif - -#if (_LWS_ENABLED_LOGS & LLL_USER) -#define lwsl_user(...) _lws_log(LLL_USER, __VA_ARGS__) -#else -#define lwsl_user(...) do {} while(0) -#endif - - -#define lwsl_hexdump_err(...) lwsl_hexdump_level(LLL_ERR, __VA_ARGS__) -#define lwsl_hexdump_warn(...) lwsl_hexdump_level(LLL_WARN, __VA_ARGS__) -#define lwsl_hexdump_notice(...) lwsl_hexdump_level(LLL_NOTICE, __VA_ARGS__) -#define lwsl_hexdump_info(...) lwsl_hexdump_level(LLL_INFO, __VA_ARGS__) -#define lwsl_hexdump_debug(...) lwsl_hexdump_level(LLL_DEBUG, __VA_ARGS__) - -/** - * lwsl_hexdump_level() - helper to hexdump a buffer at a selected debug level - * - * \param level: one of LLL_ constants - * \param vbuf: buffer start to dump - * \param len: length of buffer to dump - * - * If \p level is visible, does a nice hexdump -C style dump of \p vbuf for - * \p len bytes. This can be extremely convenient while debugging. - */ -LWS_VISIBLE LWS_EXTERN void -lwsl_hexdump_level(int level, const void *vbuf, size_t len); - -/** - * lwsl_hexdump() - helper to hexdump a buffer (DEBUG builds only) - * - * \param buf: buffer start to dump - * \param len: length of buffer to dump - * - * Calls through to lwsl_hexdump_level(LLL_DEBUG, ... for compatability. - * It's better to use lwsl_hexdump_level(level, ... directly so you can control - * the visibility. - */ -LWS_VISIBLE LWS_EXTERN void -lwsl_hexdump(const void *buf, size_t len); - -/** - * lws_is_be() - returns nonzero if the platform is Big Endian - */ -static LWS_INLINE int lws_is_be(void) { - const int probe = ~0xff; - - return *(const char *)&probe; -} - -/** - * lws_set_log_level() - Set the logging bitfield - * \param level: OR together the LLL_ debug contexts you want output from - * \param log_emit_function: NULL to leave it as it is, or a user-supplied - * function to perform log string emission instead of - * the default stderr one. - * - * log level defaults to "err", "warn" and "notice" contexts enabled and - * emission on stderr. If stderr is a tty (according to isatty()) then - * the output is coloured according to the log level using ANSI escapes. - */ -LWS_VISIBLE LWS_EXTERN void -lws_set_log_level(int level, - void (*log_emit_function)(int level, const char *line)); - -/** - * lwsl_emit_syslog() - helper log emit function writes to system log - * - * \param level: one of LLL_ log level indexes - * \param line: log string - * - * You use this by passing the function pointer to lws_set_log_level(), to set - * it as the log emit function, it is not called directly. - */ -LWS_VISIBLE LWS_EXTERN void -lwsl_emit_syslog(int level, const char *line); - -/** - * lwsl_emit_stderr() - helper log emit function writes to stderr - * - * \param level: one of LLL_ log level indexes - * \param line: log string - * - * You use this by passing the function pointer to lws_set_log_level(), to set - * it as the log emit function, it is not called directly. - * - * It prepends a system timestamp like [2018/11/13 07:41:57:3989] - * - * If stderr is a tty, then ansi colour codes are added. - */ -LWS_VISIBLE LWS_EXTERN void -lwsl_emit_stderr(int level, const char *line); - -/** - * lwsl_emit_stderr_notimestamp() - helper log emit function writes to stderr - * - * \param level: one of LLL_ log level indexes - * \param line: log string - * - * You use this by passing the function pointer to lws_set_log_level(), to set - * it as the log emit function, it is not called directly. - * - * If stderr is a tty, then ansi colour codes are added. - */ -LWS_VISIBLE LWS_EXTERN void -lwsl_emit_stderr_notimestamp(int level, const char *line); - -/** - * lwsl_visible() - returns true if the log level should be printed - * - * \param level: one of LLL_ log level indexes - * - * This is useful if you have to do work to generate the log content, you - * can skip the work if the log level used to print it is not actually - * enabled at runtime. - */ -LWS_VISIBLE LWS_EXTERN int -lwsl_visible(int level); - -///@} diff --git a/win64/include/websockets/libwebsockets/lws-lwsac.h b/win64/include/websockets/libwebsockets/lws-lwsac.h deleted file mode 100644 index a59e4594..00000000 --- a/win64/include/websockets/libwebsockets/lws-lwsac.h +++ /dev/null @@ -1,290 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** \defgroup lwsac lwsac - * - * ##Allocated Chunks - * - * If you know you will be allocating a large, unknown number of same or - * differently sized objects, it's certainly possible to do it with libc - * malloc. However the allocation cost in time and memory overhead can - * add up, and deallocation means walking the structure of every object and - * freeing them in turn. - * - * lwsac (LWS Allocated Chunks) allocates chunks intended to be larger - * than your objects (4000 bytes by default) which you linearly allocate from - * using lwsac_use(). - * - * If your next request won't fit in the current chunk, a new chunk is added - * to the chain of chunks and the allocaton done from there. If the request - * is larger than the chunk size, an oversize chunk is created to satisfy it. - * - * When you are finished with the allocations, you call lwsac_free() and - * free all the *chunks*. So you may have thousands of objects in the chunks, - * but they are all destroyed with the chunks without having to deallocate them - * one by one pointlessly. - */ -///@{ - -struct lwsac; -typedef unsigned char * lwsac_cached_file_t; - - -#define lws_list_ptr_container(P,T,M) ((T *)((char *)(P) - offsetof(T, M))) - -/* - * linked-list helper that's commonly useful to manage lists of things - * allocated using lwsac. - * - * These lists point to their corresponding "next" member in the target, NOT - * the original containing struct. To get the containing struct, you must use - * lws_list_ptr_container() to convert. - * - * It's like that because it means we no longer have to have the next pointer - * at the start of the struct, and we can have the same struct on multiple - * linked-lists with everything held in the struct itself. - */ -typedef void * lws_list_ptr; - -/* - * optional sorting callback called by lws_list_ptr_insert() to sort the right - * things inside the opqaue struct being sorted / inserted on the list. - */ -typedef int (*lws_list_ptr_sort_func_t)(lws_list_ptr a, lws_list_ptr b); - -#define lws_list_ptr_advance(_lp) _lp = *((void **)_lp) - -/* sort may be NULL if you don't care about order */ -LWS_VISIBLE LWS_EXTERN void -lws_list_ptr_insert(lws_list_ptr *phead, lws_list_ptr *add, - lws_list_ptr_sort_func_t sort); - - -/** - * lwsac_use - allocate / use some memory from a lwsac - * - * \param head: pointer to the lwsac list object - * \param ensure: the number of bytes we want to use - * \param chunk_size: 0, or the size of the chunk to (over)allocate if - * what we want won't fit in the current tail chunk. If - * 0, the default value of 4000 is used. If ensure is - * larger, it is used instead. - * - * This also serves to init the lwsac if *head is NULL. Basically it does - * whatever is necessary to return you a pointer to ensure bytes of memory - * reserved for the caller. - * - * This always allocates in the current chunk or a new chunk... see the - * lwsac_use_backfill() variant to try first to find space in earlier chunks. - * - * Returns NULL if OOM. - */ -LWS_VISIBLE LWS_EXTERN void * -lwsac_use(struct lwsac **head, size_t ensure, size_t chunk_size); - -/** - * lwsac_use_backfill - allocate / use some memory from a lwsac - * - * \param head: pointer to the lwsac list object - * \param ensure: the number of bytes we want to use - * \param chunk_size: 0, or the size of the chunk to (over)allocate if - * what we want won't fit in the current tail chunk. If - * 0, the default value of 4000 is used. If ensure is - * larger, it is used instead. - * - * This also serves to init the lwsac if *head is NULL. Basically it does - * whatever is necessary to return you a pointer to ensure bytes of memory - * reserved for the caller. - * - * Also checks if earlier blocks have enough remaining space to take the - * allocation before making a new allocation. - * - * Returns NULL if OOM. - */ -LWS_VISIBLE LWS_EXTERN void * -lwsac_use_backfill(struct lwsac **head, size_t ensure, size_t chunk_size); - -/** - * lwsac_use - allocate / use some memory from a lwsac - * - * \param head: pointer to the lwsac list object - * \param ensure: the number of bytes we want to use, which must be zeroed - * \param chunk_size: 0, or the size of the chunk to (over)allocate if - * what we want won't fit in the current tail chunk. If - * 0, the default value of 4000 is used. If ensure is - * larger, it is used instead. - * - * Same as lwsac_use(), but \p ensure bytes of memory at the return address - * are zero'd before returning. - * - * Returns NULL if OOM. - */ -LWS_VISIBLE LWS_EXTERN void * -lwsac_use_zero(struct lwsac **head, size_t ensure, size_t chunk_size); - -#define lwsac_use_zeroed lwsac_use_zero - -/** - * lwsac_free - deallocate all chunks in the lwsac and set head NULL - * - * \param head: pointer to the lwsac list object - * - * This deallocates all chunks in the lwsac, then sets *head to NULL. All - * lwsac_use() pointers are invalidated in one hit without individual frees. - */ -LWS_VISIBLE LWS_EXTERN void -lwsac_free(struct lwsac **head); - -/* - * Optional helpers useful for where consumers may need to defer destruction - * until all consumers are finished with the lwsac - */ - -/** - * lwsac_detach() - destroy an lwsac unless somebody else is referencing it - * - * \param head: pointer to the lwsac list object - * - * The creator of the lwsac can all this instead of lwsac_free() when it itself - * has finished with the lwsac, but other code may be consuming it. - * - * If there are no other references, the lwsac is destroyed, *head is set to - * NULL and that's the end; however if something else has called - * lwsac_reference() on the lwsac, it simply returns. When lws_unreference() - * is called and no references are left, it will be destroyed then. - */ -LWS_VISIBLE LWS_EXTERN void -lwsac_detach(struct lwsac **head); - -/** - * lwsac_reference() - increase the lwsac reference count - * - * \param head: pointer to the lwsac list object - * - * Increment the reference count on the lwsac to defer destruction. - */ -LWS_VISIBLE LWS_EXTERN void -lwsac_reference(struct lwsac *head); - -/** - * lwsac_reference() - increase the lwsac reference count - * - * \param head: pointer to the lwsac list object - * - * Decrement the reference count on the lwsac... if it reached 0 on a detached - * lwsac then the lwsac is immediately destroyed and *head set to NULL. - */ -LWS_VISIBLE LWS_EXTERN void -lwsac_unreference(struct lwsac **head); - -/** - * lwsac_extend() - try to increase the size of the last block - * - * \param head: pointer to the lwsac list object - * \param amount: amount to try to increase usage for - * - * This will either increase the usage reservation of the last allocated block - * by amount and return 0, or fail and return 1. - * - * This is very cheap to call and is designed to optimize usage after a static - * struct for vari-sized additional content which may flow into an additional - * block in a new chunk if necessary, but wants to make the most of the space - * in front of it first to try to avoid gaps and the new chunk if it can. - * - * The additional area if the call succeeds will have been memset to 0. - * - * To use it, the following must be true: - * - * - only the last lwsac use can be extended - * - * - if another use happens inbetween the use and extend, it will break - * - * - the use cannot have been using backfill - * - * - a user object must be tracking the current allocated size of the last use - * (lwsac doesn't know it) and increment by amount if the extend call succeeds - * - * Despite these restrictions this can be an important optimization for some - * cases - */ -LWS_VISIBLE LWS_EXTERN int -lwsac_extend(struct lwsac *head, int amount); - -/* helpers to keep a file cached in memory */ - -LWS_VISIBLE LWS_EXTERN void -lwsac_use_cached_file_start(lwsac_cached_file_t cache); - -LWS_VISIBLE LWS_EXTERN void -lwsac_use_cached_file_end(lwsac_cached_file_t *cache); - -LWS_VISIBLE LWS_EXTERN void -lwsac_use_cached_file_detach(lwsac_cached_file_t *cache); - -LWS_VISIBLE LWS_EXTERN int -lwsac_cached_file(const char *filepath, lwsac_cached_file_t *cache, - size_t *len); - -/* more advanced helpers */ - -/* offset from lac to start of payload, first = 1 = first lac in chain */ -LWS_VISIBLE LWS_EXTERN size_t -lwsac_sizeof(int first); - -LWS_VISIBLE LWS_EXTERN size_t -lwsac_get_tail_pos(struct lwsac *lac); - -LWS_VISIBLE LWS_EXTERN struct lwsac * -lwsac_get_next(struct lwsac *lac); - -LWS_VISIBLE LWS_EXTERN size_t -lwsac_align(size_t length); - -LWS_VISIBLE LWS_EXTERN void -lwsac_info(struct lwsac *head); - -LWS_VISIBLE LWS_EXTERN uint64_t -lwsac_total_alloc(struct lwsac *head); - -LWS_VISIBLE LWS_EXTERN uint64_t -lwsac_total_overhead(struct lwsac *head); - -/** - * lwsac_scan_extant() - returns existing copy of blob, or NULL - * - * \param head: the lwsac to scan - * \param find: the blob to look for - * \param len: the length of the blob to look for - * \param nul: nonzero if the next byte must be NUL - * - * Helper that looks through a whole lwsac for a given binary blob already - * present. Used in the case that lwsac contents are const once written, and - * strings or blobs may be repeated in the input: this allows the earlier - * copy to be pointed to by subsequent references without repeating the string - * or blob redundantly. - */ -LWS_VISIBLE LWS_EXTERN uint8_t * -lwsac_scan_extant(struct lwsac *head, uint8_t *find, size_t len, int nul); - -///@} diff --git a/win64/include/websockets/libwebsockets/lws-misc.h b/win64/include/websockets/libwebsockets/lws-misc.h deleted file mode 100644 index 073108ad..00000000 --- a/win64/include/websockets/libwebsockets/lws-misc.h +++ /dev/null @@ -1,1045 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#if defined(LWS_WITH_SPAWN) - -#if defined(WIN32) || defined(_WIN32) -#else -#include <sys/wait.h> -#include <sys/times.h> -#endif -#endif - -/** \defgroup misc Miscellaneous APIs -* ##Miscellaneous APIs -* -* Various APIs outside of other categories -*/ -///@{ - -struct lws_buflist; - -/** - * lws_buflist_append_segment(): add buffer to buflist at head - * - * \param head: list head - * \param buf: buffer to stash - * \param len: length of buffer to stash - * - * Returns -1 on OOM, 1 if this was the first segment on the list, and 0 if - * it was a subsequent segment. - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_buflist_append_segment(struct lws_buflist **head, const uint8_t *buf, - size_t len); -/** - * lws_buflist_next_segment_len(): number of bytes left in current segment - * - * \param head: list head - * \param buf: if non-NULL, *buf is written with the address of the start of - * the remaining data in the segment - * - * Returns the number of bytes left in the current segment. 0 indicates - * that the buflist is empty (there are no segments on the buflist). - */ -LWS_VISIBLE LWS_EXTERN size_t -lws_buflist_next_segment_len(struct lws_buflist **head, uint8_t **buf); - -/** - * lws_buflist_use_segment(): remove len bytes from the current segment - * - * \param head: list head - * \param len: number of bytes to mark as used - * - * If len is less than the remaining length of the current segment, the position - * in the current segment is simply advanced and it returns. - * - * If len uses up the remaining length of the current segment, then the segment - * is deleted and the list head moves to the next segment if any. - * - * Returns the number of bytes left in the current segment. 0 indicates - * that the buflist is empty (there are no segments on the buflist). - */ -LWS_VISIBLE LWS_EXTERN size_t -lws_buflist_use_segment(struct lws_buflist **head, size_t len); - -/** - * lws_buflist_total_len(): Get the total size of the buflist - * - * \param head: list head - * - * Returns the total number of bytes held on all segments of the buflist - */ -LWS_VISIBLE LWS_EXTERN size_t -lws_buflist_total_len(struct lws_buflist **head); - -/** - * lws_buflist_linear_copy(): copy everything out as one without consuming - * - * \param head: list head - * \param ofs: start offset into buflist in bytes - * \param buf: buffer to copy linearly into - * \param len: length of buffer available - * - * Returns -1 if len is too small, or bytes copied. Happy to do partial - * copies, returns 0 when there are no more bytes to copy. - */ -LWS_VISIBLE LWS_EXTERN int -lws_buflist_linear_copy(struct lws_buflist **head, size_t ofs, uint8_t *buf, - size_t len); - -/** - * lws_buflist_destroy_all_segments(): free all segments on the list - * - * \param head: list head - * - * This frees everything on the list unconditionally. *head is always - * NULL after this. - */ -LWS_VISIBLE LWS_EXTERN void -lws_buflist_destroy_all_segments(struct lws_buflist **head); - -/** - * lws_buflist_describe(): debug helper logging buflist status - * - * \param head: list head - * \param id: pointer shown in debug list - * \param reason: reason string show in debug list - * - * Iterates through the buflist segments showing position and size. - * This only exists when lws was built in debug mode - */ -LWS_VISIBLE LWS_EXTERN void -lws_buflist_describe(struct lws_buflist **head, void *id, const char *reason); - -/** - * lws_ptr_diff(): helper to report distance between pointers as an int - * - * \param head: the pointer with the larger address - * \param tail: the pointer with the smaller address - * - * This helper gives you an int representing the number of bytes further - * forward the first pointer is compared to the second pointer. - */ -#define lws_ptr_diff(head, tail) \ - ((int)((char *)(head) - (char *)(tail))) - -/** - * lws_snprintf(): snprintf that truncates the returned length too - * - * \param str: destination buffer - * \param size: bytes left in destination buffer - * \param format: format string - * \param ...: args for format - * - * This lets you correctly truncate buffers by concatenating lengths, if you - * reach the limit the reported length doesn't exceed the limit. - */ -LWS_VISIBLE LWS_EXTERN int -lws_snprintf(char *str, size_t size, const char *format, ...) LWS_FORMAT(3); - -/** - * lws_strncpy(): strncpy that guarantees NUL on truncated copy - * - * \param dest: destination buffer - * \param src: source buffer - * \param size: bytes left in destination buffer - * - * This lets you correctly truncate buffers by concatenating lengths, if you - * reach the limit the reported length doesn't exceed the limit. - */ -LWS_VISIBLE LWS_EXTERN char * -lws_strncpy(char *dest, const char *src, size_t size); - -/* - * Variation where we want to use the smaller of two lengths, useful when the - * source string is not NUL terminated - */ -#define lws_strnncpy(dest, src, size1, destsize) \ - lws_strncpy(dest, src, (size_t)(size1 + 1) < (size_t)(destsize) ? \ - (size_t)(size1 + 1) : (size_t)(destsize)) - -/** - * lws_nstrstr(): like strstr for length-based strings without terminating NUL - * - * \param buf: the string to search - * \param len: the length of the string to search - * \param name: the substring to search for - * \param nl: the length of name - * - * Returns NULL if \p name is not present in \p buf. Otherwise returns the - * address of the first instance of \p name in \p buf. - * - * Neither buf nor name need to be NUL-terminated. - */ -LWS_VISIBLE LWS_EXTERN const char * -lws_nstrstr(const char *buf, size_t len, const char *name, size_t nl); - -/** - * lws_json_simple_find(): dumb JSON string parser - * - * \param buf: the JSON to search - * \param len: the length of the JSON to search - * \param name: the name field to search the JSON for, eg, "\"myname\":" - * \param alen: set to the length of the argument part if non-NULL return - * - * Either returns NULL if \p name is not present in buf, or returns a pointer - * to the argument body of the first instance of \p name, and sets *alen to the - * length of the argument body. - * - * This can cheaply handle fishing out, eg, myarg from {"myname": "myarg"} by - * searching for "\"myname\":". It will return a pointer to myarg and set *alen - * to 5. It equally handles args like "myname": true, or "myname":false, and - * null or numbers are all returned as delimited strings. - * - * Anything more complicated like the value is a subobject or array, you should - * parse it using a full parser like lejp. This is suitable is the JSON is - * and will remain short and simple, and contains well-known names amongst other - * extensible JSON members. - */ -LWS_VISIBLE LWS_EXTERN const char * -lws_json_simple_find(const char *buf, size_t len, const char *name, size_t *alen); - -/** - * lws_json_simple_strcmp(): dumb JSON string comparison - * - * \param buf: the JSON to search - * \param len: the length of the JSON to search - * \param name: the name field to search the JSON for, eg, "\"myname\":" - * \param comp: return a strcmp of this and the discovered argument - * - * Helper that combines lws_json_simple_find() with strcmp() if it was found. - * If the \p name was not found, returns -1. Otherwise returns a strcmp() - * between what was found and \p comp, ie, return 0 if they match or something - * else if they don't. - * - * If the JSON is relatively simple and you want to target constrained - * devices, this can be a good choice. If the JSON may be complex, you - * should use a full JSON parser. - */ -LWS_VISIBLE LWS_EXTERN int -lws_json_simple_strcmp(const char *buf, size_t len, const char *name, const char *comp); - - -/** - * lws_hex_to_byte_array(): convert hex string like 0123456789ab into byte data - * - * \param h: incoming NUL-terminated hex string - * \param dest: array to fill with binary decodes of hex pairs from h - * \param max: maximum number of bytes dest can hold, must be at least half - * the size of strlen(h) - * - * This converts hex strings into an array of 8-bit representations, ie the - * input "abcd" produces two bytes of value 0xab and 0xcd. - * - * Returns number of bytes produced into \p dest, or -1 on error. - * - * Errors include non-hex chars and an odd count of hex chars in the input - * string. - */ -LWS_VISIBLE LWS_EXTERN int -lws_hex_to_byte_array(const char *h, uint8_t *dest, int max); - - -/** - * lws_hex_random(): generate len - 1 or - 2 characters of random ascii hex - * - * \param context: the lws_context used to get the random - * \param dest: destination for hex ascii chars - * \param len: the number of bytes the buffer dest points to can hold - * - * This creates random ascii-hex strings up to a given length, with a - * terminating NUL. Hex characters are produced in pairs, if the length of - * the destination buffer is even, after accounting for the NUL there will be - * an unused byte at the end after the NUL. So lengths should be odd to get - * length - 1 characters exactly followed by the NUL. - * - * There will not be any characters produced that are not 0-9, a-f, so it's - * safe to go straight into, eg, JSON. - */ -LWS_VISIBLE LWS_EXTERN int -lws_hex_random(struct lws_context *context, char *dest, size_t len); - -/* - * lws_timingsafe_bcmp(): constant time memcmp - * - * \param a: first buffer - * \param b: second buffer - * \param len: count of bytes to compare - * - * Return 0 if the two buffers are the same, else nonzero. - * - * Always compares all of the buffer before returning, so it can't be used as - * a timing oracle. - */ - -LWS_VISIBLE LWS_EXTERN int -lws_timingsafe_bcmp(const void *a, const void *b, uint32_t len); - -/** - * lws_get_random(): fill a buffer with platform random data - * - * \param context: the lws context - * \param buf: buffer to fill - * \param len: how much to fill - * - * Fills buf with len bytes of random. Returns the number of bytes set, if - * not equal to len, then getting the random failed. - */ -LWS_VISIBLE LWS_EXTERN size_t -lws_get_random(struct lws_context *context, void *buf, size_t len); -/** - * lws_daemonize(): make current process run in the background - * - * \param _lock_path: the filepath to write the lock file - * - * Spawn lws as a background process, taking care of various things - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_daemonize(const char *_lock_path); -/** - * lws_get_library_version(): return string describing the version of lws - * - * On unix, also includes the git describe - */ -LWS_VISIBLE LWS_EXTERN const char * LWS_WARN_UNUSED_RESULT -lws_get_library_version(void); - -/** - * lws_wsi_user() - get the user data associated with the connection - * \param wsi: lws connection - * - * Not normally needed since it's passed into the callback - */ -LWS_VISIBLE LWS_EXTERN void * -lws_wsi_user(struct lws *wsi); - -/** - * lws_wsi_tsi() - get the service thread index the wsi is bound to - * \param wsi: lws connection - * - * Only useful is LWS_MAX_SMP > 1 - */ -LWS_VISIBLE LWS_EXTERN int -lws_wsi_tsi(struct lws *wsi); - -/** - * lws_set_wsi_user() - set the user data associated with the client connection - * \param wsi: lws connection - * \param user: user data - * - * By default lws allocates this and it's not legal to externally set it - * yourself. However client connections may have it set externally when the - * connection is created... if so, this api can be used to modify it at - * runtime additionally. - */ -LWS_VISIBLE LWS_EXTERN void -lws_set_wsi_user(struct lws *wsi, void *user); - -/** - * lws_parse_uri: cut up prot:/ads:port/path into pieces - * Notice it does so by dropping '\0' into input string - * and the leading / on the path is consequently lost - * - * \param p: incoming uri string.. will get written to - * \param prot: result pointer for protocol part (https://) - * \param ads: result pointer for address part - * \param port: result pointer for port part - * \param path: result pointer for path part - * - * You may also refer to unix socket addresses, using a '+' at the start of - * the address. In this case, the address should end with ':', which is - * treated as the separator between the address and path (the normal separator - * '/' is a valid part of the socket path). Eg, - * - * http://+/var/run/mysocket:/my/path - * - * If the first character after the + is '@', it's interpreted by lws client - * processing as meaning to use linux abstract namespace sockets, the @ is - * replaced with a '\0' before use. - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_parse_uri(char *p, const char **prot, const char **ads, int *port, - const char **path); -/** - * lws_cmdline_option(): simple commandline parser - * - * \param argc: count of argument strings - * \param argv: argument strings - * \param val: string to find - * - * Returns NULL if the string \p val is not found in the arguments. - * - * If it is found, then it returns a pointer to the next character after \p val. - * So if \p val is "-d", then for the commandlines "myapp -d15" and - * "myapp -d 15", in both cases the return will point to the "15". - * - * In the case there is no argument, like "myapp -d", the return will - * either point to the '\\0' at the end of -d, or to the start of the - * next argument, ie, will be non-NULL. - */ -LWS_VISIBLE LWS_EXTERN const char * -lws_cmdline_option(int argc, const char **argv, const char *val); - -/** - * lws_cmdline_option_handle_builtin(): apply standard cmdline options - * - * \param argc: count of argument strings - * \param argv: argument strings - * \param info: context creation info - * - * Applies standard options to the context creation info to save them having - * to be (unevenly) copied into the minimal examples. - * - * Applies default log levels that can be overriden by -d - */ -LWS_VISIBLE LWS_EXTERN void -lws_cmdline_option_handle_builtin(int argc, const char **argv, - struct lws_context_creation_info *info); - -/** - * lws_now_secs(): return seconds since 1970-1-1 - */ -LWS_VISIBLE LWS_EXTERN unsigned long -lws_now_secs(void); - -/** - * lws_now_usecs(): return useconds since 1970-1-1 - */ -LWS_VISIBLE LWS_EXTERN lws_usec_t -lws_now_usecs(void); - -/** - * lws_get_context - Allow getting lws_context from a Websocket connection - * instance - * - * With this function, users can access context in the callback function. - * Otherwise users may have to declare context as a global variable. - * - * \param wsi: Websocket connection instance - */ -LWS_VISIBLE LWS_EXTERN struct lws_context * LWS_WARN_UNUSED_RESULT -lws_get_context(const struct lws *wsi); - -/** - * lws_get_vhost_listen_port - Find out the port number a vhost is listening on - * - * In the case you passed 0 for the port number at context creation time, you - * can discover the port number that was actually chosen for the vhost using - * this api. - * - * \param vhost: Vhost to get listen port from - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_get_vhost_listen_port(struct lws_vhost *vhost); - -/** - * lws_get_count_threads(): how many service threads the context uses - * - * \param context: the lws context - * - * By default this is always 1, if you asked for more than lws can handle it - * will clip the number of threads. So you can use this to find out how many - * threads are actually in use. - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_get_count_threads(struct lws_context *context); - -/** - * lws_get_parent() - get parent wsi or NULL - * \param wsi: lws connection - * - * Specialized wsi like cgi stdin/out/err are associated to a parent wsi, - * this allows you to get their parent. - */ -LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT -lws_get_parent(const struct lws *wsi); - -/** - * lws_get_child() - get child wsi or NULL - * \param wsi: lws connection - * - * Allows you to find a related wsi from the parent wsi. - */ -LWS_VISIBLE LWS_EXTERN struct lws * LWS_WARN_UNUSED_RESULT -lws_get_child(const struct lws *wsi); - -/** - * lws_get_effective_uid_gid() - find out eventual uid and gid while still root - * - * \param context: lws context - * \param uid: pointer to uid result - * \param gid: pointer to gid result - * - * This helper allows you to find out what the uid and gid for the process will - * be set to after the privileges are dropped, beforehand. So while still root, - * eg in LWS_CALLBACK_PROTOCOL_INIT, you can arrange things like cache dir - * and subdir creation / permissions down /var/cache dynamically. - */ -LWS_VISIBLE LWS_EXTERN void -lws_get_effective_uid_gid(struct lws_context *context, int *uid, int *gid); - -/** - * lws_get_udp() - get wsi's udp struct - * - * \param wsi: lws connection - * - * Returns NULL or pointer to the wsi's UDP-specific information - */ -LWS_VISIBLE LWS_EXTERN const struct lws_udp * LWS_WARN_UNUSED_RESULT -lws_get_udp(const struct lws *wsi); - -LWS_VISIBLE LWS_EXTERN void * -lws_get_opaque_parent_data(const struct lws *wsi); - -LWS_VISIBLE LWS_EXTERN void -lws_set_opaque_parent_data(struct lws *wsi, void *data); - -LWS_VISIBLE LWS_EXTERN void * -lws_get_opaque_user_data(const struct lws *wsi); - -LWS_VISIBLE LWS_EXTERN void -lws_set_opaque_user_data(struct lws *wsi, void *data); - -LWS_VISIBLE LWS_EXTERN int -lws_get_child_pending_on_writable(const struct lws *wsi); - -LWS_VISIBLE LWS_EXTERN void -lws_clear_child_pending_on_writable(struct lws *wsi); - -LWS_VISIBLE LWS_EXTERN int -lws_get_close_length(struct lws *wsi); - -LWS_VISIBLE LWS_EXTERN unsigned char * -lws_get_close_payload(struct lws *wsi); - -/** - * lws_get_network_wsi() - Returns wsi that has the tcp connection for this wsi - * - * \param wsi: wsi you have - * - * Returns wsi that has the tcp connection (which may be the incoming wsi) - * - * HTTP/1 connections will always return the incoming wsi - * HTTP/2 connections may return a different wsi that has the tcp connection - */ -LWS_VISIBLE LWS_EXTERN -struct lws *lws_get_network_wsi(struct lws *wsi); - -/** - * lws_set_allocator() - custom allocator support - * - * \param realloc - * - * Allows you to replace the allocator (and deallocator) used by lws - */ -LWS_VISIBLE LWS_EXTERN void -lws_set_allocator(void *(*realloc)(void *ptr, size_t size, const char *reason)); - -enum { - /* - * Flags for enable and disable rxflow with reason bitmap and with - * backwards-compatible single bool - */ - LWS_RXFLOW_REASON_USER_BOOL = (1 << 0), - LWS_RXFLOW_REASON_HTTP_RXBUFFER = (1 << 6), - LWS_RXFLOW_REASON_H2_PPS_PENDING = (1 << 7), - - LWS_RXFLOW_REASON_APPLIES = (1 << 14), - LWS_RXFLOW_REASON_APPLIES_ENABLE_BIT = (1 << 13), - LWS_RXFLOW_REASON_APPLIES_ENABLE = LWS_RXFLOW_REASON_APPLIES | - LWS_RXFLOW_REASON_APPLIES_ENABLE_BIT, - LWS_RXFLOW_REASON_APPLIES_DISABLE = LWS_RXFLOW_REASON_APPLIES, - LWS_RXFLOW_REASON_FLAG_PROCESS_NOW = (1 << 12), - -}; - -/** - * lws_rx_flow_control() - Enable and disable socket servicing for - * received packets. - * - * If the output side of a server process becomes choked, this allows flow - * control for the input side. - * - * \param wsi: Websocket connection instance to get callback for - * \param enable: 0 = disable read servicing for this connection, 1 = enable - * - * If you need more than one additive reason for rxflow control, you can give - * iLWS_RXFLOW_REASON_APPLIES_ENABLE or _DISABLE together with one or more of - * b5..b0 set to idicate which bits to enable or disable. If any bits are - * enabled, rx on the connection is suppressed. - * - * LWS_RXFLOW_REASON_FLAG_PROCESS_NOW flag may also be given to force any change - * in rxflowbstatus to benapplied immediately, this should be used when you are - * changing a wsi flow control state from outside a callback on that wsi. - */ -LWS_VISIBLE LWS_EXTERN int -lws_rx_flow_control(struct lws *wsi, int enable); - -/** - * lws_rx_flow_allow_all_protocol() - Allow all connections with this protocol to receive - * - * When the user server code realizes it can accept more input, it can - * call this to have the RX flow restriction removed from all connections using - * the given protocol. - * \param context: lws_context - * \param protocol: all connections using this protocol will be allowed to receive - */ -LWS_VISIBLE LWS_EXTERN void -lws_rx_flow_allow_all_protocol(const struct lws_context *context, - const struct lws_protocols *protocol); - -/** - * lws_remaining_packet_payload() - Bytes to come before "overall" - * rx fragment is complete - * \param wsi: Websocket instance (available from user callback) - * - * This tracks how many bytes are left in the current ws fragment, according - * to the ws length given in the fragment header. - * - * If the message was in a single fragment, and there is no compression, this - * is the same as "how much data is left to read for this message". - * - * However, if the message is being sent in multiple fragments, this will - * reflect the unread amount of the current **fragment**, not the message. With - * ws, it is legal to not know the length of the message before it completes. - * - * Additionally if the message is sent via the negotiated permessage-deflate - * extension, this number only tells the amount of **compressed** data left to - * be read, since that is the only information available at the ws layer. - */ -LWS_VISIBLE LWS_EXTERN size_t -lws_remaining_packet_payload(struct lws *wsi); - -#if defined(LWS_WITH_DIR) - -typedef enum { - LDOT_UNKNOWN, - LDOT_FILE, - LDOT_DIR, - LDOT_LINK, - LDOT_FIFO, - LDOTT_SOCKET, - LDOT_CHAR, - LDOT_BLOCK -} lws_dir_obj_type_t; - -struct lws_dir_entry { - const char *name; - lws_dir_obj_type_t type; -}; - -typedef int -lws_dir_callback_function(const char *dirpath, void *user, - struct lws_dir_entry *lde); - -/** - * lws_dir() - get a callback for everything in a directory - * - * \param dirpath: the directory to scan - * \param user: pointer to give to callback - * \param cb: callback to receive information on each file or dir - * - * Calls \p cb (with \p user) for every object in dirpath. - * - * This wraps whether it's using POSIX apis, or libuv (as needed for windows, - * since it refuses to support POSIX apis for this). - */ -LWS_VISIBLE LWS_EXTERN int -lws_dir(const char *dirpath, void *user, lws_dir_callback_function cb); - -/** - * lws_dir_rm_rf_cb() - callback for lws_dir that performs recursive rm -rf - * - * \param dirpath: directory we are at in lws_dir - * \param user: ignored - * \param lde: lws_dir info on the file or directory we are at - * - * This is a readymade rm -rf callback for use with lws_dir. It recursively - * removes everything below the starting dir and then the starting dir itself. - * Works on linux, OSX and Windows at least. - */ -LWS_VISIBLE LWS_EXTERN int -lws_dir_rm_rf_cb(const char *dirpath, void *user, struct lws_dir_entry *lde); - -/* - * We pass every file in the base dir through a filter, and call back on the - * ones that match. Directories are ignored. - * - * The original path filter string may look like, eg, "sai-*.deb" or "*.txt" - */ - -typedef int (*lws_dir_glob_cb_t)(void *data, const char *path); - -typedef struct lws_dir_glob { - const char *filter; - lws_dir_glob_cb_t cb; - void *user; -} lws_dir_glob_t; - -/** - * lws_dir_glob_cb() - callback for lws_dir that performs filename globbing - * - * \param dirpath: directory we are at in lws_dir - * \param user: pointer to your prepared lws_dir_glob_cb_t - * \param lde: lws_dir info on the file or directory we are at - * - * \p user is prepared with an `lws_dir_glob_t` containing a callback for paths - * that pass the filtering, a user pointer to pass to that callback, and a - * glob string like "*.txt". It may not contain directories, the lws_dir musr - * be started at the correct dir. - * - * Only the base path passed to lws_dir is scanned, it does not look in subdirs. - */ -LWS_VISIBLE LWS_EXTERN int -lws_dir_glob_cb(const char *dirpath, void *user, struct lws_dir_entry *lde); - -#endif - -/** - * lws_get_allocated_heap() - if the platform supports it, returns amount of - * heap allocated by lws itself - * - * On glibc currently, this reports the total amount of current logical heap - * allocation, found by tracking the amount allocated by lws_malloc() and - * friends and accounting for freed allocations via lws_free(). - * - * This is useful for confirming where processwide heap allocations actually - * come from... this number represents all lws internal allocations, for - * fd tables, wsi allocations, ah, etc combined. It doesn't include allocations - * from user code, since lws_malloc() etc are not exported from the library. - * - * On other platforms, it always returns 0. - */ -size_t lws_get_allocated_heap(void); - -/** - * lws_get_tsi() - Get thread service index wsi belong to - * \param wsi: websocket connection to check - * - * Returns more than zero (or zero if only one service thread as is the default). - */ -LWS_VISIBLE LWS_EXTERN int -lws_get_tsi(struct lws *wsi); - -/** - * lws_is_ssl() - Find out if connection is using SSL - * \param wsi: websocket connection to check - * - * Returns nonzero if the wsi is inside a tls tunnel, else zero. - */ -LWS_VISIBLE LWS_EXTERN int -lws_is_ssl(struct lws *wsi); -/** - * lws_is_cgi() - find out if this wsi is running a cgi process - * - * \param wsi: lws connection - */ -LWS_VISIBLE LWS_EXTERN int -lws_is_cgi(struct lws *wsi); - -/** - * lws_open() - platform-specific wrapper for open that prepares the fd - * - * \param __file: the filepath to open - * \param __oflag: option flags - * - * This is a wrapper around platform open() that sets options on the fd - * according to lws policy. Currently that is FD_CLOEXEC to stop the opened - * fd being available to any child process forked by user code. - */ -LWS_VISIBLE LWS_EXTERN int -lws_open(const char *__file, int __oflag, ...); - -struct lws_wifi_scan { /* generic wlan scan item */ - struct lws_wifi_scan *next; - char ssid[32]; - int32_t rssi; /* divide by .count to get db */ - uint8_t bssid[6]; - uint8_t count; - uint8_t channel; - uint8_t authmode; -}; - -#if defined(LWS_WITH_TLS) && !defined(LWS_WITH_MBEDTLS) -/** - * lws_get_ssl() - Return wsi's SSL context structure - * \param wsi: websocket connection - * - * Returns pointer to the SSL library's context structure - */ -LWS_VISIBLE LWS_EXTERN SSL* -lws_get_ssl(struct lws *wsi); -#endif - -LWS_VISIBLE LWS_EXTERN void -lws_explicit_bzero(void *p, size_t len); - -typedef struct lws_humanize_unit { - const char *name; /* array ends with NULL name */ - uint64_t factor; -} lws_humanize_unit_t; - -LWS_VISIBLE extern const lws_humanize_unit_t humanize_schema_si[7]; -LWS_VISIBLE extern const lws_humanize_unit_t humanize_schema_si_bytes[7]; -LWS_VISIBLE extern const lws_humanize_unit_t humanize_schema_us[8]; - -/** - * lws_humanize() - Convert possibly large number to human-readable uints - * - * \param buf: result string buffer - * \param len: remaining length in \p buf - * \param value: the uint64_t value to represent - * \param schema: and array of scaling factors and units - * - * This produces a concise string representation of \p value, referencing the - * schema \p schema of scaling factors and units to find the smallest way to - * render it. - * - * Three schema are exported from lws for general use, humanize_schema_si, which - * represents as, eg, " 22.130Gi" or " 128 "; humanize_schema_si_bytes - * which is the same but shows, eg, " 22.130GiB", and humanize_schema_us, - * which represents a count of us as a human-readable time like " 14.350min", - * or " 1.500d". - * - * You can produce your own schema. - */ - -LWS_VISIBLE LWS_EXTERN int -lws_humanize(char *buf, int len, uint64_t value, - const lws_humanize_unit_t *schema); - -LWS_VISIBLE LWS_EXTERN void -lws_ser_wu16be(uint8_t *b, uint16_t u); - -LWS_VISIBLE LWS_EXTERN void -lws_ser_wu32be(uint8_t *b, uint32_t u32); - -LWS_VISIBLE LWS_EXTERN void -lws_ser_wu64be(uint8_t *b, uint64_t u64); - -LWS_VISIBLE LWS_EXTERN uint16_t -lws_ser_ru16be(const uint8_t *b); - -LWS_VISIBLE LWS_EXTERN uint32_t -lws_ser_ru32be(const uint8_t *b); - -LWS_VISIBLE LWS_EXTERN uint64_t -lws_ser_ru64be(const uint8_t *b); - -LWS_VISIBLE LWS_EXTERN int -lws_vbi_encode(uint64_t value, void *buf); - -LWS_VISIBLE LWS_EXTERN int -lws_vbi_decode(const void *buf, uint64_t *value, size_t len); - -///@} - -#if defined(LWS_WITH_SPAWN) - -/* opaque internal struct */ -struct lws_spawn_piped; - -#if defined(WIN32) -struct _lws_siginfo_t { - int retcode; -}; -typedef struct _lws_siginfo_t siginfo_t; -#endif - -typedef void (*lsp_cb_t)(void *opaque, lws_usec_t *accounting, siginfo_t *si, - int we_killed_him); - - -/** - * lws_spawn_piped_info - details given to create a spawned pipe - * - * \p owner: lws_dll2_owner_t that lists all active spawns, or NULL - * \p vh: vhost to bind stdwsi to... from opt_parent if given - * \p opt_parent: optional parent wsi for stdwsi - * \p exec_array: argv for process to spawn - * \p env_array: environment for spawned process, NULL ends env list - * \p protocol_name: NULL, or vhost protocol name to bind stdwsi to - * \p chroot_path: NULL, or chroot patch for child process - * \p wd: working directory to cd to after fork, NULL defaults to /tmp - * \p plsp: NULL, or pointer to the outer lsp pointer so it can be set NULL when destroyed - * \p opaque: pointer passed to the reap callback, if any - * \p timeout: optional us-resolution timeout, or zero - * \p reap_cb: callback when child process has been reaped and the lsp destroyed - * \p tsi: tsi to bind stdwsi to... from opt_parent if given - */ -struct lws_spawn_piped_info { - struct lws_dll2_owner *owner; - struct lws_vhost *vh; - struct lws *opt_parent; - - const char * const *exec_array; - char **env_array; - const char *protocol_name; - const char *chroot_path; - const char *wd; - - struct lws_spawn_piped **plsp; - - void *opaque; - - lsp_cb_t reap_cb; - - lws_usec_t timeout_us; - int max_log_lines; - int tsi; - - const struct lws_role_ops *ops; /* NULL is raw file */ - - uint8_t disable_ctrlc; -}; - -/** - * lws_spawn_piped() - spawn a child process with stdxxx redirected - * - * \p lspi: info struct describing details of spawn to create - * - * This spawns a child process managed in the lsp object and with attributes - * set in the arguments. The stdin/out/err streams are redirected to pipes - * which are instantiated into wsi that become child wsi of \p parent if non- - * NULL. .opaque_user_data on the stdwsi created is set to point to the - * lsp object, so this can be recovered easily in the protocol handler. - * - * If \p owner is non-NULL, successful spawns join the given dll2 owner in the - * original process. - * - * If \p timeout is non-zero, successful spawns register a sul with the us- - * resolution timeout to callback \p timeout_cb, in the original process. - * - * Returns 0 if the spawn went OK or nonzero if it failed and was cleaned up. - * The spawned process continues asynchronously and this will return after - * starting it if all went well. - */ -LWS_VISIBLE LWS_EXTERN struct lws_spawn_piped * -lws_spawn_piped(const struct lws_spawn_piped_info *lspi); - -/* - * lws_spawn_piped_kill_child_process() - attempt to kill child process - * - * \p lsp: child object to kill - * - * Attempts to signal the child process in \p lsp to terminate. - */ -LWS_VISIBLE LWS_EXTERN int -lws_spawn_piped_kill_child_process(struct lws_spawn_piped *lsp); - -/** - * lws_spawn_stdwsi_closed() - inform the spawn one of its stdxxx pipes closed - * - * \p lsp: the spawn object - * \p wsi: the wsi that is closing - * - * When you notice one of the spawn stdxxx pipes closed, inform the spawn - * instance using this api. When it sees all three have closed, it will - * automatically try to reap the child process. - * - * This is the mechanism whereby the spawn object can understand its child - * has closed. - */ -LWS_VISIBLE LWS_EXTERN void -lws_spawn_stdwsi_closed(struct lws_spawn_piped *lsp, struct lws *wsi); - -/** - * lws_spawn_get_stdfd() - return std channel index for stdwsi - * - * \p wsi: the wsi - * - * If you know wsi is a stdwsi from a spawn, you can determine its original - * channel index / fd before the pipes replaced the default fds. It will return - * one of 0 (STDIN), 1 (STDOUT) or 2 (STDERR). You can handle all three in the - * same protocol handler and then disambiguate them using this api. - */ -LWS_VISIBLE LWS_EXTERN int -lws_spawn_get_stdfd(struct lws *wsi); - -#endif - -struct lws_fsmount { - const char *layers_path; /* where layers live */ - const char *overlay_path; /* where overlay instantiations live */ - - char mp[256]; /* mountpoint path */ - char ovname[64]; /* unique name for mount instance */ - char distro[64]; /* unique name for layer source */ - -#if defined(__linux__) - const char *layers[4]; /* distro layers, like "base", "env" */ -#endif -}; - -/** - * lws_fsmount_mount() - Mounts an overlayfs stack of layers - * - * \p fsm: struct lws_fsmount specifying the mount layout - * - * This api is able to assemble up to 4 layer directories on to a mountpoint - * using overlayfs mount (Linux only). - * - * Set fsm.layers_path to the base dir where the layers themselves live, the - * entries in fsm.layers[] specifies the relative path to the layer, comprising - * fsm.layers_path/fsm.distro/fsm.layers[], with [0] being the deepest, earliest - * layer and the rest being progressively on top of [0]; NULL indicates the - * layer is unused. - * - * fsm.overlay_path is the base path of the overlayfs instantiations... empty - * dirs must exist at - * - * fsm.overlay_path/overlays/fsm.ovname/work - * fsm.overlay_path/overlays/fsm.ovname/session - * - * Set fsm.mp to the path of an already-existing empty dir that will be the - * mountpoint, this can be whereever you like. - * - * Overlayfs merges the union of all the contributing layers at the mountpoint, - * the mount is writeable but the layer themselves are immutable, all additions - * and changes are stored in - * - * fsm.overlay_path/overlays/fsm.ovname/session - * - * Returns 0 if mounted OK, nonzero if errors. - * - * Retain fsm for use with unmounting. - */ -LWS_VISIBLE LWS_EXTERN int -lws_fsmount_mount(struct lws_fsmount *fsm); - -/** - * lws_fsmount_unmount() - Unmounts an overlayfs dir - * - * \p fsm: struct lws_fsmount specifying the mount layout - * - * Unmounts the mountpoint in fsm.mp. - * - * Delete fsm.overlay_path/overlays/fsm.ovname/session to permanently eradicate - * all changes from the time the mountpoint was in use. - * - * Returns 0 if unmounted OK. - */ -LWS_VISIBLE LWS_EXTERN int -lws_fsmount_unmount(struct lws_fsmount *fsm); diff --git a/win64/include/websockets/libwebsockets/lws-mqtt.h b/win64/include/websockets/libwebsockets/lws-mqtt.h deleted file mode 100644 index 72f77018..00000000 --- a/win64/include/websockets/libwebsockets/lws-mqtt.h +++ /dev/null @@ -1,330 +0,0 @@ -/* - * libwebsockets - protocol - mqtt - * - * Copyright (C) 2010 - 2020 Andy Green <andy@warmcat.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation: - * version 2.1 of the License. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301 USA - * - * included from libwebsockets.h - */ - -#ifndef _LWS_MQTT_H -#define _LWS_MQTT_H 1 - -struct _lws_mqtt_related; -typedef struct _lws_mqtt_related lws_mqtt_related_t; -struct lws_mqtt_str_st; -typedef struct lws_mqtt_str_st lws_mqtt_str_t; - -#define MQTT_VER_3_1_1 4 - -#define LWS_MQTT_FINAL_PART 1 - -typedef enum { - QOS0, - QOS1, - QOS2, /* not supported */ - RESERVED_QOS_LEVEL, - FAILURE_QOS_LEVEL = 0x80 -} lws_mqtt_qos_levels_t; - -typedef union { - struct { - uint8_t retain:1; - uint8_t qos:2; - uint8_t dup:1; - uint8_t ctrl_pkt_type:4; - } flags; - uint8_t bits; -} lws_mqtt_fixed_hdr_t; - -/* - * MQTT connection parameters, passed into struct - * lws_client_connect_info to establish a connection using - * lws_client_connect_via_info(). -*/ -typedef struct lws_mqtt_client_connect_param_s { - const char *client_id; /* Client ID */ - uint16_t keep_alive; /* MQTT keep alive - interval in - seconds */ - uint8_t clean_start; /* MQTT clean - session */ - struct { - const char *topic; - const char *message; - lws_mqtt_qos_levels_t qos; - uint8_t retain; - } will_param; /* MQTT LWT - parameters */ - const char *username; - const char *password; -} lws_mqtt_client_connect_param_t; - -/* - * MQTT publish parameters -*/ -typedef struct lws_mqtt_publish_param_s { - char *topic; /* Topic Name */ - uint16_t topic_len; - const void *payload; /* Publish Payload */ - uint32_t payload_len; /* Size of the - complete payload */ - uint32_t payload_pos; /* where we are in payload */ - lws_mqtt_qos_levels_t qos; - - /*--v-Following will be used by LWS-v--*/ - uint16_t packet_id; /* Packet ID for QoS > - 0 */ - uint8_t dup:1; /* Retried PUBLISH, - for QoS > 0 */ -} lws_mqtt_publish_param_t; - -typedef struct topic_elem { - const char *name; /* Topic Name */ - lws_mqtt_qos_levels_t qos; /* Requested QoS */ - - /*--v-Following will be used by LWS-v--*/ - uint8_t acked; -} lws_mqtt_topic_elem_t; - -/* - * MQTT publish parameters -*/ -typedef struct lws_mqtt_subscribe_param_s { - uint32_t num_topics; /* Number of topics */ - lws_mqtt_topic_elem_t *topic; /* Array of topic elements */ - - /*--v-Following will be used by LWS-v--*/ - uint16_t packet_id; -} lws_mqtt_subscribe_param_t; - -typedef enum { - LMQCP_RESERVED, - LMQCP_CTOS_CONNECT, /* Connection request */ - LMQCP_STOC_CONNACK, /* Connection acknowledgment */ - LMQCP_PUBLISH, /* Publish Message */ - LMQCP_PUBACK, /* QoS 1: Publish acknowledgment */ - LMQCP_PUBREC, /* QoS 2.1: Publish received */ - LMQCP_PUBREL, /* QoS 2.2: Publish release */ - LMQCP_PUBCOMP, /* QoS 2.3: Publish complete */ - LMQCP_CTOS_SUBSCRIBE, /* Subscribe request */ - LMQCP_STOC_SUBACK, /* Subscribe acknowledgment */ - LMQCP_CTOS_UNSUBSCRIBE, /* Unsubscribe request */ - LMQCP_STOC_UNSUBACK, /* Unsubscribe acknowledgment */ - LMQCP_CTOS_PINGREQ, /* PING request */ - LMQCP_STOC_PINGRESP, /* PONG response */ - LMQCP_DISCONNECT, /* Disconnect notification */ - LMQCP_AUTH /* Authentication exchange */ -} lws_mqtt_control_packet_t; - -/* flags from byte 8 of C_TO_S CONNECT */ -typedef enum { - LMQCFT_USERNAME = (1 << 7), - LMQCFT_PASSWORD = (1 << 6), - LMQCFT_WILL_RETAIN = (1 << 5), - LMQCFT_WILL_QOS = (1 << 3), - LMQCFT_WILL_FLAG = (1 << 2), - LMQCFT_CLEAN_START = (1 << 1), - LMQCFT_RESERVED = (1 << 0), - - LMQCFT_WILL_QOS_MASK = (3 << 3), -} lws_mqtt_connect_flags_t; - -/* flags for S_TO_C CONNACK */ -typedef enum { - LMQCFT_SESSION_PRESENT = (1 << 0), -} lws_mqtt_connack_flags_t; - -typedef enum { - LMQCP_REASON_SUCCESS = 0x00, - LMQCP_REASON_NORMAL_DISCONNECTION = 0x00, - LMQCP_REASON_GRANTED_QOS0 = 0x00, - LMQCP_REASON_GRANTED_QOS1 = 0x01, - LMQCP_REASON_GRANTED_QOS2 = 0x02, - LMQCP_REASON_DISCONNECT_WILL = 0x04, - LMQCP_REASON_NO_MATCHING_SUBSCRIBER = 0x10, - LMQCP_REASON_NO_SUBSCRIPTION_EXISTED = 0x11, - LMQCP_REASON_CONTINUE_AUTHENTICATION = 0x18, - LMQCP_REASON_RE_AUTHENTICATE = 0x19, - - LMQCP_REASON_UNSPECIFIED_ERROR = 0x80, - LMQCP_REASON_MALFORMED_PACKET = 0x81, - LMQCP_REASON_PROTOCOL_ERROR = 0x82, - LMQCP_REASON_IMPLEMENTATION_SPECIFIC_ERROR = 0x83, - - /* Begin - Error codes for CONNACK */ - LMQCP_REASON_UNSUPPORTED_PROTOCOL = 0x84, - LMQCP_REASON_CLIENT_ID_INVALID = 0x85, - LMQCP_REASON_BAD_CREDENTIALS = 0x86, - LMQCP_REASON_NOT_AUTHORIZED = 0x87, - /* End - Error codes for CONNACK */ - - LMQCP_REASON_SERVER_UNAVAILABLE = 0x88, - LMQCP_REASON_SERVER_BUSY = 0x89, - LMQCP_REASON_BANNED = 0x8a, - LMQCP_REASON_SERVER_SHUTTING_DOWN = 0x8b, - LMQCP_REASON_BAD_AUTHENTICATION_METHOD = 0x8c, - LMQCP_REASON_KEEPALIVE_TIMEOUT = 0x8d, - LMQCP_REASON_SESSION_TAKEN_OVER = 0x8e, - LMQCP_REASON_TOPIC_FILTER_INVALID = 0x8f, - LMQCP_REASON_TOPIC_NAME_INVALID = 0x90, - LMQCP_REASON_PACKET_ID_IN_USE = 0x91, - LMQCP_REASON_PACKET_ID_NOT_FOUND = 0x92, - LMQCP_REASON_MAX_RX_EXCEEDED = 0x93, - LMQCP_REASON_TOPIC_ALIAS_INVALID = 0x94, - LMQCP_REASON_PACKET_TOO_LARGE = 0x95, - LMQCP_REASON_RATELIMIT = 0x96, - LMQCP_REASON_QUOTA_EXCEEDED = 0x97, - LMQCP_REASON_ADMINISTRATIVE_ACTION = 0x98, - LMQCP_REASON_PAYLOAD_FORMAT_INVALID = 0x99, - LMQCP_REASON_RETAIN_NOT_SUPPORTED = 0x9a, - LMQCP_REASON_QOS_NOT_SUPPORTED = 0x9b, - LMQCP_REASON_USE_ANOTHER_SERVER = 0x9c, - LMQCP_REASON_SERVER_MOVED = 0x9d, - LMQCP_REASON_SHARED_SUBSCRIPTIONS_NOT_SUPPORTED = 0x9e, - LMQCP_REASON_CONNECTION_RATE_EXCEEDED = 0x9f, - LMQCP_REASON_MAXIMUM_CONNECT_TIME = 0xa0, - LMQCP_REASON_SUBSCRIPTION_IDS_NOT_SUPPORTED = 0xa1, - LMQCP_REASON_WILDCARD_SUBSCRIPTIONS_NOT_SUPPORTED = 0xa2, -} lws_mqtt_reason_t; - -typedef enum { - LMQPROP_INVALID, - LMQPROP_PAYLOAD_FORMAT_INDICATOR = 0x01, - LMQPROP_MESSAGE_EXPIRY_INTERVAL = 0x02, - LMQPROP_CONTENT_TYPE = 0x03, - LMQPROP_RESPONSE_TOPIC = 0x08, - LMQPROP_CORRELATION_DATA = 0x09, - LMQPROP_SUBSCRIPTION_IDENTIFIER = 0x0b, - LMQPROP_SESSION_EXPIRY_INTERVAL = 0x11, - LMQPROP_ASSIGNED_CLIENT_IDENTIFIER = 0x12, - LMQPROP_SERVER_KEEP_ALIVE = 0x13, - LMQPROP_AUTHENTICATION_METHOD = 0x15, - LMQPROP_AUTHENTICATION_DATA = 0x16, - LMQPROP_REQUEST_PROBLEM_INFORMATION = 0x17, - LMQPROP_WILL_DELAY_INTERVAL = 0x18, - LMQPROP_REQUEST_RESPONSE_INFORMATION = 0x19, - LMQPROP_RESPONSE_INFORMATION = 0x1a, - LMQPROP_SERVER_REFERENCE = 0x1c, - LMQPROP_REASON_STRING = 0x1f, - LMQPROP_RECEIVE_MAXIMUM = 0x21, - LMQPROP_TOPIC_ALIAS_MAXIMUM = 0x22, - LMQPROP_TOPIC_ALIAS = 0x23, - LMQPROP_MAXIMUM_QOS = 0x24, - LMQPROP_RETAIN_AVAILABLE = 0x25, - LMQPROP_USER_PROPERTY = 0x26, - LMQPROP_MAXIMUM_PACKET_SIZE = 0x27, - LMQPROP_WILDCARD_SUBSCRIPTION_AVAIL = 0x28, - LMQPROP_SUBSCRIPTION_IDENTIFIER_AVAIL = 0x29, - LMQPROP_SHARED_SUBSCRIPTION_AVAIL = 0x2a -} lws_mqtt_property; - -int -lws_read_mqtt(struct lws *wsi, unsigned char *buf, lws_filepos_t len); - -/* returns 0 if bd1 and bd2 are "the same", that includes empty, else nonzero */ -LWS_VISIBLE LWS_EXTERN int -lws_mqtt_bindata_cmp(const lws_mqtt_str_t *bd1, const lws_mqtt_str_t *bd2); - -LWS_VISIBLE LWS_EXTERN void -lws_mqtt_str_init(lws_mqtt_str_t *s, uint8_t *buf, uint16_t lim, char nf); - -LWS_VISIBLE LWS_EXTERN lws_mqtt_str_t * -lws_mqtt_str_create(uint16_t lim); - -LWS_VISIBLE LWS_EXTERN lws_mqtt_str_t * -lws_mqtt_str_create_init(uint8_t *buf, uint16_t len, uint16_t lim); - -LWS_VISIBLE LWS_EXTERN lws_mqtt_str_t * -lws_mqtt_str_create_cstr_dup(const char *buf, uint16_t lim); - -LWS_VISIBLE LWS_EXTERN uint8_t * -lws_mqtt_str_next(lws_mqtt_str_t *s, uint16_t *budget); - -LWS_VISIBLE LWS_EXTERN int -lws_mqtt_str_advance(lws_mqtt_str_t *s, int n); - -LWS_VISIBLE LWS_EXTERN void -lws_mqtt_str_free(lws_mqtt_str_t **s); - - -/** - * lws_mqtt_client_send_publish() - lws_write a publish packet - * - * \param wsi: the mqtt child wsi - * \param pub: additional information on what we're publishing - * \param buf: payload to send - * \param len: length of data in buf - * \param final: flag indicating this is the last part - * - * Issues part of, or the whole of, a PUBLISH frame. The first part of the - * frame contains the header, and uses the .qos and .payload_len parts of \p pub - * since MQTT requires the frame to specify the PUBLISH message length at the - * start. The \p len paramter may be less than \p pub.payload_len, in which - * case subsequent calls with more payload are needed to complete the frame. - * - * Although the connection is stuck waiting for the remainder, in that it can't - * issue any other frames until the current one is completed, lws returns to the - * event loop normally and can continue the calls with additional payload even - * for huge frames as the data becomes available, consistent with timeout needs - * and latency to start any new frame (even, eg, related to ping / pong). - * - * If you're sending large frames, the OS will typically not allow the data to - * be sent all at once to kernel side. So you should ideally cut the payload - * up into 1 or 2- mtu sized chunks and send that. - * - * Final should be set when you're calling with the last part of the payload. - */ -LWS_VISIBLE LWS_EXTERN int -lws_mqtt_client_send_publish(struct lws *wsi, lws_mqtt_publish_param_t *pub, - const void *buf, uint32_t len, int final); - -/** - * lws_mqtt_client_send_subcribe() - lws_write a subscribe packet - * - * \param wsi: the mqtt child wsi - * \param sub: which topic(s) we want to subscribe to - * - * For topics other child streams have not already subscribed to, send a packet - * to the server asking to subscribe to them. If all topics listed are already - * subscribed to be the shared network connection, just trigger the - * LWS_CALLBACK_MQTT_SUBSCRIBED callback as if a SUBACK had come. - * - * \p sub doesn't need to exist after the return from this function. - */ -LWS_VISIBLE LWS_EXTERN int -lws_mqtt_client_send_subcribe(struct lws *wsi, lws_mqtt_subscribe_param_t *sub); - -/** - * lws_mqtt_client_send_unsubcribe() - lws_write a unsubscribe packet - * - * \param wsi: the mqtt child wsi - * \param sub: which topic(s) we want to unsubscribe from - * - * For topics other child streams are not subscribed to, send a packet - * to the server asking to unsubscribe from them. If all topics - * listed are already subscribed by other child streams on the shared - * network connection, just trigger the LWS_CALLBACK_MQTT_UNSUBSCRIBED - * callback as if a UNSUBACK had come. - * - * \p unsub doesn't need to exist after the return from this function. - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_mqtt_client_send_unsubcribe(struct lws *wsi, - const lws_mqtt_subscribe_param_t *unsub); - -#endif /* _LWS_MQTT_H */ diff --git a/win64/include/websockets/libwebsockets/lws-netdev.h b/win64/include/websockets/libwebsockets/lws-netdev.h deleted file mode 100644 index 163dac97..00000000 --- a/win64/include/websockets/libwebsockets/lws-netdev.h +++ /dev/null @@ -1,283 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#define LWS_WIFI_MAX_SCAN_TRACK 16 -#define LWS_ETH_ALEN 6 - -typedef uint8_t lws_wifi_ch_t; -typedef int8_t lws_wifi_rssi_t; -struct lws_netdev_instance; - -typedef enum { - LWSNDTYP_UNKNOWN, - LWSNDTYP_WIFI, - LWSNDTYP_ETH, -} lws_netdev_type_t; - -/* - * Base class for netdev configuration - */ - -typedef struct lws_netdev_config { - void *plat_config; -} lws_netdev_config_t; - -/* - * Const Logical generic network interface ops - */ - -typedef struct lws_netdev_ops { - struct lws_netdev_instance * (*create)(struct lws_context *ctx, - const struct lws_netdev_ops *ops, - const char *name, void *platinfo); - int (*configure)(struct lws_netdev_instance *nd, - lws_netdev_config_t *config); - int (*up)(struct lws_netdev_instance *nd); - int (*down)(struct lws_netdev_instance *nd); - int (*event)(struct lws_netdev_instance *nd, lws_usec_t timestamp, - void *buf, size_t len); - /**< these are SMD events coming from lws event loop thread context */ - void (*destroy)(struct lws_netdev_instance **pnd); - int (*connect)(struct lws_netdev_instance *wnd, const char *ssid, - const char *passphrase, uint8_t *bssid); - void (*scan)(struct lws_netdev_instance *nd); -} lws_netdev_ops_t; - -/* - * Network devices on this platform - * - * We also hold a list of all known network credentials (when they are needed - * because there is a network interface without anything to connect to) and - * the lws_settings instance they are stored in - */ - -typedef struct lws_netdevs { - lws_dll2_owner_t owner; - /**< list of netdevs / lws_netdev_instance_t -based objects */ - - lws_dll2_owner_t owner_creds; - /**< list of known credentials */ - struct lwsac *ac_creds; - /**< lwsac holding retreived credentials settings, or NULL */ - lws_settings_instance_t *si; - - lws_sockaddr46 sa46_dns_resolver; - - uint8_t refcount_creds; - /**< when there are multiple netdevs, must refcount creds in mem */ -} lws_netdevs_t; - -/* - * Base class for an allocated instantiated derived object using lws_netdev_ops, - * ie, a specific ethernet device - */ - -typedef struct lws_netdev_instance { - const char *name; - const lws_netdev_ops_t *ops; - void *platinfo; - lws_dll2_t list; - uint8_t mac[LWS_ETH_ALEN]; - uint8_t type; /* lws_netdev_type_t */ -} lws_netdev_instance_t; - -enum { - LNDIW_ALG_OPEN, - LNDIW_ALG_WPA2, - - LNDIW_MODE_STA = (1 << 0), - LNDIW_MODE_AP = (1 << 1), - LNDIW_UP = (1 << 7), - - LNDIW_ACQ_IPv4 = (1 << 0), - LNDIW_ACQ_IPv6 = (1 << 1), -}; - -/* - * Group AP / Station State - */ - -typedef enum { - LWSNDVWIFI_STATE_INITIAL, - /* - * We should gratuitously try whatever last worked for us, then - * if that fails, worry about the rest of the logic - */ - LWSNDVWIFI_STATE_SCAN, - /* - * Unconnected, scanning: AP known in one of the config slots -> - * configure it, start timeout + LWSNDVWIFI_STATE_STAT, if no AP - * already up in same group with lower MAC, after a random - * period start up our AP (LWSNDVWIFI_STATE_AP) - */ - LWSNDVWIFI_STATE_AP, - /* Trying to be the group AP... periodically do a scan - * LWSNDVWIFI_STATE_AP_SCAN, faster and then slower - */ - LWSNDVWIFI_STATE_AP_SCAN, - /* - * doing a scan while trying to be the group AP... if we see a - * lower MAC being the AP for the same group AP, abandon being - * an AP and join that AP as a station - */ - LWSNDVWIFI_STATE_STAT_GRP_AP, - /* - * We have decided to join another group member who is being the - * AP, as its MAC is lower than ours. This is a stable state, - * but we still do periodic scans - * LWSNDVWIFI_STATE_STAT_GRP_AP_SCAN and will always prefer an - * AP configured in a slot. - */ - LWSNDVWIFI_STATE_STAT_GRP_AP_SCAN, - /* - * We have joined a group member who is doing the AP job... we - * want to check every now and then if a configured AP has - * appeared that we should better use instead. Otherwise stay - * in LWSNDVWIFI_STATE_STAT_GRP_AP - */ - LWSNDVWIFI_STATE_STAT, - /* - * trying to connect to another non-group AP. If we don't get an - * IP within a timeout and retries, blacklist it and go back - */ - LWSNDVWIFI_STATE_STAT_HAPPY, -} lws_netdev_wifi_state_t; - -/* - * Generic WIFI credentials - */ - -typedef struct lws_wifi_creds { - lws_dll2_t list; - - uint8_t bssid[LWS_ETH_ALEN]; - char passphrase[64]; - char ssid[33]; - uint8_t alg; -} lws_wifi_creds_t; - -/* - * Generic WIFI Network Device Instance - */ - -typedef struct lws_netdev_instance_wifi { - lws_netdev_instance_t inst; - lws_dll2_owner_t scan; /* sorted scan results */ - lws_sorted_usec_list_t sul_scan; - - lws_wifi_creds_t *ap_cred; - const char *ap_ip; - - const char *sta_ads; - - char current_attempt_ssid[33]; - uint8_t current_attempt_bssid[LWS_ETH_ALEN]; - - uint8_t flags; - uint8_t state; /* lws_netdev_wifi_state_t */ -} lws_netdev_instance_wifi_t; - -/* - * Logical scan results sorted list item - */ - -typedef struct lws_wifi_sta { - lws_dll2_t list; - - uint32_t last_seen; /* unix time */ - uint32_t last_tried; /* unix time */ - - uint8_t bssid[LWS_ETH_ALEN]; - char *ssid; /* points to overallocation */ - uint8_t ssid_len; - lws_wifi_ch_t ch; - lws_wifi_rssi_t rssi[8]; - int16_t rssi_avg; - uint8_t authmode; - - uint8_t rssi_count; - uint8_t rssi_next; - - /* ssid overallocated afterwards */ -} lws_wifi_sta_t; - -#define rssi_averaged(_x) (_x->rssi_count ? \ - ((int)_x->rssi_avg / (int)_x->rssi_count) : \ - -200) - -LWS_VISIBLE LWS_EXTERN lws_netdevs_t * -lws_netdevs_from_ctx(struct lws_context *ctx); - -LWS_VISIBLE LWS_EXTERN int -lws_netdev_credentials_settings_set(lws_netdevs_t *nds); - -LWS_VISIBLE LWS_EXTERN int -lws_netdev_credentials_settings_get(lws_netdevs_t *nds); - -LWS_VISIBLE LWS_EXTERN struct lws_netdev_instance * -lws_netdev_wifi_create_plat(struct lws_context *ctx, - const lws_netdev_ops_t *ops, const char *name, - void *platinfo); -LWS_VISIBLE LWS_EXTERN int -lws_netdev_wifi_configure_plat(struct lws_netdev_instance *nd, - lws_netdev_config_t *config); -LWS_VISIBLE LWS_EXTERN int -lws_netdev_wifi_event_plat(struct lws_netdev_instance *nd, lws_usec_t timestamp, - void *buf, size_t len); -LWS_VISIBLE LWS_EXTERN int -lws_netdev_wifi_up_plat(struct lws_netdev_instance *nd); -LWS_VISIBLE LWS_EXTERN int -lws_netdev_wifi_down_plat(struct lws_netdev_instance *nd); -LWS_VISIBLE LWS_EXTERN void -lws_netdev_wifi_destroy_plat(struct lws_netdev_instance **pnd); -LWS_VISIBLE LWS_EXTERN void -lws_netdev_wifi_scan_plat(lws_netdev_instance_t *nd); - -LWS_VISIBLE LWS_EXTERN int -lws_netdev_wifi_connect_plat(lws_netdev_instance_t *wnd, const char *ssid, - const char *passphrase, uint8_t *bssid); - -LWS_VISIBLE LWS_EXTERN lws_netdev_instance_t * -lws_netdev_find(lws_netdevs_t *netdevs, const char *ifname); - -#define lws_netdev_wifi_plat_ops \ - .create = lws_netdev_wifi_create_plat, \ - .configure = lws_netdev_wifi_configure_plat, \ - .event = lws_netdev_wifi_event_plat, \ - .up = lws_netdev_wifi_up_plat, \ - .down = lws_netdev_wifi_down_plat, \ - .connect = lws_netdev_wifi_connect_plat, \ - .scan = lws_netdev_wifi_scan_plat, \ - .destroy = lws_netdev_wifi_destroy_plat - -/* - * This is for plat / OS level init that is necessary to be able to use - * networking or wifi at all, without mentioning any specific device - */ - -LWS_VISIBLE LWS_EXTERN int -lws_netdev_plat_init(void); - -LWS_VISIBLE LWS_EXTERN int -lws_netdev_plat_wifi_init(void); diff --git a/win64/include/websockets/libwebsockets/lws-network-helper.h b/win64/include/websockets/libwebsockets/lws-network-helper.h deleted file mode 100644 index 3ba324a7..00000000 --- a/win64/include/websockets/libwebsockets/lws-network-helper.h +++ /dev/null @@ -1,193 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** \defgroup net Network related helper APIs - * ##Network related helper APIs - * - * These wrap miscellaneous useful network-related functions - */ -///@{ - -#if defined(LWS_ESP_PLATFORM) -#include <lwip/sockets.h> -#endif - -typedef union { -#if defined(LWS_WITH_IPV6) - struct sockaddr_in6 sa6; -#endif - struct sockaddr_in sa4; -} lws_sockaddr46; - -/** - * lws_canonical_hostname() - returns this host's hostname - * - * This is typically used by client code to fill in the host parameter - * when making a client connection. You can only call it after the context - * has been created. - * - * \param context: Websocket context - */ -LWS_VISIBLE LWS_EXTERN const char * LWS_WARN_UNUSED_RESULT -lws_canonical_hostname(struct lws_context *context); - -/** - * lws_get_peer_addresses() - Get client address information - * \param wsi: Local struct lws associated with - * \param fd: Connection socket descriptor - * \param name: Buffer to take client address name - * \param name_len: Length of client address name buffer - * \param rip: Buffer to take client address IP dotted quad - * \param rip_len: Length of client address IP buffer - * - * This function fills in name and rip with the name and IP of - * the client connected with socket descriptor fd. Names may be - * truncated if there is not enough room. If either cannot be - * determined, they will be returned as valid zero-length strings. - */ -LWS_VISIBLE LWS_EXTERN void -lws_get_peer_addresses(struct lws *wsi, lws_sockfd_type fd, char *name, - int name_len, char *rip, int rip_len); - -/** - * lws_get_peer_simple() - Get client address information without RDNS - * - * \param wsi: Local struct lws associated with - * \param name: Buffer to take client address name - * \param namelen: Length of client address name buffer - * - * This provides a 123.123.123.123 type IP address in name from the - * peer that has connected to wsi - */ -LWS_VISIBLE LWS_EXTERN const char * -lws_get_peer_simple(struct lws *wsi, char *name, size_t namelen); - -LWS_VISIBLE LWS_EXTERN const char * -lws_get_peer_simple_fd(lws_sockfd_type fd, char *name, size_t namelen); - -#define LWS_ITOSA_USABLE 0 -#define LWS_ITOSA_NOT_EXIST -1 -#define LWS_ITOSA_NOT_USABLE -2 -#define LWS_ITOSA_BUSY -3 /* only returned by lws_socket_bind() on - EADDRINUSE */ - -#if !defined(LWS_PLAT_FREERTOS) && !defined(LWS_PLAT_OPTEE) -/** - * lws_interface_to_sa() - Convert interface name or IP to sockaddr struct - * - * \param ipv6: Allow IPV6 addresses - * \param ifname: Interface name or IP - * \param addr: struct sockaddr_in * to be written - * \param addrlen: Length of addr - * - * This converts a textual network interface name to a sockaddr usable by - * other network functions. - * - * If the network interface doesn't exist, it will return LWS_ITOSA_NOT_EXIST. - * - * If the network interface is not usable, eg ethernet cable is removed, it - * may logically exist but not have any IP address. As such it will return - * LWS_ITOSA_NOT_USABLE. - * - * If the network interface exists and is usable, it will return - * LWS_ITOSA_USABLE. - */ -LWS_VISIBLE LWS_EXTERN int -lws_interface_to_sa(int ipv6, const char *ifname, struct sockaddr_in *addr, - size_t addrlen); -#endif - -/** - * lws_sa46_compare_ads() - checks if two sa46 have the same address - * - * \param sa46a: first - * \param sa46b: second - * - * Returns 0 if the address family and address are the same, otherwise nonzero. - */ -LWS_VISIBLE LWS_EXTERN int -lws_sa46_compare_ads(const lws_sockaddr46 *sa46a, const lws_sockaddr46 *sa46b); - -/* - * lws_parse_numeric_address() - converts numeric ipv4 or ipv6 to byte address - * - * \param ads: the numeric ipv4 or ipv6 address string - * \param result: result array - * \param max_len: max length of result array - * - * Converts a 1.2.3.4 or 2001:abcd:123:: or ::ffff:1.2.3.4 formatted numeric - * address into an array of network ordered byte address elements. - * - * Returns < 0 on error, else length of result set, either 4 or 16 for ipv4 / - * ipv6. - */ -LWS_VISIBLE LWS_EXTERN int -lws_parse_numeric_address(const char *ads, uint8_t *result, size_t max_len); - -/* - * lws_sa46_parse_numeric_address() - converts numeric ipv4 or ipv6 to sa46 - * - * \param ads: the numeric ipv4 or ipv6 address string - * \param sa46: pointer to sa46 to set - * - * Converts a 1.2.3.4 or 2001:abcd:123:: or ::ffff:1.2.3.4 formatted numeric - * address into an sa46, a union of sockaddr_in or sockaddr_in6 depending on - * what kind of address was found. sa46->sa4.sin_fmaily will be AF_INET if - * ipv4, or AF_INET6 if ipv6. - * - * Returns 0 if the sa46 was set, else < 0 on error. - */ -LWS_VISIBLE LWS_EXTERN int -lws_sa46_parse_numeric_address(const char *ads, lws_sockaddr46 *sa46); - -/** - * lws_write_numeric_address() - convert network byte order ads to text - * - * \param ads: network byte order address array - * \param size: number of bytes valid in ads - * \param buf: result buffer to take text format - * \param len: max size of text buffer - * - * Converts an array of network-ordered byte address elements to a textual - * representation of the numeric address, like "1.2.3.4" or "::1". Return 0 - * if OK else < 0. ipv6 only supported with LWS_IPV6=1 at cmake. - */ -LWS_VISIBLE LWS_EXTERN int -lws_write_numeric_address(const uint8_t *ads, int size, char *buf, size_t len); - -/** - * lws_sa46_write_numeric_address() - convert sa46 ads to textual numeric ads - * - * \param sa46: the sa46 whose address to show - * \param buf: result buffer to take text format - * \param len: max size of text buffer - * - * Converts the ipv4 or ipv6 address in an lws_sockaddr46 to a textual - * representation of the numeric address, like "1.2.3.4" or "::1". Return 0 - * if OK else < 0. ipv6 only supported with LWS_IPV6=1 at cmake. - */ -LWS_VISIBLE LWS_EXTERN int -lws_sa46_write_numeric_address(lws_sockaddr46 *sa46, char *buf, size_t len); - -///@} diff --git a/win64/include/websockets/libwebsockets/lws-optee.h b/win64/include/websockets/libwebsockets/lws-optee.h deleted file mode 100644 index 1f581947..00000000 --- a/win64/include/websockets/libwebsockets/lws-optee.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#ifndef __LWS_OPTEE_H -#define __LWS_OPTEE_H - -/* 128-bit IP6 address */ -struct in6_addr { - union { - uint8_t u6_addr8[16]; - uint16_t u6_addr16[8]; - uint32_t u6_addr32[4]; - }; -}; - -#define _SS_MAXSIZE 128U -#define _SS_ALIGNSIZE (sizeof(int64_t)) -#define _SS_PAD1SIZE (_SS_ALIGNSIZE - \ - sizeof(sa_family_t)) -#define _SS_PAD2SIZE (_SS_MAXSIZE - \ - sizeof(sa_family_t) - _SS_PAD1SIZE - _SS_ALIGNSIZE) - -struct sockaddr_storage { - sa_family_t ss_family; /* address family */ - char __ss_pad1[_SS_PAD1SIZE]; - int64_t __ss_align; /* force desired struct alignment */ - char __ss_pad2[_SS_PAD2SIZE]; -}; - -#define __SOCK_SIZE__ 16 /* sizeof(struct sockaddr) */ -struct sockaddr { - sa_family_t sa_family; /* address family */ - uint8_t sa_data[__SOCK_SIZE__ /* address value */ - - sizeof(sa_family_t)]; -}; - -/* 16 bytes */ -struct sockaddr_in { - sa_family_t sin_family; - in_port_t sin_port; - struct in_addr sin_addr; - uint8_t sin_zero[__SOCK_SIZE__ /* padding until 16 bytes */ - - sizeof(sa_family_t) - - sizeof(in_port_t) - - sizeof(struct in_addr)]; -}; - -struct sockaddr_in6 { - sa_family_t sin6_family; /* AF_INET6 */ - in_port_t sin6_port; /* Transport layer port # */ - uint32_t sin6_flowinfo; /* IP6 flow information */ - struct in6_addr sin6_addr; /* IP6 address */ - uint32_t sin6_scope_id; /* scope zone index */ -}; - -#endif /* __LWS_OPTEE_H */ diff --git a/win64/include/websockets/libwebsockets/lws-protocols-plugins.h b/win64/include/websockets/libwebsockets/lws-protocols-plugins.h deleted file mode 100644 index 0c966667..00000000 --- a/win64/include/websockets/libwebsockets/lws-protocols-plugins.h +++ /dev/null @@ -1,309 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup Protocols-and-Plugins Protocols and Plugins - * \ingroup lwsapi - * - * ##Protocol and protocol plugin -related apis - * - * Protocols bind ws protocol names to a custom callback specific to that - * protocol implementaion. - * - * A list of protocols can be passed in at context creation time, but it is - * also legal to leave that NULL and add the protocols and their callback code - * using plugins. - * - * Plugins are much preferable compared to cut and pasting code into an - * application each time, since they can be used standalone. - */ -///@{ -/** struct lws_protocols - List of protocols and handlers client or server - * supports. */ - -struct lws_protocols { - const char *name; - /**< Protocol name that must match the one given in the client - * Javascript new WebSocket(url, 'protocol') name. */ - lws_callback_function *callback; - /**< The service callback used for this protocol. It allows the - * service action for an entire protocol to be encapsulated in - * the protocol-specific callback */ - size_t per_session_data_size; - /**< Each new connection using this protocol gets - * this much memory allocated on connection establishment and - * freed on connection takedown. A pointer to this per-connection - * allocation is passed into the callback in the 'user' parameter */ - size_t rx_buffer_size; - /**< lws allocates this much space for rx data and informs callback - * when something came. Due to rx flow control, the callback may not - * be able to consume it all without having to return to the event - * loop. That is supported in lws. - * - * If .tx_packet_size is 0, this also controls how much may be sent at - * once for backwards compatibility. - */ - unsigned int id; - /**< ignored by lws, but useful to contain user information bound - * to the selected protocol. For example if this protocol was - * called "myprotocol-v2", you might set id to 2, and the user - * code that acts differently according to the version can do so by - * switch (wsi->a.protocol->id), user code might use some bits as - * capability flags based on selected protocol version, etc. */ - void *user; /**< ignored by lws, but user code can pass a pointer - here it can later access from the protocol callback */ - size_t tx_packet_size; - /**< 0 indicates restrict send() size to .rx_buffer_size for backwards- - * compatibility. - * If greater than zero, a single send() is restricted to this amount - * and any remainder is buffered by lws and sent afterwards also in - * these size chunks. Since that is expensive, it's preferable - * to restrict one fragment you are trying to send to match this - * size. - */ - - /* Add new things just above here ---^ - * This is part of the ABI, don't needlessly break compatibility */ -}; - -/** - * lws_vhost_name_to_protocol() - get vhost's protocol object from its name - * - * \param vh: vhost to search - * \param name: protocol name - * - * Returns NULL or a pointer to the vhost's protocol of the requested name - */ -LWS_VISIBLE LWS_EXTERN const struct lws_protocols * -lws_vhost_name_to_protocol(struct lws_vhost *vh, const char *name); - -/** - * lws_get_protocol() - Returns a protocol pointer from a websocket - * connection. - * \param wsi: pointer to struct websocket you want to know the protocol of - * - * - * Some apis can act on all live connections of a given protocol, - * this is how you can get a pointer to the active protocol if needed. - */ -LWS_VISIBLE LWS_EXTERN const struct lws_protocols * -lws_get_protocol(struct lws *wsi); - -/** lws_protocol_get() - deprecated: use lws_get_protocol */ -LWS_VISIBLE LWS_EXTERN const struct lws_protocols * -lws_protocol_get(struct lws *wsi) LWS_WARN_DEPRECATED; - -/** - * lws_protocol_vh_priv_zalloc() - Allocate and zero down a protocol's per-vhost - * storage - * \param vhost: vhost the instance is related to - * \param prot: protocol the instance is related to - * \param size: bytes to allocate - * - * Protocols often find it useful to allocate a per-vhost struct, this is a - * helper to be called in the per-vhost init LWS_CALLBACK_PROTOCOL_INIT - */ -LWS_VISIBLE LWS_EXTERN void * -lws_protocol_vh_priv_zalloc(struct lws_vhost *vhost, - const struct lws_protocols *prot, int size); - -/** - * lws_protocol_vh_priv_get() - retreive a protocol's per-vhost storage - * - * \param vhost: vhost the instance is related to - * \param prot: protocol the instance is related to - * - * Recover a pointer to the allocated per-vhost storage for the protocol created - * by lws_protocol_vh_priv_zalloc() earlier - */ -LWS_VISIBLE LWS_EXTERN void * -lws_protocol_vh_priv_get(struct lws_vhost *vhost, - const struct lws_protocols *prot); - -/** - * lws_adjust_protocol_psds - change a vhost protocol's per session data size - * - * \param wsi: a connection with the protocol to change - * \param new_size: the new size of the per session data size for the protocol - * - * Returns user_space for the wsi, after allocating - * - * This should not be used except to initalize a vhost protocol's per session - * data size one time, before any connections are accepted. - * - * Sometimes the protocol wraps another protocol and needs to discover and set - * its per session data size at runtime. - */ -LWS_VISIBLE LWS_EXTERN void * -lws_adjust_protocol_psds(struct lws *wsi, size_t new_size); - -/** - * lws_finalize_startup() - drop initial process privileges - * - * \param context: lws context - * - * This is called after the end of the vhost protocol initializations, but - * you may choose to call it earlier - */ -LWS_VISIBLE LWS_EXTERN int -lws_finalize_startup(struct lws_context *context); - -/** - * lws_pvo_search() - helper to find a named pvo in a linked-list - * - * \param pvo: the first pvo in the linked-list - * \param name: the name of the pvo to return if found - * - * Returns NULL, or a pointer to the name pvo in the linked-list - */ -LWS_VISIBLE LWS_EXTERN const struct lws_protocol_vhost_options * -lws_pvo_search(const struct lws_protocol_vhost_options *pvo, const char *name); - -/** - * lws_pvo_get_str() - retreive a string pvo value - * - * \param in: the first pvo in the linked-list - * \param name: the name of the pvo to return if found - * \param result: pointer to a const char * to get the result if any - * - * Returns 0 if found and *result set, or nonzero if not found - */ -LWS_VISIBLE LWS_EXTERN int -lws_pvo_get_str(void *in, const char *name, const char **result); - -LWS_VISIBLE LWS_EXTERN int -lws_protocol_init(struct lws_context *context); - -#define LWS_PLUGIN_API_MAGIC 190 - -/* - * Abstract plugin header for any kind of plugin class, always at top of - * actual class plugin export type. - * - * The export type object must be exported with the same name as the plugin - * file, eg, libmyplugin.so must export a const one of these as the symbol - * "myplugin". - * - * That is the only expected export from the plugin. - */ - -typedef struct lws_plugin_header { - const char *name; - const char *_class; - - unsigned int api_magic; - /* set to LWS_PLUGIN_API_MAGIC at plugin build time */ - - /* plugin-class specific superclass data follows */ -} lws_plugin_header_t; - -/* - * "lws_protocol_plugin" class export, for lws_protocol implementations done - * as plugins - */ -typedef struct lws_plugin_protocol { - lws_plugin_header_t hdr; - - const struct lws_protocols *protocols; /**< array of supported protocols provided by plugin */ - const struct lws_extension *extensions; /**< array of extensions provided by plugin */ - int count_protocols; /**< how many protocols */ - int count_extensions; /**< how many extensions */ -} lws_plugin_protocol_t; - - -/* - * This is the dynamic, runtime created part of the plugin instantiation. - * These are kept in a linked-list and destroyed with the context. - */ - -struct lws_plugin { - struct lws_plugin *list; /**< linked list */ - - const lws_plugin_header_t *hdr; - - union { -#if defined(LWS_WITH_LIBUV) && defined(UV_ERRNO_MAP) -#if (UV_VERSION_MAJOR > 0) - uv_lib_t lib; /**< shared library pointer */ -#endif -#endif - void *l; /**< */ - } u; -}; - -/* - * Event lib library plugin type (when LWS_WITH_EVLIB_PLUGINS) - * Public so new event libs can equally be supported outside lws itself - */ - -typedef struct lws_plugin_evlib { - lws_plugin_header_t hdr; - const struct lws_event_loop_ops *ops; -} lws_plugin_evlib_t; - -typedef int (*each_plugin_cb_t)(struct lws_plugin *p, void *user); - -/** - * lws_plugins_init() - dynamically load plugins of matching class from dirs - * - * \param pplugin: pointer to linked-list for this kind of plugin - * \param d: array of directory paths to look in - * \param _class: class string that plugin must declare - * \param filter: NULL, or a string that must appear after the third char of the plugin filename - * \param each: NULL, or each_plugin_cb_t callback for each instantiated plugin - * \param each_user: pointer passed to each callback - * - * Allows you to instantiate a class of plugins to a specified linked-list. - * The each callback allows you to init each inistantiated callback and pass a - * pointer each_user to it. - * - * To take down the plugins, pass a pointer to the linked-list head to - * lws_plugins_destroy. - * - * This is used for lws protocol plugins but you can define your own plugin - * class name like "mypluginclass", declare it in your plugin headers, and load - * your own plugins to your own list using this api the same way. - */ -LWS_VISIBLE LWS_EXTERN int -lws_plugins_init(struct lws_plugin **pplugin, const char * const *d, - const char *_class, const char *filter, - each_plugin_cb_t each, void *each_user); - -/** - * lws_plugins_destroy() - dynamically unload list of plugins - * - * \param pplugin: pointer to linked-list for this kind of plugin - * \param each: NULL, or each_plugin_cb_t callback for each instantiated plugin - * \param each_user: pointer passed to each callback - * - * Allows you to destroy a class of plugins from a specified linked-list - * created by a call to lws_plugins_init(). - * - * The each callback allows you to deinit each inistantiated callback and pass a - * pointer each_user to it, just before its footprint is destroyed. - */ -LWS_VISIBLE LWS_EXTERN int -lws_plugins_destroy(struct lws_plugin **pplugin, each_plugin_cb_t each, - void *each_user); - -///@} diff --git a/win64/include/websockets/libwebsockets/lws-purify.h b/win64/include/websockets/libwebsockets/lws-purify.h deleted file mode 100644 index 09849f7e..00000000 --- a/win64/include/websockets/libwebsockets/lws-purify.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup pur Sanitize / purify SQL and JSON helpers - * - * ##Sanitize / purify SQL and JSON helpers - * - * APIs for escaping untrusted JSON and SQL safely before use - */ -//@{ - -/** - * lws_sql_purify() - like strncpy but with escaping for sql quotes - * - * \param escaped: output buffer - * \param string: input buffer ('/0' terminated) - * \param len: output buffer max length - * - * Because escaping expands the output string, it's not - * possible to do it in-place, ie, with escaped == string - */ -LWS_VISIBLE LWS_EXTERN const char * -lws_sql_purify(char *escaped, const char *string, int len); - -/** - * lws_sql_purify_len() - return length of purified version of input string - * - * \param string: input buffer ('/0' terminated) - * - * Calculates any character escaping without writing it anywhere and returns the - * calculated length of the purified string. - */ -int -lws_sql_purify_len(const char *p); - -/** - * lws_json_purify() - like strncpy but with escaping for json chars - * - * \param escaped: output buffer - * \param string: input buffer ('/0' terminated) - * \param len: output buffer max length - * \param in_used: number of bytes of string we could escape in len - * - * Because escaping expands the output string, it's not - * possible to do it in-place, ie, with escaped == string - */ -LWS_VISIBLE LWS_EXTERN const char * -lws_json_purify(char *escaped, const char *string, int len, int *in_used); - -/** - * lws_json_purify_len() - find out the escaped length of a string - * - * \param string: input buffer ('/0' terminated) - * - * JSON may have to expand escapes by up to 6x the original depending on what - * it is. This doesn't actually do the escaping but goes through the motions - * and computes the length of the escaped string. - */ -LWS_VISIBLE LWS_EXTERN int -lws_json_purify_len(const char *string); - -/** - * lws_filename_purify_inplace() - replace scary filename chars with underscore - * - * \param filename: filename to be purified - * - * Replace scary characters in the filename (it should not be a path) - * with underscore, so it's safe to use. - */ -LWS_VISIBLE LWS_EXTERN void -lws_filename_purify_inplace(char *filename); - -LWS_VISIBLE LWS_EXTERN int -lws_plat_write_cert(struct lws_vhost *vhost, int is_key, int fd, void *buf, - int len); -LWS_VISIBLE LWS_EXTERN int -lws_plat_write_file(const char *filename, void *buf, int len); - -LWS_VISIBLE LWS_EXTERN int -lws_plat_read_file(const char *filename, void *buf, int len); - -LWS_VISIBLE LWS_EXTERN int -lws_plat_recommended_rsa_bits(void); -///@} diff --git a/win64/include/websockets/libwebsockets/lws-pwm.h b/win64/include/websockets/libwebsockets/lws-pwm.h deleted file mode 100644 index b57635f7..00000000 --- a/win64/include/websockets/libwebsockets/lws-pwm.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Generic PWM controller ops - * - * Copyright (C) 2019 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -typedef struct lws_pwm_map { - _lws_plat_gpio_t gpio; - uint8_t index; - uint8_t active_level; -} lws_pwm_map_t; - -typedef struct lws_pwm_ops { - int (*init)(const struct lws_pwm_ops *lo); - void (*intensity)(const struct lws_pwm_ops *lo, _lws_plat_gpio_t gpio, - lws_led_intensity_t inten); - const lws_pwm_map_t *pwm_map; - uint8_t count_pwm_map; -} lws_pwm_ops_t; - -LWS_VISIBLE LWS_EXTERN int -lws_pwm_plat_init(const struct lws_pwm_ops *lo); - -LWS_VISIBLE LWS_EXTERN void -lws_pwm_plat_intensity(const struct lws_pwm_ops *lo, _lws_plat_gpio_t gpio, - lws_led_intensity_t inten); - -#define lws_pwm_plat_ops \ - .init = lws_pwm_plat_init, \ - .intensity = lws_pwm_plat_intensity - -/* - * May be useful for making your own transitions or sequences - */ - -LWS_VISIBLE LWS_EXTERN lws_led_intensity_t -lws_led_func_linear(lws_led_seq_phase_t n); -LWS_VISIBLE LWS_EXTERN lws_led_intensity_t -lws_led_func_sine(lws_led_seq_phase_t n); - -/* canned sequences that can work out of the box */ - -extern const lws_led_sequence_def_t lws_pwmseq_sine_endless_slow, - lws_pwmseq_sine_endless_fast, - lws_pwmseq_linear_wipe, - lws_pwmseq_sine_up, lws_pwmseq_sine_down, - lws_pwmseq_static_on, - lws_pwmseq_static_half, - lws_pwmseq_static_off; diff --git a/win64/include/websockets/libwebsockets/lws-retry.h b/win64/include/websockets/libwebsockets/lws-retry.h deleted file mode 100644 index 386ccdcd..00000000 --- a/win64/include/websockets/libwebsockets/lws-retry.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -typedef struct lws_retry_bo { - const uint32_t *retry_ms_table; /* base delay in ms */ - uint16_t retry_ms_table_count; /* entries in table */ - uint16_t conceal_count; /* max retries to conceal */ - uint16_t secs_since_valid_ping; /* idle before PING issued */ - uint16_t secs_since_valid_hangup; /* idle before hangup conn */ - uint8_t jitter_percent; /* % additional random jitter */ -} lws_retry_bo_t; - -#define LWS_RETRY_CONCEAL_ALWAYS (0xffff) - -/** - * lws_retry_get_delay_ms() - get next delay from backoff table - * - * \param lws_context: the lws context (used for getting random) - * \param retry: the retry backoff table we are using, or NULL for default - * \param ctry: pointer to the try counter - * \param conceal: pointer to flag set to nonzero if the try should be concealed - * in terms of creating an error - * - * Increments *\p try and retruns the number of ms that should elapse before the - * next connection retry, according to the backoff table \p retry. *\p conceal is - * set if the number of tries is less than the backoff table conceal_count, or - * is zero if it exceeded it. This lets you conceal a certain number of retries - * before alerting the caller there is a problem. - * - * If \p retry is NULL, a default of 3s + (0..300ms jitter) is used. If it's - * non-NULL but jitter_percent is 0, the default of 30% jitter is retained. - */ - -LWS_VISIBLE LWS_EXTERN unsigned int -lws_retry_get_delay_ms(struct lws_context *context, const lws_retry_bo_t *retry, - uint16_t *ctry, char *conceal); - -/** - * lws_retry_sul_schedule() - schedule a sul according to the backoff table - * - * \param lws_context: the lws context (used for getting random) - * \param sul: pointer to the sul to schedule - * \param retry: the retry backoff table we are using, or NULL for default - * \param cb: the callback for when the sul schedule time arrives - * \param ctry: pointer to the try counter - * - * Helper that combines interpreting the retry table with scheduling a sul to - * the computed delay. If conceal is not set, it will not schedule the sul - * and just return 1. Otherwise the sul is scheduled and it returns 0. - */ -LWS_VISIBLE LWS_EXTERN int -lws_retry_sul_schedule(struct lws_context *context, int tid, - lws_sorted_usec_list_t *sul, const lws_retry_bo_t *retry, - sul_cb_t cb, uint16_t *ctry); - -/** - * lws_retry_sul_schedule_retry_wsi() - retry sul schedule helper using wsi - * - * \param wsi: the wsi to set the hrtimer sul on to the next retry interval - * \param sul: pointer to the sul to schedule - * \param cb: the callback for when the sul schedule time arrives - * \param ctry: pointer to the try counter - * - * Helper that uses context, tid and retry policy from a wsi to call - * lws_retry_sul_schedule. - * - * Since a udp connection can have many writes in flight, the retry count and - * the sul used to track each thing that wants to be written have to be handled - * individually, not the wsi. But the retry policy and the other things can - * be filled in from the wsi conveniently. - */ -LWS_VISIBLE LWS_EXTERN int -lws_retry_sul_schedule_retry_wsi(struct lws *wsi, lws_sorted_usec_list_t *sul, - sul_cb_t cb, uint16_t *ctry); diff --git a/win64/include/websockets/libwebsockets/lws-ring.h b/win64/include/websockets/libwebsockets/lws-ring.h deleted file mode 100644 index e642f0f2..00000000 --- a/win64/include/websockets/libwebsockets/lws-ring.h +++ /dev/null @@ -1,306 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** \defgroup lws_ring LWS Ringbuffer APIs - * ##lws_ring: generic ringbuffer struct - * - * Provides an abstract ringbuffer api supporting one head and one or an - * unlimited number of tails. - * - * All of the members are opaque and manipulated by lws_ring_...() apis. - * - * The lws_ring and its buffer is allocated at runtime on the heap, using - * - * - lws_ring_create() - * - lws_ring_destroy() - * - * It may contain any type, the size of the "element" stored in the ring - * buffer and the number of elements is given at creation time. - * - * When you create the ringbuffer, you can optionally provide an element - * destroy callback that frees any allocations inside the element. This is then - * automatically called for elements with no tail behind them, ie, elements - * which don't have any pending consumer are auto-freed. - * - * Whole elements may be inserted into the ringbuffer and removed from it, using - * - * - lws_ring_insert() - * - lws_ring_consume() - * - * You can find out how many whole elements are free or waiting using - * - * - lws_ring_get_count_free_elements() - * - lws_ring_get_count_waiting_elements() - * - * In addition there are special purpose optional byte-centric apis - * - * - lws_ring_next_linear_insert_range() - * - lws_ring_bump_head() - * - * which let you, eg, read() directly into the ringbuffer without needing - * an intermediate bounce buffer. - * - * The accessors understand that the ring wraps, and optimizes insertion and - * consumption into one or two memcpy()s depending on if the head or tail - * wraps. - * - * lws_ring only supports a single head, but optionally multiple tails with - * an API to inform it when the "oldest" tail has moved on. You can give - * NULL where-ever an api asks for a tail pointer, and it will use an internal - * single tail pointer for convenience. - * - * The "oldest tail", which is the only tail if you give it NULL instead of - * some other tail, is used to track which elements in the ringbuffer are - * still unread by anyone. - * - * - lws_ring_update_oldest_tail() - */ -///@{ -struct lws_ring; - -/** - * lws_ring_create(): create a new ringbuffer - * - * \param element_len: the size in bytes of one element in the ringbuffer - * \param count: the number of elements the ringbuffer can contain - * \param destroy_element: NULL, or callback to be called for each element - * that is removed from the ringbuffer due to the - * oldest tail moving beyond it - * - * Creates the ringbuffer and allocates the storage. Returns the new - * lws_ring *, or NULL if the allocation failed. - * - * If non-NULL, destroy_element will get called back for every element that is - * retired from the ringbuffer after the oldest tail has gone past it, and for - * any element still left in the ringbuffer when it is destroyed. It replaces - * all other element destruction code in your user code. - */ -LWS_VISIBLE LWS_EXTERN struct lws_ring * -lws_ring_create(size_t element_len, size_t count, - void (*destroy_element)(void *element)); - -/** - * lws_ring_destroy(): destroy a previously created ringbuffer - * - * \param ring: the struct lws_ring to destroy - * - * Destroys the ringbuffer allocation and the struct lws_ring itself. - */ -LWS_VISIBLE LWS_EXTERN void -lws_ring_destroy(struct lws_ring *ring); - -/** - * lws_ring_get_count_free_elements(): return how many elements can fit - * in the free space - * - * \param ring: the struct lws_ring to report on - * - * Returns how much room is left in the ringbuffer for whole element insertion. - */ -LWS_VISIBLE LWS_EXTERN size_t -lws_ring_get_count_free_elements(struct lws_ring *ring); - -/** - * lws_ring_get_count_waiting_elements(): return how many elements can be consumed - * - * \param ring: the struct lws_ring to report on - * \param tail: a pointer to the tail struct to use, or NULL for single tail - * - * Returns how many elements are waiting to be consumed from the perspective - * of the tail pointer given. - */ -LWS_VISIBLE LWS_EXTERN size_t -lws_ring_get_count_waiting_elements(struct lws_ring *ring, uint32_t *tail); - -/** - * lws_ring_insert(): attempt to insert up to max_count elements from src - * - * \param ring: the struct lws_ring to report on - * \param src: the array of elements to be inserted - * \param max_count: the number of available elements at src - * - * Attempts to insert as many of the elements at src as possible, up to the - * maximum max_count. Returns the number of elements actually inserted. - */ -LWS_VISIBLE LWS_EXTERN size_t -lws_ring_insert(struct lws_ring *ring, const void *src, size_t max_count); - -/** - * lws_ring_consume(): attempt to copy out and remove up to max_count elements - * to src - * - * \param ring: the struct lws_ring to report on - * \param tail: a pointer to the tail struct to use, or NULL for single tail - * \param dest: the array of elements to be inserted. or NULL for no copy - * \param max_count: the number of available elements at src - * - * Attempts to copy out as many waiting elements as possible into dest, from - * the perspective of the given tail, up to max_count. If dest is NULL, the - * copying out is not done but the elements are logically consumed as usual. - * NULL dest is useful in combination with lws_ring_get_element(), where you - * can use the element direct from the ringbuffer and then call this with NULL - * dest to logically consume it. - * - * Increments the tail position according to how many elements could be - * consumed. - * - * Returns the number of elements consumed. - */ -LWS_VISIBLE LWS_EXTERN size_t -lws_ring_consume(struct lws_ring *ring, uint32_t *tail, void *dest, - size_t max_count); - -/** - * lws_ring_get_element(): get a pointer to the next waiting element for tail - * - * \param ring: the struct lws_ring to report on - * \param tail: a pointer to the tail struct to use, or NULL for single tail - * - * Points to the next element that tail would consume, directly in the - * ringbuffer. This lets you write() or otherwise use the element without - * having to copy it out somewhere first. - * - * After calling this, you must call lws_ring_consume(ring, &tail, NULL, 1) - * which will logically consume the element you used up and increment your - * tail (tail may also be NULL there if you use a single tail). - * - * Returns NULL if no waiting element, or a const void * pointing to it. - */ -LWS_VISIBLE LWS_EXTERN const void * -lws_ring_get_element(struct lws_ring *ring, uint32_t *tail); - -/** - * lws_ring_update_oldest_tail(): free up elements older than tail for reuse - * - * \param ring: the struct lws_ring to report on - * \param tail: a pointer to the tail struct to use, or NULL for single tail - * - * If you are using multiple tails, you must use this API to inform the - * lws_ring when none of the tails still need elements in the fifo any more, - * by updating it when the "oldest" tail has moved on. - */ -LWS_VISIBLE LWS_EXTERN void -lws_ring_update_oldest_tail(struct lws_ring *ring, uint32_t tail); - -/** - * lws_ring_get_oldest_tail(): get current oldest available data index - * - * \param ring: the struct lws_ring to report on - * - * If you are initializing a new ringbuffer consumer, you can set its tail to - * this to start it from the oldest ringbuffer entry still available. - */ -LWS_VISIBLE LWS_EXTERN uint32_t -lws_ring_get_oldest_tail(struct lws_ring *ring); - -/** - * lws_ring_next_linear_insert_range(): used to write directly into the ring - * - * \param ring: the struct lws_ring to report on - * \param start: pointer to a void * set to the start of the next ringbuffer area - * \param bytes: pointer to a size_t set to the max length you may use from *start - * - * This provides a low-level, bytewise access directly into the ringbuffer - * allowing direct insertion of data without having to use a bounce buffer. - * - * The api reports the position and length of the next linear range that can - * be written in the ringbuffer, ie, up to the point it would wrap, and sets - * *start and *bytes accordingly. You can then, eg, directly read() into - * *start for up to *bytes, and use lws_ring_bump_head() to update the lws_ring - * with what you have done. - * - * Returns nonzero if no insertion is currently possible. - */ -LWS_VISIBLE LWS_EXTERN int -lws_ring_next_linear_insert_range(struct lws_ring *ring, void **start, - size_t *bytes); - -/** - * lws_ring_bump_head(): used to write directly into the ring - * - * \param ring: the struct lws_ring to operate on - * \param bytes: the number of bytes you inserted at the current head - */ -LWS_VISIBLE LWS_EXTERN void -lws_ring_bump_head(struct lws_ring *ring, size_t bytes); - -LWS_VISIBLE LWS_EXTERN void -lws_ring_dump(struct lws_ring *ring, uint32_t *tail); - -/* - * This is a helper that combines the common pattern of needing to consume - * some ringbuffer elements, move the consumer tail on, and check if that - * has moved any ringbuffer elements out of scope, because it was the last - * consumer that had not already consumed them. - * - * Elements that go out of scope because the oldest tail is now after them - * get garbage-collected by calling the destroy_element callback on them - * defined when the ringbuffer was created. - */ - -#define lws_ring_consume_and_update_oldest_tail(\ - ___ring, /* the lws_ring object */ \ - ___type, /* type of objects with tails */ \ - ___ptail, /* ptr to tail of obj with tail doing consuming */ \ - ___count, /* count of payload objects being consumed */ \ - ___list_head, /* head of list of objects with tails */ \ - ___mtail, /* member name of tail in ___type */ \ - ___mlist /* member name of next list member ptr in ___type */ \ - ) { \ - int ___n, ___m; \ - \ - ___n = lws_ring_get_oldest_tail(___ring) == *(___ptail); \ - lws_ring_consume(___ring, ___ptail, NULL, ___count); \ - if (___n) { \ - uint32_t ___oldest; \ - ___n = 0; \ - ___oldest = *(___ptail); \ - lws_start_foreach_llp(___type **, ___ppss, ___list_head) { \ - ___m = (int)lws_ring_get_count_waiting_elements( \ - ___ring, &(*___ppss)->___mtail); \ - if (___m >= ___n) { \ - ___n = ___m; \ - ___oldest = (*___ppss)->___mtail; \ - } \ - } lws_end_foreach_llp(___ppss, ___mlist); \ - \ - lws_ring_update_oldest_tail(___ring, ___oldest); \ - } \ -} - -/* - * This does the same as the lws_ring_consume_and_update_oldest_tail() - * helper, but for the simpler case there is only one consumer, so one - * tail, and that tail is always the oldest tail. - */ - -#define lws_ring_consume_single_tail(\ - ___ring, /* the lws_ring object */ \ - ___ptail, /* ptr to tail of obj with tail doing consuming */ \ - ___count /* count of payload objects being consumed */ \ - ) { \ - lws_ring_consume(___ring, ___ptail, NULL, ___count); \ - lws_ring_update_oldest_tail(___ring, *(___ptail)); \ -} -///@} diff --git a/win64/include/websockets/libwebsockets/lws-secure-streams-client.h b/win64/include/websockets/libwebsockets/lws-secure-streams-client.h deleted file mode 100644 index 98747989..00000000 --- a/win64/include/websockets/libwebsockets/lws-secure-streams-client.h +++ /dev/null @@ -1,218 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2019 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * This is the headers for secure stream api variants that deal with clients in - * different threads or even different processes. - * - * lws_ss_ when client is directly using the event loop - * lws_sstc_ when client is in a different thread to the event loop - * lws_sspc_ when client is in a different process to the event loop - * - * The client api is almost the same except the slightly diffent names. - */ - -/* - * lws_sspc_ apis... different process - */ - -/* - * Helper translation so user code written to lws_ss_ can be built for - * lws_sspc_ in one step by #define LWS_SS_USE_SSPC before including - */ - -#if defined(LWS_SS_USE_SSPC) -#define lws_ss_handle lws_sspc_handle -#define lws_ss_create lws_sspc_create -#define lws_ss_destroy lws_sspc_destroy -#define lws_ss_request_tx lws_sspc_request_tx -#define lws_ss_request_tx_len lws_sspc_request_tx_len -#define lws_ss_client_connect lws_sspc_client_connect -#define lws_ss_get_sequencer lws_sspc_get_sequencer -#define lws_ss_proxy_create lws_sspc_proxy_create -#define lws_ss_get_context lws_sspc_get_context -#define lws_ss_rideshare lws_sspc_rideshare -#define lws_ss_set_metadata lws_sspc_set_metadata -#define lws_ss_add_peer_tx_credit lws_sspc_add_peer_tx_credit -#define lws_ss_get_est_peer_tx_credit lws_sspc_get_est_peer_tx_credit -#define lws_ss_start_timeout lws_sspc_start_timeout -#define lws_ss_cancel_timeout lws_sspc_cancel_timeout -#define lws_ss_to_user_object lws_sspc_to_user_object -#define lws_ss_change_handlers lws_sspc_change_handlers -#endif - - -struct lws_sspc_handle; - -LWS_VISIBLE LWS_EXTERN int -lws_sspc_create(struct lws_context *context, int tsi, const lws_ss_info_t *ssi, - void *opaque_user_data, struct lws_sspc_handle **ppss, - struct lws_sequencer *seq_owner, const char **ppayload_fmt); - -/** - * lws_sspc_destroy() - Destroy secure stream - * - * \param ppss: pointer to lws_ss_t pointer to be destroyed - * - * Destroys the lws_ss_t pointed to by *ppss, and sets *ppss to NULL. - */ -LWS_VISIBLE LWS_EXTERN void -lws_sspc_destroy(struct lws_sspc_handle **ppss); - -/** - * lws_sspc_request_tx() - Schedule stream for tx - * - * \param pss: pointer to lws_ss_t representing stream that wants to transmit - * - * Schedules a write on the stream represented by \p pss. When it's possible to - * write on this stream, the *tx callback will occur with an empty buffer for - * the stream owner to fill in. - */ -LWS_VISIBLE LWS_EXTERN lws_ss_state_return_t -lws_sspc_request_tx(struct lws_sspc_handle *pss); - -/** - * lws_sspc_request_tx_len() - Schedule stream for tx with length hint - * - * \param h: pointer to handle representing stream that wants to transmit - * \param len: the length of the write in bytes - * - * Schedules a write on the stream represented by \p pss. When it's possible to - * write on this stream, the *tx callback will occur with an empty buffer for - * the stream owner to fill in. - * - * This api variant should be used when it's possible the payload will go out - * over h1 with x-web-form-urlencoded or similar Content-Type. - * - * The serialized, sspc type api actually serializes and forwards the length - * hint to its upstream proxy, where it's available for use to produce the - * internet-capable protocol framing. - */ -LWS_VISIBLE LWS_EXTERN lws_ss_state_return_t -lws_sspc_request_tx_len(struct lws_sspc_handle *h, unsigned long len); - -/** - * lws_sspc_client_connect() - Attempt the client connect - * - * \param h: secure streams handle - * - * Starts the connection process for the secure stream. Returns 0 if OK or - * nonzero if we have already failed. - */ -LWS_VISIBLE LWS_EXTERN int -lws_sspc_client_connect(struct lws_sspc_handle *h); - -/** - * lws_sspc_get_sequencer() - Return parent sequencer pointer if any - * - * \param h: secure streams handle - * - * Returns NULL if the secure stream is not associated with a sequencer. - * Otherwise returns a pointer to the owning sequencer. You can use this to - * identify which sequencer to direct messages to, from the secure stream - * callback. - */ -LWS_VISIBLE LWS_EXTERN struct lws_sequencer * -lws_sspc_get_sequencer(struct lws_sspc_handle *h); - -/** - * lws_sspc_proxy_create() - Start a unix domain socket proxy for Secure Streams - * - * \param context: lws_context - * - * Creates a vhost that listens on an abstract namespace unix domain socket at - * address "proxy.ss.lws". Client connections to this proxy to Secure Streams - */ -LWS_VISIBLE LWS_EXTERN int -lws_sspc_proxy_create(struct lws_context *context); - -/** - * lws_ss_get_context() - convenience helper to recover the lws context - * - * \h: secure streams handle - * - * Returns the lws context. Dispenses with the need to pass a copy of it into - * your secure streams handler. - */ - -LWS_VISIBLE LWS_EXTERN struct lws_context * -lws_sspc_get_context(struct lws_sspc_handle *h); - -LWS_VISIBLE LWS_EXTERN const struct lws_protocols lws_sspc_protocols[]; - -LWS_VISIBLE LWS_EXTERN const char * -lws_sspc_rideshare(struct lws_sspc_handle *h); - - -/** - * lws_sspc_set_metadata() - allow user to bind external data to defined ss metadata - * - * \h: secure streams handle - * \name: metadata name from the policy - * \value: pointer to user-managed data to bind to name - * \len: length of the user-managed data in value - * - * Binds user-managed data to the named metadata item from the ss policy. - * If present, the metadata item is handled in a protocol-specific way using - * the associated policy information. For example, in the policy - * - * "\"metadata\":" "[" - * "{\"uptag\":" "\"X-Upload-Tag:\"}," - * "{\"ctype\":" "\"Content-Type:\"}," - * "{\"xctype\":" "\"X-Content-Type:\"}" - * "]," - * - * when the policy is using h1 is interpreted to add h1 headers of the given - * name with the value of the metadata on the left. - * - * Return 0 if OK. - */ -LWS_VISIBLE LWS_EXTERN int -lws_sspc_set_metadata(struct lws_sspc_handle *h, const char *name, - const void *value, size_t len); - -LWS_VISIBLE LWS_EXTERN int -lws_sspc_add_peer_tx_credit(struct lws_sspc_handle *h, int32_t add); - -LWS_VISIBLE LWS_EXTERN int -lws_sspc_get_est_peer_tx_credit(struct lws_sspc_handle *h); - -LWS_VISIBLE LWS_EXTERN void -lws_sspc_start_timeout(struct lws_sspc_handle *h, unsigned int timeout_ms); - -LWS_VISIBLE LWS_EXTERN void -lws_sspc_cancel_timeout(struct lws_sspc_handle *h); - -LWS_VISIBLE LWS_EXTERN void * -lws_sspc_to_user_object(struct lws_sspc_handle *h); - -LWS_VISIBLE LWS_EXTERN void -lws_sspc_change_handlers(struct lws_sspc_handle *h, - lws_ss_state_return_t (*rx)(void *userobj, const uint8_t *buf, - size_t len, int flags), - lws_ss_state_return_t (*tx)(void *userobj, lws_ss_tx_ordinal_t ord, - uint8_t *buf, size_t *len, int *flags), - lws_ss_state_return_t (*state)(void *userobj, void *h_src - /* ss handle type */, - lws_ss_constate_t state, - lws_ss_tx_ordinal_t ack)); - diff --git a/win64/include/websockets/libwebsockets/lws-secure-streams-policy.h b/win64/include/websockets/libwebsockets/lws-secure-streams-policy.h deleted file mode 100644 index 0337d72f..00000000 --- a/win64/include/websockets/libwebsockets/lws-secure-streams-policy.h +++ /dev/null @@ -1,317 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2019 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * included from libwebsockets.h - */ - -typedef int (*plugin_auth_status_cb)(struct lws_ss_handle *ss, int status); - -/** - * lws_ss_plugin_auth_t - api for an auth plugin - * - * Auth plugins create and sequence authenticated connections that can carry one - * or more streams to an endpoint. That may involve other connections to other - * places to eg, gather authenticated tokens and then make the real connection - * using the tokens. - * - * The secure stream object contains members to record which auth plugin the - * stream is bound to and an over-allocation of the secure stream object to - * contain the plugin auth private data. - * - * The auth plugin controls the state of the stream connection via the status - * callback, and handles retries. - * - * Network connections may require one kind of auth sequencing, and streams - * inside those connections another kind of auth sequencing depending on their - * role. So the secure stream object allows defining plugins for both kinds. - * - * Streams may disappear at any time and require reauth to bring a new one up. - * The auth plugin sequencer will connect / reconnect either on demand, or from - * the start and after any connectivity loss if any stream using the connection - * has the LWSSSPOLF_NAILED_UP flag. - */ - -#if defined(LWS_WITH_SSPLUGINS) -typedef struct lws_ss_plugin { - struct lws_ss_plugin *next; - const char *name; /**< auth plugin name */ - size_t alloc; /**< size of private allocation */ - - int (*create)(struct lws_ss_handle *ss, void *info, - plugin_auth_status_cb status); - /**< called when the auth plugin is instantiated - and bound to the secure stream. status is - called back with advisory information about - the authenticated stream state as it - proceeds */ - int (*destroy)(struct lws_ss_handle *ss); - /**< called when the related secure stream is - being destroyed, and anything the auth - plugin is doing should also be destroyed */ - int (*munge)(struct lws_ss_handle *ss, char *path, - size_t path_len); - /**< if the plugin needs to munge transactions - that have metadata outside the payload (eg, - add http headers) this callback will give - it the opportunity to do so */ -} lws_ss_plugin_t; -#endif - -typedef struct lws_ss_x509 { - struct lws_ss_x509 *next; - const char *vhost_name; /**< vhost name using cert ctx */ - const uint8_t *ca_der; /**< DER x.509 cert */ - size_t ca_der_len; /**< length of DER cert */ - uint8_t keep:1; /**< ie, if used in server tls */ -} lws_ss_x509_t; - -enum { - LWSSSPOLF_OPPORTUNISTIC = (1 << 0), - /**< the connection doesn't exist unless client asks to write */ - LWSSSPOLF_NAILED_UP = (1 << 1), - /**< the connection tries to be connected the whole life of the ss */ - LWSSSPOLF_URGENT_TX = (1 << 2), - /**< this connection carries critical tx data */ - LWSSSPOLF_URGENT_RX = (1 << 3), - /**< this connection carries critical rx data */ - LWSSSPOLF_TLS = (1 << 4), - /**< stream must be connected via a tls tunnel */ - LWSSSPOLF_LONG_POLL = (1 << 5), - /**< stream used to receive async rx at arbitrary intervals */ - LWSSSPOLF_AUTH_BEARER = (1 << 6), - /**< for http, use lws_system auth token 0 in authentication: bearer */ - LWSSSPOLF_HTTP_NO_CONTENT_LENGTH = (1 << 7), - /**< don't add any content length even if we have it */ - LWSSSPOLF_QUIRK_NGHTTP2_END_STREAM = (1 << 8), - /**< set the client flag LCCSCF_H2_QUIRK_NGHTTP2_END_STREAM */ - LWSSSPOLF_H2_QUIRK_OVERFLOWS_TXCR = (1 << 9), - /**< set the client flag LCCSCF_H2_QUIRK_OVERFLOWS_TXCR */ - LWSSSPOLF_H2_QUIRK_UNCLEAN_HPACK_STATE = (1 << 10), - /**< HPACK decoder state does not end cleanly */ - LWSSSPOLF_HTTP_MULTIPART = (1 << 11), - /**< indicates stream goes out as specifically a multipart mime POST - * section... if the tx has LWSSS_FLAG_COALESCE_CONTINUES flag then more - * multipart sections are expected. Without it, the multipart wrapper - * is closed and the http transaction issue completed when this message - * finishes. */ - LWSSSPOLF_HTTP_X_WWW_FORM_URLENCODED = (1 << 12), - /**< set up lws_system client cert */ - LWSSSPOLF_LOCAL_SINK = (1 << 13), - /**< expected to bind to a local sink only */ - LWSSSPOLF_WAKE_SUSPEND__VALIDITY = (1 << 14), - /**< this stream's idle validity checks are critical enough we - * should arrange to wake from suspend to perform them - */ - LWSSSPOLF_SERVER = (1 << 15), - /**< we listen on a socket as a server */ - LWSSSPOLF_ALLOW_REDIRECTS = (1 << 16), - /**< follow redirects */ - LWSSSPOLF_HTTP_MULTIPART_IN = (1 << 17), - /**< handle inbound multipart mime at SS level */ -}; - -typedef struct lws_ss_trust_store { - struct lws_ss_trust_store *next; - const char *name; - - const lws_ss_x509_t *ssx509[6]; - int count; -} lws_ss_trust_store_t; - -enum { - LWSSSP_H1, - LWSSSP_H2, - LWSSSP_WS, - LWSSSP_MQTT, - LWSSSP_RAW, - - - LWSSS_HBI_AUTH = 0, - LWSSS_HBI_DSN, - LWSSS_HBI_FWV, - LWSSS_HBI_TYPE, - - _LWSSS_HBI_COUNT /* always last */ -}; - -typedef struct lws_ss_metadata { - struct lws_ss_metadata *next; - const char *name; - void *value; - size_t length; - - uint8_t value_on_lws_heap; /* proxy does this */ -} lws_ss_metadata_t; - - -/** - * lws_ss_policy_t: policy database entry for a stream type - * - * Decides the system policy for how to implement connections of name - * .streamtype. - * - * Streams may need one kind of auth sequencing for the network connection and - * another kind of auth sequencing for the streams that are carried inside it, - * this is the purpose of .nauth and .sauth. Both are optional and may be NULL. - * - * An array of these is set at context creation time, ending with one with a - * NULL streamtype. - */ -typedef struct lws_ss_policy { - struct lws_ss_policy *next; - const char *streamtype; /**< stream type lhs to match on */ - - const char *endpoint; /**< DNS address to connect to */ - const char *rideshare_streamtype; /**< optional transport - * on another, preexisting stream of this - * streamtype name */ - const char *payload_fmt; - const char *socks5_proxy; - lws_ss_metadata_t *metadata; /* linked-list of metadata */ - - /* protocol-specific connection policy details */ - - union { - -#if defined(LWS_ROLE_H1) || defined(LWS_ROLE_H2) || defined(LWS_ROLE_WS) - - /* details for http-related protocols... */ - - struct { - - /* common to all http-related protocols */ - - const char *method; - const char *url; - - const char *multipart_name; - const char *multipart_filename; - const char *multipart_content_type; - - const char *blob_header[_LWSSS_HBI_COUNT]; - const char *auth_preamble; - - union { -// struct { /* LWSSSP_H1 */ -// } h1; -// struct { /* LWSSSP_H2 */ -// } h2; - struct { /* LWSSSP_WS */ - const char *subprotocol; - uint8_t binary; - /* false = TEXT, true = BINARY */ - } ws; - } u; - - uint16_t resp_expect; - uint8_t fail_redirect:1; - } http; - -#endif - -#if defined(LWS_ROLE_MQTT) - - struct { - const char *topic; /* stream sends on this topic */ - const char *subscribe; /* stream subscribes to this topic */ - - const char *will_topic; - const char *will_message; - - uint16_t keep_alive; - uint8_t qos; - uint8_t clean_start; - uint8_t will_qos; - uint8_t will_retain; - - } mqtt; - -#endif - - /* details for non-http related protocols... */ - } u; - -#if defined(LWS_WITH_SSPLUGINS) - const - struct lws_ss_plugin *plugins[2]; /**< NULL or auth plugin */ - const void *plugins_info[2]; /**< plugin-specific data */ -#endif - - /* - * We're either a client connection policy that wants a trust store, - * or we're a server policy that wants a mem cert and key... Hold - * these mutually-exclusive things in a union. - */ - - union { - const lws_ss_trust_store_t *store; - /**< CA certs needed for conn validation, only set between - * policy parsing and vhost creation */ - struct { - const lws_ss_x509_t *cert; - /**< the server's signed cert with the pubkey */ - const lws_ss_x509_t *key; - /**< the server's matching private key */ - } server; - } trust; - - const lws_retry_bo_t *retry_bo; /**< retry policy to use */ - - uint32_t timeout_ms; /**< default message response - * timeout in ms */ - uint32_t flags; /**< stream attribute flags */ - - uint16_t port; /**< endpoint port */ - - uint8_t metadata_count; /**< metadata count */ - uint8_t protocol; /**< protocol index */ - uint8_t client_cert; /**< which client cert to apply - 0 = none, 1+ = cc 0+ */ -} lws_ss_policy_t; - -#if !defined(LWS_WITH_SECURE_STREAMS_STATIC_POLICY_ONLY) - -/* - * These only exist / have meaning if there's a dynamic JSON policy enabled - */ - -LWS_VISIBLE LWS_EXTERN int -lws_ss_policy_parse_begin(struct lws_context *context, int overlay); - -LWS_VISIBLE LWS_EXTERN int -lws_ss_policy_parse_abandon(struct lws_context *context); - -LWS_VISIBLE LWS_EXTERN int -lws_ss_policy_parse(struct lws_context *context, const uint8_t *buf, size_t len); - -LWS_VISIBLE LWS_EXTERN int -lws_ss_policy_overlay(struct lws_context *context, const char *overlay); - -/* - * You almost certainly don't want this, it returns the first policy object - * in a linked-list of objects created by lws_ss_policy_parse above - */ -LWS_VISIBLE LWS_EXTERN const lws_ss_policy_t * -lws_ss_policy_get(struct lws_context *context); - -#endif diff --git a/win64/include/websockets/libwebsockets/lws-secure-streams.h b/win64/include/websockets/libwebsockets/lws-secure-streams.h deleted file mode 100644 index f726bfaf..00000000 --- a/win64/include/websockets/libwebsockets/lws-secure-streams.h +++ /dev/null @@ -1,645 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2019 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * included from libwebsockets.h - * - * - * Secure Streams is a *payload-only* client communication channel where all the - * details about the connection are held in a systemwide policy database and - * are keyed by the streamtype field... the user of the communication channel - * does not know or manage the choice of endpoint, tls CA, or even wire - * protocol. The advantage is he then does not have any dependency on any of - * those and they can be changed just by changing the policy database without - * touching the code using the stream. - * - * There are two ways secure streams interfaces to user code: - * - * 1) [Linux / RTOS] the natural, smallest interface is to call back to user - * code that only operates directly from the lws event loop thread context - * (direct callbacks from lws_ss_t) - * - * lws_thread( [user code] ---- lws ) - * - * 2) [Linux] where the user code is in a different process and communicates - * asynchronously via a proxy socket - * - * user_process{ [user code] | shim | socket-}------ lws_process{ lws } - * - * In the second, IPC, case, all packets are prepended by one or more bytes - * indicating the packet type and serializing any associated data, known as - * Serialized Secure Streams or SSS. - * - * Serialized Secure Streams - * ------------------------- - * - * On the transport, adjacent packets may be coalesced, that is, the original - * packet sizes are lost and two or more packets are combined. For that reason - * the serialization format always contains a 1-byte type and then a 2-byte - * frame length. - * - * Client to proxy - * - * - Proxied connection setup - * - * - 0: LWSSS_SER_TXPRE_STREAMTYPE - * - 1: 2-byte MSB-first rest-of-frame length - * - 3: 4 byte MSB-first initial tx credit - * - 7: the streamtype name with no NUL - * - * - Proxied tx - * - * - 0: LWSSS_SER_TXPRE_TX_PAYLOAD - * - 1: 2 byte MSB-first rest-of-frame length - * - 3: 4-byte MSB-first flags - * - 7: 4-byte MSB-first us between client requested write and wrote to proxy - * - 11: 8-byte MSB-first us resolution unix time client wrote to proxy - * - 19: payload - * - * - Proxied secure stream destroy - * - * - 0: LWSSS_SER_TXPRE_DESTROYING - * - 1: 00, 00 - * - * - Proxied metadata - sent when one metadata item set clientside - * - * - 0: LWSSS_SER_TXPRE_METADATA - * - 1: 2-byte MSB-first rest-of-frame length - * - 3: 1-byte metadata name length - * - 4: metadata name - * - ...: metadata value (for rest of packet) - * - * - TX credit management - sent when using tx credit apis, cf METADATA - * - * - 0: LWSSS_SER_TXPRE_TXCR_UPDATE - * - 1: 2-byte MSB-first rest-of-frame length 00, 04 - * - 3: 4-byte additional tx credit adjust value - * - * - Stream timeout management - forwarded when user applying or cancelling t.o. - * - * - 0: LWSSS_SER_TXPRE_TIMEOUT_UPDATE - * - 1: 2-byte MSB-first rest-of-frame length 00, 04 - * - 3: 4-byte MSB-first unsigned 32-bit timeout, 0 = use policy, -1 = cancel - * - * - Passing up payload length hint - * - * - 0: LWSSS_SER_TXPRE_PAYLOAD_LENGTH_HINT - * - 1: 2-byte MSB-first rest-of-frame length 00, 04 - * - 3: 4-byte MSB-first unsigned 32-bit payload length hint - * - * Proxy to client - * - * - Proxied connection setup result - * - * - 0: LWSSS_SER_RXPRE_CREATE_RESULT - * - 1: 2 byte MSB-first rest-of-frame length (usually 00, 03) - * - 3: 1 byte result, 0 = success. On failure, proxy will close connection. - * - 4: 2 byte MSB-first initial tx credit - * - 6: if present, comma-sep list of rideshare types from policy - * - * - Proxied rx - * - * - 0: LWSSS_SER_RXPRE_RX_PAYLOAD - * - 1: 2 byte MSB-first rest-of-frame length - * - 3: 4-byte MSB-first flags - * - 7: 4-byte MSB-first us between inbound read and wrote to client - * - 11: 8-byte MSB-first us resolution unix time proxy wrote to client - * - 17: (rideshare name len + rideshare name if flags & LWSSS_FLAG_RIDESHARE) - * payload - * - * - Proxied tx credit - * - * - 0: LWSSS_SER_RXPRE_TXCR_UPDATE - * - 1: 00, 04 - * - 3: 4-byte MSB-first addition tx credit bytes - * - * - Proxied state - * - * - 0: LWSSS_SER_RXPRE_CONNSTATE - * - 1: 00, 05 if state < 256, else 00, 08 - * - 3: 1 byte state index if state < 256, else 4-byte MSB-first state index - * - 4 or 7: 4-byte MSB-first ordinal - * - * - * Proxied tx may be read by the proxy but rejected due to lack of buffer space - * at the proxy. For that reason, tx must be held at the sender until it has - * been acknowledged or denied. - * - * Sinks - * ----- - * - * Sinks are logical "servers", you can register as a sink for a particular - * streamtype by using the lws_ss_create() api with ssi->register_sink set to 1. - * - * For directly fulfilled Secure Streams, new streams of that streamtype bind - * to the rx, tx and state handlers given when it was registered. - * - * - When new streams are created the registered sink handler for (*state) is - * called with event LWSSSCS_SINK_JOIN and the new client stream handle in - * the h_src parameter. - * - * - When the client stream sends something to the sink, it calls the sink's - * (*rx) with the client stream's - */ - -#define LWS_SS_MTU 1540 - -struct lws_ss_handle; -typedef uint32_t lws_ss_tx_ordinal_t; - -/* - * connection state events - */ -typedef enum { - LWSSSCS_CREATING, - LWSSSCS_DISCONNECTED, - LWSSSCS_UNREACHABLE, - LWSSSCS_AUTH_FAILED, - LWSSSCS_CONNECTED, - LWSSSCS_CONNECTING, - LWSSSCS_DESTROYING, - LWSSSCS_POLL, - LWSSSCS_ALL_RETRIES_FAILED, /* all retries in bo policy failed */ - LWSSSCS_QOS_ACK_REMOTE, /* remote peer received and acked tx */ - LWSSSCS_QOS_NACK_REMOTE, - LWSSSCS_QOS_ACK_LOCAL, /* local proxy accepted our tx */ - LWSSSCS_QOS_NACK_LOCAL, /* local proxy refused our tx */ - LWSSSCS_TIMEOUT, /* optional timeout timer fired */ - - LWSSSCS_SERVER_TXN, - LWSSSCS_SERVER_UPGRADE, /* the server protocol upgraded */ - - LWSSSCS_SINK_JOIN, /* sinks get this when a new source - * stream joins the sink */ - LWSSSCS_SINK_PART, /* sinks get this when a new source - * stream leaves the sink */ -} lws_ss_constate_t; - -enum { - LWSSS_FLAG_SOM = (1 << 0), - /* payload contains the start of new message */ - LWSSS_FLAG_EOM = (1 << 1), - /* payload contains the end of message */ - LWSSS_FLAG_POLL = (1 << 2), - /* Not a real transmit... poll for rx if protocol needs it */ - LWSSS_FLAG_RELATED_START = (1 << 3), - /* Appears in a zero-length message indicating a message group of zero - * or more messages is now starting. */ - LWSSS_FLAG_RELATED_END = (1 << 4), - /* Appears in a zero-length message indicating a message group of zero - * or more messages has now finished. */ - LWSSS_FLAG_RIDESHARE = (1 << 5), - /* Serialized payload starts with non-default rideshare name length and - * name string without NUL, then payload */ - - /* - * In the case the secure stream is proxied across a process or thread - * boundary, eg by proxying through a socket for IPC, metadata must be - * carried in-band. A byte is prepended to each rx payload to - * differentiate what it is. - * - * Secure streams where the user is called back directly does not need - * any of this and only pure payloads are passed. - * - * rx (received by client) prepends for proxied connections - */ - - LWSSS_SER_RXPRE_RX_PAYLOAD = 0x55, - LWSSS_SER_RXPRE_CREATE_RESULT, - LWSSS_SER_RXPRE_CONNSTATE, - LWSSS_SER_RXPRE_TXCR_UPDATE, - LWSSS_SER_RXPRE_TLSNEG_ENCLAVE_SIGN, - - /* tx (send by client) prepends for proxied connections */ - - LWSSS_SER_TXPRE_STREAMTYPE = 0xaa, - LWSSS_SER_TXPRE_ONWARD_CONNECT, - LWSSS_SER_TXPRE_DESTROYING, - LWSSS_SER_TXPRE_TX_PAYLOAD, - LWSSS_SER_TXPRE_METADATA, - LWSSS_SER_TXPRE_TXCR_UPDATE, - LWSSS_SER_TXPRE_TIMEOUT_UPDATE, - LWSSS_SER_TXPRE_PAYLOAD_LENGTH_HINT, - LWSSS_SER_TXPRE_TLSNEG_ENCLAVE_SIGNED, -}; - -typedef enum { - LPCSPROX_WAIT_INITIAL_TX = 1, /* after connect, must send streamtype */ - LPCSPROX_REPORTING_FAIL, /* stream creation failed, wait to to tell */ - LPCSPROX_REPORTING_OK, /* stream creation succeeded, wait to to tell */ - LPCSPROX_OPERATIONAL, /* ready for payloads */ - LPCSPROX_DESTROYED, - - LPCSCLI_SENDING_INITIAL_TX, /* after connect, must send streamtype */ - LPCSCLI_WAITING_CREATE_RESULT, /* wait to hear if proxy ss create OK */ - LPCSCLI_LOCAL_CONNECTED, /* we are in touch with the proxy */ - LPCSCLI_ONWARD_CONNECT, /* request onward ss connection */ - LPCSCLI_OPERATIONAL, /* ready for payloads */ - -} lws_ss_conn_states_t; - -/* - * Returns from state() callback can tell the caller what the user code - * wants to do - */ - -typedef enum lws_ss_state_return { - LWSSSSRET_TX_DONT_SEND = 1, /* (*tx) only */ - - LWSSSSRET_OK = 0, /* no error */ - LWSSSSRET_DISCONNECT_ME = -1, /* caller should disconnect us */ - LWSSSSRET_DESTROY_ME = -2, /* caller should destroy us */ -} lws_ss_state_return_t; - -/** - * lws_ss_info_t: information about stream to be created - * - * Prepare this struct with information about what the stream type is and how - * the stream should interface with your code, and pass it to lws_ss_create() - * to create the requested stream. - */ - -enum { - LWSSSINFLAGS_REGISTER_SINK = (1 << 0), - /**< If set, we're not creating a specific stream, but registering - * ourselves as the "sink" for .streamtype. It's analogous to saying - * we want to be the many-to-one "server" for .streamtype; when other - * streams are created with that streamtype, they should be forwarded - * to this stream owner, where they join and part from the sink via - * (*state) LWSSSCS_SINK_JOIN / _PART events, the new client handle - * being provided in the h_src parameter. - */ - LWSSSINFLAGS_PROXIED = (1 << 1), - /**< Set if the stream is being created as a stand-in at the proxy */ - LWSSSINFLAGS_SERVER = (1 << 2), - /**< Set on the server object copy of the ssi / info to indicate that - * stream creation using this ssi is for Accepted connections belonging - * to a server */ - LWSSSINFLAGS_ACCEPTED = (1 << 3), - /**< Set on the accepted object copy of the ssi / info to indicate that - * we are an accepted connection from a server's listening socket */ -}; - -typedef struct lws_ss_info { - const char *streamtype; /**< type of stream we want to create */ - size_t user_alloc; /**< size of user allocation */ - size_t handle_offset; /**< offset of handle stg in user_alloc type, - set to offsetof(mytype, my_handle_member) */ - size_t opaque_user_data_offset; - /**< offset of opaque user data ptr in user_alloc type, set to - offsetof(mytype, opaque_ud_member) */ - - lws_ss_state_return_t (*rx)(void *userobj, const uint8_t *buf, - size_t len, int flags); - /**< callback with rx payload for this stream */ - lws_ss_state_return_t (*tx)(void *userobj, lws_ss_tx_ordinal_t ord, - uint8_t *buf, size_t *len, int *flags); - /**< callback to send payload on this stream... 0 = send as set in - * len and flags, 1 = do not send anything (ie, not even 0 len frame) */ - lws_ss_state_return_t (*state)(void *userobj, void *h_src /* ss handle type */, - lws_ss_constate_t state, lws_ss_tx_ordinal_t ack); - /**< advisory cb about state of stream and QoS status if applicable... - * h_src is only used with sinks and LWSSSCS_SINK_JOIN/_PART events. - * Return nonzero to indicate you want to destroy the stream. */ - int manual_initial_tx_credit; - /**< 0 = manage any tx credit automatically, nonzero explicitly sets the - * peer stream to have the given amount of tx credit, if the protocol - * can support it. - * - * In the special case of _lws_smd streamtype, this is used to indicate - * the connection's rx class mask. - * */ - uint8_t flags; - -} lws_ss_info_t; - -/** - * lws_ss_create() - Create secure stream - * - * \param context: the lws context to create this inside - * \param tsi: service thread index to create on (normally 0) - * \param ssi: pointer to lws_ss_info_t filled in with info about desired stream - * \param opaque_user_data: opaque data to set in the stream's user object - * \param ppss: pointer to secure stream handle pointer set on exit - * \param ppayload_fmt: NULL or pointer to a string ptr to take payload format - * name from the policy - * - * Requests a new secure stream described by \p ssi be created. If successful, - * the stream is created, its state callback called with LWSSSCS_CREATING, *ppss - * is set to point to the handle, and it returns 0. If it failed, it returns - * nonzero. - * - * Along with the opaque stream object, streams overallocate - * - * 1) a user data struct whose size is set in ssi - * 2) nauth plugin instantiation data (size set in the plugin struct) - * 3) sauth plugin instantiation data (size set in the plugin struct) - * 4) space for a copy of the stream type name - * - * The user data struct is initialized to all zeros, then the .handle_offset and - * .opaque_user_data_offset fields of the ssi are used to prepare the user data - * struct with the ss handle that was created, and a copy of the - * opaque_user_data pointer given as an argument. - * - * If you want to set up the stream with specific information, point to it in - * opaque_user_data and use the copy of that pointer in your user data member - * for it starting from the LWSSSCS_CREATING state call. - * - * Since different endpoints chosen by the policy may require different payload - * formats, \p ppayload_fmt is set to point to the name of the needed payload - * format from the policy database if non-NULL. - */ -LWS_VISIBLE LWS_EXTERN int -lws_ss_create(struct lws_context *context, int tsi, const lws_ss_info_t *ssi, - void *opaque_user_data, struct lws_ss_handle **ppss, - struct lws_sequencer *seq_owner, const char **ppayload_fmt); - -/** - * lws_ss_destroy() - Destroy secure stream - * - * \param ppss: pointer to lws_ss_t pointer to be destroyed - * - * Destroys the lws_ss_t pointed to by *ppss, and sets *ppss to NULL. - */ -LWS_VISIBLE LWS_EXTERN void -lws_ss_destroy(struct lws_ss_handle **ppss); - -/** - * lws_ss_request_tx() - Schedule stream for tx - * - * \param pss: pointer to lws_ss_t representing stream that wants to transmit - * - * Schedules a write on the stream represented by \p pss. When it's possible to - * write on this stream, the *tx callback will occur with an empty buffer for - * the stream owner to fill in. - * - * Returns 0 or LWSSSSRET_SS_HANDLE_DESTROYED - */ -LWS_VISIBLE LWS_EXTERN lws_ss_state_return_t -lws_ss_request_tx(struct lws_ss_handle *pss); - -/** - * lws_ss_request_tx() - Schedule stream for tx - * - * \param pss: pointer to lws_ss_t representing stream that wants to transmit - * \param len: the length of the write in bytes - * - * Schedules a write on the stream represented by \p pss. When it's possible to - * write on this stream, the *tx callback will occur with an empty buffer for - * the stream owner to fill in. - * - * This api variant should be used when it's possible the payload will go out - * over h1 with x-web-form-urlencoded or similar Content-Type. - */ -LWS_VISIBLE LWS_EXTERN lws_ss_state_return_t -lws_ss_request_tx_len(struct lws_ss_handle *pss, unsigned long len); - -/** - * lws_ss_client_connect() - Attempt the client connect - * - * \param h: secure streams handle - * - * Starts the connection process for the secure stream. Returns 0 if OK or - * nonzero if we have already failed. - */ -LWS_VISIBLE LWS_EXTERN int -lws_ss_client_connect(struct lws_ss_handle *h); - -/** - * lws_ss_get_sequencer() - Return parent sequencer pointer if any - * - * \param h: secure streams handle - * - * Returns NULL if the secure stream is not associated with a sequencer. - * Otherwise returns a pointer to the owning sequencer. You can use this to - * identify which sequencer to direct messages to, from the secure stream - * callback. - */ -LWS_VISIBLE LWS_EXTERN struct lws_sequencer * -lws_ss_get_sequencer(struct lws_ss_handle *h); - -/** - * lws_ss_proxy_create() - Start a unix domain socket proxy for Secure Streams - * - * \param context: lws_context - * \param bind: if port is 0, unix domain path with leading @ for abstract. - * if port nonzero, NULL, or network interface to bind listen to - * \param port: tcp port to listen on - * - * Creates a vhost that listens either on an abstract namespace unix domain - * socket (port = 0) or a tcp listen socket (port nonzero). If bind is NULL - * and port is 0, the abstract unix domain socket defaults to "proxy.ss.lws". - * - * Client connections to this proxy to Secure Streams are fulfilled using the - * policy local to the proxy and the data passed between the client and the - * proxy using serialized Secure Streams protocol. - */ -LWS_VISIBLE LWS_EXTERN int -lws_ss_proxy_create(struct lws_context *context, const char *bind, int port); - -/** - * lws_ss_state_name() - convenience helper to get a printable conn state name - * - * \param state: the connection state index - * - * Returns a printable name for the connection state index passed in. - */ -LWS_VISIBLE LWS_EXTERN const char * -lws_ss_state_name(int state); - -/** - * lws_ss_get_context() - convenience helper to recover the lws context - * - * \param h: secure streams handle - * - * Returns the lws context. Dispenses with the need to pass a copy of it into - * your secure streams handler. - */ -LWS_VISIBLE LWS_EXTERN struct lws_context * -lws_ss_get_context(struct lws_ss_handle *h); - -#define LWSSS_TIMEOUT_FROM_POLICY 0 - -/** - * lws_ss_start_timeout() - start or restart the timeout on the stream - * - * \param h: secure streams handle - * \param timeout_ms: LWSSS_TIMEOUT_FROM_POLICY for policy value, else use timeout_ms - * - * Starts or restarts the stream's own timeout timer. If the specified time - * passes without lws_ss_cancel_timeout() being called on the stream, then the - * stream state callback receives LWSSSCS_TIMEOUT - * - * The process being protected by the timeout is up to the user code, it may be - * arbitrarily long and cross multiple protocol transactions or involve other - * streams. It's up to the user to decide when to start and when / if to cancel - * the stream timeout. - */ -LWS_VISIBLE LWS_EXTERN void -lws_ss_start_timeout(struct lws_ss_handle *h, unsigned int timeout_ms); - -/** - * lws_ss_cancel_timeout() - remove any timeout on the stream - * - * \param h: secure streams handle - * - * Disable any timeout that was applied to the stream by lws_ss_start_timeout(). - */ -LWS_VISIBLE LWS_EXTERN void -lws_ss_cancel_timeout(struct lws_ss_handle *h); - -/** - * lws_ss_to_user_object() - convenience helper to get user object from handle - * - * \param h: secure streams handle - * - * Returns the user allocation related to the handle. Normally you won't need - * this since it's available in the rx, tx and state callbacks as "userdata" - * already. - */ -LWS_VISIBLE LWS_EXTERN void * -lws_ss_to_user_object(struct lws_ss_handle *h); - -/** - * lws_ss_rideshare() - find the current streamtype when types rideshare - * - * \param h: the stream handle - * - * Under some conditions, the payloads may be structured using protocol- - * specific formatting, eg, http multipart mime. It's possible to map the - * logical partitions in the payload to different stream types using - * the policy "rideshare" feature. - * - * This api lets the callback code find out which rideshare stream type the - * current payload chunk belongs to. - */ -LWS_VISIBLE LWS_EXTERN const char * -lws_ss_rideshare(struct lws_ss_handle *h); - - -/** - * lws_ss_set_metadata() - allow user to bind external data to defined ss metadata - * - * \param h: secure streams handle - * \param name: metadata name from the policy - * \param value: pointer to user-managed data to bind to name - * \param len: length of the user-managed data in value - * - * Binds user-managed data to the named metadata item from the ss policy. - * If present, the metadata item is handled in a protocol-specific way using - * the associated policy information. For example, in the policy - * - * "\"metadata\":" "[" - * "{\"uptag\":" "\"X-Upload-Tag:\"}," - * "{\"ctype\":" "\"Content-Type:\"}," - * "{\"xctype\":" "\"\"}" - * "]," - * - * when the policy is using h1 is interpreted to add h1 headers of the given - * name with the value of the metadata on the left. - * - * Return 0 if OK or nonzero if, eg, metadata name does not exist on the - * streamtype. - */ -LWS_VISIBLE LWS_EXTERN int -lws_ss_set_metadata(struct lws_ss_handle *h, const char *name, - const void *value, size_t len); - -/* - * lws_ss_server_ack() - indicate how we feel about what the server has sent - * - * \param h: ss handle of accepted connection - * \param nack: 0 means we are OK with it, else some problem - * - * For SERVER secure streams - * - * Depending on the protocol, the server sending us something may be - * transactional, ie, built into it sending something is the idea we will - * respond somehow out-of-band; HTTP is like this with, eg, 200 response code. - * - * Calling this with nack=0 indicates that when we later respond, we want to - * acknowledge the transaction (eg, it means a 200 if http underneath), if - * nonzero that the transaction should act like it failed. - * - * If the underlying protocol doesn't understand transactions (eg, ws) then this - * has no effect either way. - */ -LWS_VISIBLE LWS_EXTERN void -lws_ss_server_ack(struct lws_ss_handle *h, int nack); - -/** - * lws_ss_change_handlers() - helper for dynamically changing stream handlers - * - * \param h: ss handle - * \param rx: the new RX handler - * \param tx: the new TX handler - * \param state: the new state handler - * - * Handlers set to NULL are left unchanged. - * - * This works on any handle, client or server and takes effect immediately. - * - * Depending on circumstances this may be helpful when - * - * a) a server stream undergoes an LWSSSCS_SERVER_UPGRADE (as in http -> ws) and - * the payloads in the new protocol have a different purpose that is best - * handled in their own rx and tx callbacks, and - * - * b) you may want to serve several different, possibly large things based on - * what was requested. Setting a customized handler allows clean encapsulation - * of the different serving strategies. - * - * If the stream is long-lived, like ws, you should set the changed handler back - * to the default when the transaction wanting it is completed. - */ -LWS_VISIBLE LWS_EXTERN void -lws_ss_change_handlers(struct lws_ss_handle *h, - int (*rx)(void *userobj, const uint8_t *buf, size_t len, int flags), - int (*tx)(void *userobj, lws_ss_tx_ordinal_t ord, uint8_t *buf, - size_t *len, int *flags), - int (*state)(void *userobj, void *h_src /* ss handle type */, - lws_ss_constate_t state, lws_ss_tx_ordinal_t ack)); - -/** - * lws_ss_add_peer_tx_credit() - allow peer to transmit more to us - * - * \param h: secure streams handle - * \param add: additional tx credit (signed) - * - * Indicate to remote peer that we can accept \p add bytes more payload being - * sent to us. - */ -LWS_VISIBLE LWS_EXTERN int -lws_ss_add_peer_tx_credit(struct lws_ss_handle *h, int32_t add); - -/** - * lws_ss_get_est_peer_tx_credit() - get our current estimate of peer's tx credit - * - * \param h: secure streams handle - * - * Based on what credit we gave it, and what we have received, report our - * estimate of peer's tx credit usable to transmit to us. This may be outdated - * in that some or all of its credit may already have been expended by sending - * stuff to us that is in flight already. - */ -LWS_VISIBLE LWS_EXTERN int -lws_ss_get_est_peer_tx_credit(struct lws_ss_handle *h); diff --git a/win64/include/websockets/libwebsockets/lws-sequencer.h b/win64/include/websockets/libwebsockets/lws-sequencer.h deleted file mode 100644 index 7189788b..00000000 --- a/win64/include/websockets/libwebsockets/lws-sequencer.h +++ /dev/null @@ -1,243 +0,0 @@ - /* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * lws_sequencer is intended to help implement sequences that: - * - * - outlive a single connection lifetime, - * - are not associated with a particular protocol, - * - are not associated with a particular vhost, - * - must receive and issue events inside the event loop - * - * lws_sequencer-s are bound to a pt (per-thread) which for the default case of - * one service thread is the same as binding to an lws_context. - */ -/* - * retry backoff table... retry n happens after .retry_ms_table[n] ms, with - * the last entry used if n is greater than the number of entries. - * - * The first .conceal_count retries are concealed, but after that the failures - * are reported. - */ - -typedef enum { - LWSSEQ_CREATED, /* sequencer created */ - LWSSEQ_DESTROYED, /* sequencer destroyed */ - LWSSEQ_TIMED_OUT, /* sequencer timeout */ - LWSSEQ_HEARTBEAT, /* 1Hz callback */ - - LWSSEQ_WSI_CONNECTED, /* wsi we bound to us has connected */ - LWSSEQ_WSI_CONN_FAIL, /* wsi we bound to us has failed to connect */ - LWSSEQ_WSI_CONN_CLOSE, /* wsi we bound to us has closed */ - - - LWSSEQ_SS_STATE_BASE, /* secure streams owned by a sequencer provide - * automatic messages about state changes on - * the sequencer, passing the oridinal in the - * event argument field. The message index is - * LWSSEQ_SS_STATE_BASE + the enum from - * lws_ss_constate_t */ - - LWSSEQ_USER_BASE = 100 /* define your events from here */ -} lws_seq_events_t; - -typedef enum lws_seq_cb_return { - LWSSEQ_RET_CONTINUE, - LWSSEQ_RET_DESTROY -} lws_seq_cb_return_t; - -/* - * handler for this sequencer. Return 0 if OK else nonzero to destroy the - * sequencer. LWSSEQ_DESTROYED will be called back to the handler so it can - * close / destroy any private assets associated with the sequence. - * - * The callback may return either LWSSEQ_RET_CONTINUE for the sequencer to - * resume or LWSSEQ_RET_DESTROY to indicate the sequence is finished. - * - * Event indexes consist of some generic ones but mainly user-defined ones - * starting from LWSSEQ_USER_BASE. - */ -typedef lws_seq_cb_return_t (*lws_seq_event_cb)(struct lws_sequencer *seq, - void *user, int event, void *data, void *aux); - -typedef struct lws_seq_info { - struct lws_context *context; /* lws_context for seq */ - int tsi; /* thread service idx */ - size_t user_size; /* size of user alloc */ - void **puser; /* place ptr to user */ - lws_seq_event_cb cb; /* seq callback */ - const char *name; /* seq name */ - const lws_retry_bo_t *retry; /* retry policy */ - uint8_t wakesuspend:1; /* important enough to - * wake system */ -} lws_seq_info_t; - -/** - * lws_seq_create() - create and bind sequencer to a pt - * - * \param info: information about sequencer to create - * - * This binds an abstract sequencer to a per-thread (by default, the single - * event loop of an lws_context). After the event loop starts, the sequencer - * will receive an LWSSEQ_CREATED event on its callback from the event loop - * context, where it can begin its sequence flow. - * - * Lws itself will only call the callback subsequently with LWSSEQ_DESTROYED - * when the sequencer is being destroyed. - * - * pt locking is used to protect the related data structures. - */ -LWS_VISIBLE LWS_EXTERN struct lws_sequencer * -lws_seq_create(lws_seq_info_t *info); - -/** - * lws_seq_destroy() - destroy the sequencer - * - * \param seq: pointer to the the opaque sequencer pointer returned by - * lws_seq_create() - * - * This proceeds to destroy the sequencer, calling LWSSEQ_DESTROYED and then - * freeing the sequencer object itself. The pointed-to seq pointer will be - * set to NULL. - */ -LWS_VISIBLE LWS_EXTERN void -lws_seq_destroy(struct lws_sequencer **seq); - -/** - * lws_seq_queue_event() - queue an event on the given sequencer - * - * \param seq: the opaque sequencer pointer returned by lws_seq_create() - * \param e: the event index to queue - * \param data: associated opaque (to lws) data to provide the callback - * \param aux: second opaque data to provide the callback - * - * This queues the event on a given sequencer. Queued events are delivered one - * per sequencer each subsequent time around the event loop, so the cb is called - * from the event loop thread context. - * - * Notice that because the events are delivered in order from the event loop, - * the scope of objects pointed to by \p data or \p aux may exceed the lifetime - * of the thing containing the pointed-to data. So it's usually better to pass - * values here. - */ -LWS_VISIBLE LWS_EXTERN int -lws_seq_queue_event(struct lws_sequencer *seq, lws_seq_events_t e, void *data, - void *aux); - -/** - * lws_seq_check_wsi() - check if wsi still extant - * - * \param seq: the sequencer interested in the wsi - * \param wsi: the wsi we want to confirm hasn't closed yet - * - * Check if wsi still extant, by peeking in the message queue for a - * LWSSEQ_WSI_CONN_CLOSE message about wsi. (Doesn't need to do the same for - * CONN_FAIL since that will never have produced any messages prior to that). - * - * Use this to avoid trying to perform operations on wsi that have already - * closed but we didn't get to that message yet. - * - * Returns 0 if not closed yet or 1 if it has closed but we didn't process the - * close message yet. - */ -LWS_VISIBLE LWS_EXTERN int -lws_seq_check_wsi(struct lws_sequencer *seq, struct lws *wsi); - -#define LWSSEQTO_NONE 0 - -/** - * lws_seq_timeout_us() - set a timeout by which the sequence must have - * completed by a different event or inform the - * sequencer - * - * \param seq: The sequencer to set the timeout on - * \param us: How many us in the future to fire the timeout - * LWS_SET_TIMER_USEC_CANCEL = cancel any existing timeout - * - * This api allows the sequencer to ask to be informed if it has not completed - * or disabled its timeout after secs seconds. Lws will send a LWSSEQ_TIMED_OUT - * event to the sequencer if the timeout expires. - * - * Typically the sequencer sets the timeout when starting a step, then waits to - * hear a queued event informing it the step completed or failed. The timeout - * provides a way to deal with the case the step neither completed nor failed - * within the timeout period. - * - * Lws wsi timeouts are not really suitable for this since they are focused on - * short-term protocol timeout protection and may be set and reset many times - * in one transaction. Wsi timeouts also enforce closure of the wsi when they - * trigger, sequencer timeouts have no side effect except to queue the - * LWSSEQ_TIMED_OUT message and leave it to the sequencer to decide how to - * react appropriately. - */ -LWS_VISIBLE LWS_EXTERN int -lws_seq_timeout_us(struct lws_sequencer *seq, lws_usec_t us); - -/** - * lws_seq_from_user(): get the lws_seq_t pointer from the user ptr - * - * \param u: the sequencer user allocation returned by lws_seq_create() or - * provided in the sequencer callback - * - * This gets the lws_seq_t * from the sequencer user allocation pointer. - * Actually these are allocated at the same time in one step, with the user - * allocation immediately after the lws_seq_t, so lws can compute where - * the lws_seq_t is from having the user allocation pointer. Since the - * size of the lws_seq_t is unknown to user code, this helper does it for - * you. - */ -LWS_VISIBLE LWS_EXTERN struct lws_sequencer * -lws_seq_from_user(void *u); - -/** - * lws_seq_us_since_creation(): elapsed seconds since sequencer created - * - * \param seq: pointer to the lws_seq_t - * - * Returns the number of us elapsed since the lws_seq_t was - * created. This is useful to calculate sequencer timeouts for the current - * step considering a global sequencer lifetime limit. - */ -LWS_VISIBLE LWS_EXTERN lws_usec_t -lws_seq_us_since_creation(struct lws_sequencer *seq); - -/** - * lws_seq_name(): get the name of this sequencer - * - * \param seq: pointer to the lws_seq_t - * - * Returns the name given when the sequencer was created. This is useful to - * annotate logging when then are multiple sequencers in play. - */ -LWS_VISIBLE LWS_EXTERN const char * -lws_seq_name(struct lws_sequencer *seq); - -/** - * lws_seq_get_context(): get the lws_context sequencer was created on - * - * \param seq: pointer to the lws_seq_t - * - * Returns the lws_context. Saves you having to store it if you have a seq - * pointer handy. - */ -LWS_VISIBLE LWS_EXTERN struct lws_context * -lws_seq_get_context(struct lws_sequencer *seq); diff --git a/win64/include/websockets/libwebsockets/lws-service.h b/win64/include/websockets/libwebsockets/lws-service.h deleted file mode 100644 index ed933103..00000000 --- a/win64/include/websockets/libwebsockets/lws-service.h +++ /dev/null @@ -1,201 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** \defgroup service Built-in service loop entry - * - * ##Built-in service loop entry - * - * If you're not using libev / libuv, these apis are needed to enter the poll() - * wait in lws and service any connections with pending events. - */ -///@{ - -/** - * lws_service() - Service any pending websocket activity - * \param context: Websocket context - * \param timeout_ms: Set to 0; ignored; for backward compatibility - * - * This function deals with any pending websocket traffic, for three - * kinds of event. It handles these events on both server and client - * types of connection the same. - * - * 1) Accept new connections to our context's server - * - * 2) Call the receive callback for incoming frame data received by - * server or client connections. - * - * Since v3.2 internally the timeout wait is ignored, the lws scheduler is - * smart enough to stay asleep until an event is queued. - */ -LWS_VISIBLE LWS_EXTERN int -lws_service(struct lws_context *context, int timeout_ms); - -/** - * lws_service_tsi() - Service any pending websocket activity - * - * \param context: Websocket context - * \param timeout_ms: Set to 0; ignored; for backwards compatibility - * \param tsi: Thread service index, starting at 0 - * - * Same as lws_service(), but for a specific thread service index. Only needed - * if you are spawning multiple service threads. - */ -LWS_VISIBLE LWS_EXTERN int -lws_service_tsi(struct lws_context *context, int timeout_ms, int tsi); - -/** - * lws_cancel_service_pt() - Cancel servicing of pending socket activity - * on one thread - * \param wsi: Cancel service on the thread this wsi is serviced by - * - * Same as lws_cancel_service(), but targets a single service thread, the one - * the wsi belongs to. You probably want to use lws_cancel_service() instead. - */ -LWS_VISIBLE LWS_EXTERN void -lws_cancel_service_pt(struct lws *wsi); - -/** - * lws_cancel_service() - Cancel wait for new pending socket activity - * \param context: Websocket context - * - * This function creates an immediate "synchronous interrupt" to the lws poll() - * wait or event loop. As soon as possible in the serialzed service sequencing, - * a LWS_CALLBACK_EVENT_WAIT_CANCELLED callback is sent to every protocol on - * every vhost. - * - * lws_cancel_service() may be called from another thread while the context - * exists, and its effect will be immediately serialized. - */ -LWS_VISIBLE LWS_EXTERN void -lws_cancel_service(struct lws_context *context); - -/** - * lws_service_fd() - Service polled socket with something waiting - * \param context: Websocket context - * \param pollfd: The pollfd entry describing the socket fd and which events - * happened - * - * This function takes a pollfd that has POLLIN or POLLOUT activity and - * services it according to the state of the associated - * struct lws. - * - * The one call deals with all "service" that might happen on a socket - * including listen accepts, http files as well as websocket protocol. - * - * If a pollfd says it has something, you can just pass it to - * lws_service_fd() whether it is a socket handled by lws or not. - * If it sees it is a lws socket, the traffic will be handled and - * pollfd->revents will be zeroed now. - * - * If the socket is foreign to lws, it leaves revents alone. So you can - * see if you should service yourself by checking the pollfd revents - * after letting lws try to service it. - * - * lws before v3.2 allowed pollfd to be NULL, to indicate that background - * periodic processing should be done. Since v3.2, lws schedules any items - * that need handling in the future using lws_sul and NULL is no longer valid. - */ -LWS_VISIBLE LWS_EXTERN int -lws_service_fd(struct lws_context *context, struct lws_pollfd *pollfd); - -/** - * lws_service_fd_tsi() - Service polled socket in specific service thread - * \param context: Websocket context - * \param pollfd: The pollfd entry describing the socket fd and which events - * happened. - * \param tsi: thread service index - * - * Same as lws_service_fd() but used with multiple service threads - */ -LWS_VISIBLE LWS_EXTERN int -lws_service_fd_tsi(struct lws_context *context, struct lws_pollfd *pollfd, - int tsi); - -/** - * lws_service_adjust_timeout() - Check for any connection needing forced service - * \param context: Websocket context - * \param timeout_ms: The original poll timeout value. You can just set this - * to 1 if you don't really have a poll timeout. - * \param tsi: thread service index - * - * Under some conditions connections may need service even though there is no - * pending network action on them, this is "forced service". For default - * poll() and libuv / libev, the library takes care of calling this and - * dealing with it for you. But for external poll() integration, you need - * access to the apis. - * - * If anybody needs "forced service", returned timeout is zero. In that case, - * you can call lws_service_tsi() with a timeout of -1 to only service - * guys who need forced service. - */ -LWS_VISIBLE LWS_EXTERN int -lws_service_adjust_timeout(struct lws_context *context, int timeout_ms, int tsi); - -/* Backwards compatibility */ -#define lws_plat_service_tsi lws_service_tsi - -LWS_VISIBLE LWS_EXTERN int -lws_handle_POLLOUT_event(struct lws *wsi, struct lws_pollfd *pollfd); - -///@} - -/*! \defgroup uv libuv helpers - * - * ##libuv helpers - * - * APIs specific to libuv event loop itegration - */ -///@{ -#if defined(LWS_WITH_LIBUV) && defined(UV_ERRNO_MAP) - -/* - * Any direct libuv allocations in lws protocol handlers must participate in the - * lws reference counting scheme. Two apis are provided: - * - * - lws_libuv_static_refcount_add(handle, context) to mark the handle with - * a pointer to the context and increment the global uv object counter - * - * - lws_libuv_static_refcount_del() which should be used as the close callback - * for your own libuv objects declared in the protocol scope. - * - * Using the apis allows lws to detach itself from a libuv loop completely - * cleanly and at the moment all of its libuv objects have completed close. - */ - -LWS_VISIBLE LWS_EXTERN uv_loop_t * -lws_uv_getloop(struct lws_context *context, int tsi); - -LWS_VISIBLE LWS_EXTERN void -lws_libuv_static_refcount_add(uv_handle_t *, struct lws_context *context); - -LWS_VISIBLE LWS_EXTERN void -lws_libuv_static_refcount_del(uv_handle_t *); - -#endif /* LWS_WITH_LIBUV */ - -#if defined(LWS_PLAT_FREERTOS) -#define lws_libuv_static_refcount_add(_a, _b) -#define lws_libuv_static_refcount_del NULL -#endif -///@} diff --git a/win64/include/websockets/libwebsockets/lws-settings.h b/win64/include/websockets/libwebsockets/lws-settings.h deleted file mode 100644 index 56b47119..00000000 --- a/win64/include/websockets/libwebsockets/lws-settings.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Generic Settings storage - * - * Copyright (C) 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * - * This is like an abstract class for non-volatile storage, whether in a file- - * system or flash-backed blocks, etc. Named blobs of variable size are stored - * in nonvolatile media of some sort. Typically, these are JSON objects under - * a naming scheme like, eg, "network". - * - * There's a platform-specific storage identifier opaque_plat provided when the - * storage object is instantiated, this describes eg the storage device or - * partition in instantiation-specific terms. - * - * Blobs have a further "filename" associated with them. - */ - -#define LSOOPEN_FLAG_WRITEABLE (1 << 0) - -struct lws_settings_ops; - -typedef struct { - void *handle_plat; - const struct lws_settings_ops *so; - uint8_t refcount; - void *opaque_plat; -} lws_settings_instance_t; - -typedef struct lws_settings_ops { - int (*get)(lws_settings_instance_t *si, const char *name, - uint8_t *dest, size_t *max_actual); - /**< if dest is NULL, max_actual is set to the actual length without - * copying anything out */ - int (*set)(lws_settings_instance_t *si, const char *name, - const uint8_t *src, size_t len); -} lws_settings_ops_t; - -/** - * lws_settings_plat_get() - read a named blob from a settings instance - * - * \param si: the settings instance - * \param name: the name of the setting blob in the instance - * \param dest: NULL, or the buffer to copy the setting blob info - * \param max_actual: point to size of dest, or zero; actual blob size on exit - * - * If the named blob doesn't exist in the si, or can't read, returns nonzero. - * Otherwise, returns 0 and sets *max_actual to the true blob size. If dest is - * non-NULL, as much of the blob as will fit in the amount specified by - * *max_actual on entry is copied to dest. - */ -LWS_VISIBLE LWS_EXTERN int -lws_settings_plat_get(lws_settings_instance_t *si, const char *name, - uint8_t *dest, size_t *max_actual); - -/** - * lws_settings_plat_get() - read a named blob from a settings instance - * - * \param si: the settings instance - * \param name: the name of the setting blob in the instance - * \param src: blob to copy to settings instance - * \param len: length of blob to copy - * - * Creates or replaces a settings blob of the given name made up of the \p len - * bytes of data from \p src. - */ -LWS_VISIBLE LWS_EXTERN int -lws_settings_plat_set(lws_settings_instance_t *si, const char *name, - const uint8_t *src, size_t len); - -/** - * lws_settings_plat_printf() - read a named blob from a settings instance - * - * \param si: the settings instance - * \param name: the name of the setting blob in the instance - * \param format: printf-style format string - * - * Creates or replaces a settings blob of the given name from the printf-style - * format string and arguments provided. There's no specific limit to the size, - * the size is computed and then a temp heap buffer used. - */ -LWS_VISIBLE LWS_EXTERN int -lws_settings_plat_printf(lws_settings_instance_t *si, const char *name, - const char *format, ...) LWS_FORMAT(3); - -#define lws_settings_ops_plat \ - .get = lws_settings_plat_get, \ - .set = lws_settings_plat_set, - -LWS_VISIBLE LWS_EXTERN lws_settings_instance_t * -lws_settings_init(const lws_settings_ops_t *so, void *opaque_plat); - -LWS_VISIBLE LWS_EXTERN void -lws_settings_deinit(lws_settings_instance_t **si); diff --git a/win64/include/websockets/libwebsockets/lws-sha1-base64.h b/win64/include/websockets/libwebsockets/lws-sha1-base64.h deleted file mode 100644 index 0438aa9c..00000000 --- a/win64/include/websockets/libwebsockets/lws-sha1-base64.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** \defgroup sha SHA and B64 helpers - * ##SHA and B64 helpers - * - * These provide SHA-1 and B64 helper apis - */ -///@{ -#ifdef LWS_SHA1_USE_OPENSSL_NAME -#define lws_SHA1 SHA1 -#else -/** - * lws_SHA1(): make a SHA-1 digest of a buffer - * - * \param d: incoming buffer - * \param n: length of incoming buffer - * \param md: buffer for message digest (must be >= 20 bytes) - * - * Reduces any size buffer into a 20-byte SHA-1 hash. - */ -LWS_VISIBLE LWS_EXTERN unsigned char * -lws_SHA1(const unsigned char *d, size_t n, unsigned char *md); -#endif -/** - * lws_b64_encode_string(): encode a string into base 64 - * - * \param in: incoming buffer - * \param in_len: length of incoming buffer - * \param out: result buffer - * \param out_size: length of result buffer - * - * Encodes a string using b64 - */ -LWS_VISIBLE LWS_EXTERN int -lws_b64_encode_string(const char *in, int in_len, char *out, int out_size); -/** - * lws_b64_encode_string_url(): encode a string into base 64 - * - * \param in: incoming buffer - * \param in_len: length of incoming buffer - * \param out: result buffer - * \param out_size: length of result buffer - * - * Encodes a string using b64 with the "URL" variant (+ -> -, and / -> _) - */ -LWS_VISIBLE LWS_EXTERN int -lws_b64_encode_string_url(const char *in, int in_len, char *out, int out_size); -/** - * lws_b64_decode_string(): decode a string from base 64 - * - * \param in: incoming buffer - * \param out: result buffer - * \param out_size: length of result buffer - * - * Decodes a NUL-terminated string using b64 - */ -LWS_VISIBLE LWS_EXTERN int -lws_b64_decode_string(const char *in, char *out, int out_size); -/** - * lws_b64_decode_string_len(): decode a string from base 64 - * - * \param in: incoming buffer - * \param in_len: length of incoming buffer - * \param out: result buffer - * \param out_size: length of result buffer - * - * Decodes a range of chars using b64 - */ -LWS_VISIBLE LWS_EXTERN int -lws_b64_decode_string_len(const char *in, int in_len, char *out, int out_size); - -struct lws_b64state { - unsigned char quad[4]; - size_t done; - size_t len; - int i; - int c; -}; - -LWS_VISIBLE LWS_EXTERN void -lws_b64_decode_state_init(struct lws_b64state *state); - -LWS_VISIBLE LWS_EXTERN int -lws_b64_decode_stateful(struct lws_b64state *s, const char *in, size_t *in_len, - uint8_t *out, size_t *out_size, int final); -///@} - diff --git a/win64/include/websockets/libwebsockets/lws-smd.h b/win64/include/websockets/libwebsockets/lws-smd.h deleted file mode 100644 index 66484d73..00000000 --- a/win64/include/websockets/libwebsockets/lws-smd.h +++ /dev/null @@ -1,175 +0,0 @@ -/* - * lws System Message Distribution - * - * Copyright (C) 2010 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#define LWS_SMD_MAX_PAYLOAD 384 -#define LWS_SMD_CLASS_BITFIELD_BYTES 4 - -#define LWS_SMD_STREAMTYPENAME "_lws_smd" -#define LWS_SMD_SS_RX_HEADER_LEN 16 - -typedef uint32_t lws_smd_class_t; - -struct lws_smd_msg; /* opaque */ -struct lws_smd_peer; /* opaque */ - -/* - * Well-known device classes - */ - -enum { - LWSSMDCL_INTERACTION = (1 << 0), - /**< - * Any kind of event indicating a user was interacting with the device, - * eg, press a button, touched the screen, lifted the device etc - */ - LWSSMDCL_SYSTEM_STATE = (1 << 1), - /**< - * The lws_system state changed, eg, to OPERATIONAL - */ - LWSSMDCL_NETWORK = (1 << 2), - /**< - * Something happened on the network, eg, link-up or DHCP, or captive - * portal state update - */ -}; - -/** - * lws_smd_msg_alloc() - allocate a message of length len - * - * \param ctx: the lws_context - * \param _class: the smd message class, recipients filter on this - * \param len: the required payload length - * - * This helper returns an opaque lws_smd_msg pointer and sets *buf to a buffer - * associated with it of length \p len. - * - * In this way the lws_msg_smd type remains completely opaque and the allocated - * area can be prepared by the caller directly, without copying. - * - * On failure, it returns NULL... it may fail for OOM but it may also fail if - * you request to allocate for a message class that the system has no - * participant who is listening for that class of event currently... the event - * generation action at the caller should be bypassed without error then. - * - * This is useful if you have a message you know the length of. For text-based - * messages like JSON, lws_smd_msg_printf() is more convenient. - */ -LWS_VISIBLE LWS_EXTERN void * /* payload */ -lws_smd_msg_alloc(struct lws_context *ctx, lws_smd_class_t _class, size_t len); - -/** - * lws_smd_msg_free() - abandon a previously allocated message before sending - * - * \param payload: pointer the previously-allocated message payload - * - * Destroys a previously-allocated opaque message object and the requested - * buffer space, in the case that between allocating it and sending it, some - * condition was met that means it can no longer be sent, eg, an error - * generating the content. Otherwise there is no need to destroy allocated - * message objects with this, lws will take care of it. - */ -LWS_VISIBLE LWS_EXTERN void -lws_smd_msg_free(void **payload); - -/** - * lws_smd_msg_send() - queue a previously allocated message - * - * \param ctx: the lws_context - * \param msg: the prepared message - * - * Queues an allocated, prepared message for delivery to smd clients - * - * This is threadsafe to call from a non-service thread. - */ -LWS_VISIBLE LWS_EXTERN int -lws_smd_msg_send(struct lws_context *ctx, void *payload); - -/** - * lws_smd_msg_printf() - queue a previously allocated message - * - * \param ctx: the lws_context - * \param _class: the message class - * \param format: the format string to prepare the payload with - * \param ...: arguments for the format string, if any - * - * For string-based messages, eg, JSON, allows formatted creating of the payload - * size discovery, allocation and message send all in one step. - * - * Unlike lws_smd_msg_alloc() you do not need to know the length beforehand as - * this computes it and calls lws_smd_msg_alloc() with the correct length. - * - * To be clear this also calls through to lws_smd_msg_send(), it really does - * everything in one step. If there are no registered participants that want - * messages of \p _class, this function returns immediately without doing any - * allocation or anything else. - * - * This is threadsafe to call from a non-service thread. - */ -LWS_VISIBLE LWS_EXTERN int -lws_smd_msg_printf(struct lws_context *ctx, lws_smd_class_t _class, - const char *format, ...) LWS_FORMAT(3); - -typedef int (*lws_smd_notification_cb_t)(void *opaque, lws_smd_class_t _class, - lws_usec_t timestamp, void *buf, - size_t len); - -#define LWSSMDREG_FLAG_PROXIED_SS (1 << 0) -/**< It's actually a proxied SS connection registering, opaque is the ss h */ - -/* - * lws_smd_register() - register to receive smd messages - * - * \param ctx: the lws_context - * \param opaque: an opaque pointer handed to the callback - * \param flags: typically 0 - * \param _class_filter: bitmap of message classes we care about - * \param cb: the callback to receive messages - * - * Queues an allocated, prepared message for delivery to smd clients. - * - * Returns NULL on failure, or an opaque handle which may be given to - * lws_smd_unregister() to stop participating in the shared message queue. - * - * This is threadsafe to call from a non-service thread. - */ - -LWS_VISIBLE LWS_EXTERN struct lws_smd_peer * -lws_smd_register(struct lws_context *ctx, void *opaque, int flags, - lws_smd_class_t _class_filter, lws_smd_notification_cb_t cb); - -/* - * lws_smd_unregister() - unregister receiving smd messages - * - * \param pr: the handle returned from the registration - * - * Destroys the registration of the callback for messages and ability to send - * messages. - * - * It's not necessary to call this if the registration wants to survive for as - * long as the lws_context... lws_context_destroy will also clean up any - * registrations still active by then. - */ - -LWS_VISIBLE LWS_EXTERN void -lws_smd_unregister(struct lws_smd_peer *pr); diff --git a/win64/include/websockets/libwebsockets/lws-spa.h b/win64/include/websockets/libwebsockets/lws-spa.h deleted file mode 100644 index c5ddab2c..00000000 --- a/win64/include/websockets/libwebsockets/lws-spa.h +++ /dev/null @@ -1,176 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** \defgroup form-parsing Form Parsing - * \ingroup http - * ##POSTed form parsing functions - * - * These lws_spa (stateful post arguments) apis let you parse and urldecode - * POSTed form arguments, both using simple urlencoded and multipart transfer - * encoding. - * - * It's capable of handling file uploads as well a named input parsing, - * and the apis are the same for both form upload styles. - * - * You feed it a list of parameter names and it creates pointers to the - * urldecoded arguments: file upload parameters pass the file data in chunks to - * a user-supplied callback as they come. - * - * Since it's stateful, it handles the incoming data needing more than one - * POST_BODY callback and has no limit on uploaded file size. - */ -///@{ - -/** enum lws_spa_fileupload_states */ -enum lws_spa_fileupload_states { - LWS_UFS_CONTENT, - /**< a chunk of file content has arrived */ - LWS_UFS_FINAL_CONTENT, - /**< the last chunk (possibly zero length) of file content has arrived */ - LWS_UFS_OPEN, - /**< a new file is starting to arrive */ - LWS_UFS_CLOSE - /**< the file decode stuff is being destroyed */ -}; - -/** - * lws_spa_fileupload_cb() - callback to receive file upload data - * - * \param data: opt_data pointer set in lws_spa_create - * \param name: name of the form field being uploaded - * \param filename: original filename from client - * \param buf: start of data to receive - * \param len: length of data to receive - * \param state: information about how this call relates to file - * - * Notice name and filename shouldn't be trusted, as they are passed from - * HTTP provided by the client. - */ -typedef int (*lws_spa_fileupload_cb)(void *data, const char *name, - const char *filename, char *buf, int len, - enum lws_spa_fileupload_states state); - -/** struct lws_spa - opaque urldecode parser capable of handling multipart - * and file uploads */ -struct lws_spa; - -/** - * lws_spa_create() - create urldecode parser - * - * \param wsi: lws connection (used to find Content Type) - * \param param_names: array of form parameter names, like "username" - * \param count_params: count of param_names - * \param max_storage: total amount of form parameter values we can store - * \param opt_cb: NULL, or callback to receive file upload data. - * \param opt_data: NULL, or user pointer provided to opt_cb. - * - * Creates a urldecode parser and initializes it. - * - * It's recommended to use the newer api, lws_spa_create_via_info() - * instead. - * - * opt_cb can be NULL if you just want normal name=value parsing, however - * if one or more entries in your form are bulk data (file transfer), you - * can provide this callback and filter on the name callback parameter to - * treat that urldecoded data separately. The callback should return -1 - * in case of fatal error, and 0 if OK. - */ -LWS_VISIBLE LWS_EXTERN struct lws_spa * -lws_spa_create(struct lws *wsi, const char * const *param_names, - int count_params, int max_storage, lws_spa_fileupload_cb opt_cb, - void *opt_data); - -typedef struct lws_spa_create_info { - const char * const *param_names; /* array of form parameter names, like "username" */ - int count_params; /* count of param_names */ - int max_storage; /* total amount of form parameter values we can store */ - lws_spa_fileupload_cb opt_cb; /* NULL, or callback to receive file upload data. */ - void *opt_data; /* NULL, or user pointer provided to opt_cb. */ - size_t param_names_stride; /* 0 if param_names is an array of char *. - Else stride to next char * */ - struct lwsac **ac; /* NULL, or pointer to lwsac * to contain all - related heap allocations */ - size_t ac_chunk_size; /* 0 for default, or ac chunk size */ -} lws_spa_create_info_t; - -/** - * lws_spa_create_via_info() - create urldecode parser - * - * \param wsi: lws connection (used to find Content Type) - * \param info: pointer to struct defining the arguments - * - * Creates a urldecode parser and initializes it. - * - * opt_cb can be NULL if you just want normal name=value parsing, however - * if one or more entries in your form are bulk data (file transfer), you - * can provide this callback and filter on the name callback parameter to - * treat that urldecoded data separately. The callback should return -1 - * in case of fatal error, and 0 if OK. - */ -LWS_VISIBLE LWS_EXTERN struct lws_spa * -lws_spa_create_via_info(struct lws *wsi, const lws_spa_create_info_t *info); - -/** - * lws_spa_process() - parses a chunk of input data - * - * \param spa: the parser object previously created - * \param in: incoming urlencoded data - * \param len: count of bytes valid at \p in - */ -LWS_VISIBLE LWS_EXTERN int -lws_spa_process(struct lws_spa *spa, const char *in, int len); - -/** - * lws_spa_finalize() - indicate incoming data completed - * - * \param spa: the parser object previously created - */ -LWS_VISIBLE LWS_EXTERN int -lws_spa_finalize(struct lws_spa *spa); - -/** - * lws_spa_get_length() - return length of parameter value - * - * \param spa: the parser object previously created - * \param n: parameter ordinal to return length of value for - */ -LWS_VISIBLE LWS_EXTERN int -lws_spa_get_length(struct lws_spa *spa, int n); - -/** - * lws_spa_get_string() - return pointer to parameter value - * \param spa: the parser object previously created - * \param n: parameter ordinal to return pointer to value for - */ -LWS_VISIBLE LWS_EXTERN const char * -lws_spa_get_string(struct lws_spa *spa, int n); - -/** - * lws_spa_destroy() - destroy parser object - * - * \param spa: the parser object previously created - */ -LWS_VISIBLE LWS_EXTERN int -lws_spa_destroy(struct lws_spa *spa); -///@} diff --git a/win64/include/websockets/libwebsockets/lws-spi.h b/win64/include/websockets/libwebsockets/lws-spi.h deleted file mode 100644 index 666113ef..00000000 --- a/win64/include/websockets/libwebsockets/lws-spi.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Generic I2C ops - * - * Copyright (C) 2019 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * This is like an abstract class for spi, a real implementation provides - * functions for the ops that use the underlying OS arrangements. - * - * It uses descriptor / queuing semantics but eg the GPIO BB implementantion is - * synchronous. - */ - -#if !defined(__LWS_SPI_H__) -#define __LWS_SPI_H__ - -#include <stdint.h> -#include <stddef.h> - -typedef int (*lws_spi_cb_t)(void *opaque); - -enum { - LWSSPIMODE_CPOL = (1 << 0), - LWSSPIMODE_CPHA = (1 << 1), - - LWS_SPI_BUSMODE_CLK_IDLE_LOW_SAMP_RISING = 0, - LWS_SPI_BUSMODE_CLK_IDLE_HIGH_SAMP_RISING = LWSSPIMODE_CPOL, - LWS_SPI_BUSMODE_CLK_IDLE_LOW_SAMP_FALLING = LWSSPIMODE_CPHA, - LWS_SPI_BUSMODE_CLK_IDLE_HIGH_SAMP_FALLING = LWSSPIMODE_CPHA | - LWSSPIMODE_CPOL, - - LWS_SPI_TXN_HALF_DUPLEX_DISCRETE = 0, - /**< separate MISO and MOSI, but only either MISO or MOSI has data at - * one time... i2c style in SPI */ -}; - -typedef struct lws_spi_desc { - const uint8_t *src; - const uint8_t *data; - uint8_t *dest; - void *opaque; - lws_spi_cb_t completion_cb; - uint16_t count_cmd; - uint16_t count_write; - uint16_t count_read; - uint8_t txn_type; - uint8_t channel; -} lws_spi_desc_t; - -typedef struct lws_spi_ops { - int (*init)(const struct lws_spi_ops *ctx); - int (*queue)(const struct lws_spi_ops *ctx, const lws_spi_desc_t *desc); - uint8_t bus_mode; -} lws_spi_ops_t; - -#endif diff --git a/win64/include/websockets/libwebsockets/lws-ssd1306-i2c.h b/win64/include/websockets/libwebsockets/lws-ssd1306-i2c.h deleted file mode 100644 index 4f757904..00000000 --- a/win64/include/websockets/libwebsockets/lws-ssd1306-i2c.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * lws abstract display implementation for ssd1306 on i2c - * - * Copyright (C) 2019 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#if !defined(__LWS_DISPLAY_SSD1306_I2C_H__) -#define __LWS_DISPLAY_SSD1306_I2C_H__ - -/* - * D/C# pin on SSD1306 sets the I2C slave ads - * from these two options (7-bit address) - */ - -#define SSD1306_I2C7_ADS1 0x3c -#define SSD1306_I2C7_ADS2 0x3d - -typedef struct lws_display_ssd1306 { - - lws_display_t disp; /* use lws_display_ssd1306_ops to set ops */ - const lws_i2c_ops_t *i2c; /* i2c ops */ - - const lws_gpio_ops_t *gpio; /* NULL or gpio ops */ - _lws_plat_gpio_t reset_gpio; /* if gpio ops, nReset gpio # */ - - uint8_t i2c7_address; /* one of SSD1306_I2C7_ADS... */ - -} lws_display_ssd1306_t; - -int -lws_display_ssd1306_i2c_init(const struct lws_display *disp); -int -lws_display_ssd1306_i2c_contrast(const struct lws_display *disp, uint8_t b); -int -lws_display_ssd1306_i2c_blit(const struct lws_display *disp, const uint8_t *src, - lws_display_scalar x, lws_display_scalar y, - lws_display_scalar w, lws_display_scalar h); -int -lws_display_ssd1306_i2c_power(const struct lws_display *disp, int state); - -#define lws_display_ssd1306_ops \ - .init = lws_display_ssd1306_i2c_init, \ - .contrast = lws_display_ssd1306_i2c_contrast, \ - .blit = lws_display_ssd1306_i2c_blit, \ - .power = lws_display_ssd1306_i2c_power -#endif diff --git a/win64/include/websockets/libwebsockets/lws-state.h b/win64/include/websockets/libwebsockets/lws-state.h deleted file mode 100644 index 78281539..00000000 --- a/win64/include/websockets/libwebsockets/lws-state.h +++ /dev/null @@ -1,119 +0,0 @@ - /* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -struct lws_state_notify_link; -struct lws_state_manager; - -#if defined(LWS_WITH_SYS_STATE) - -typedef int (*lws_state_notify_t)(struct lws_state_manager *mgr, - struct lws_state_notify_link *link, - int current, int target); - -typedef struct lws_state_notify_link { - lws_dll2_t list; - lws_state_notify_t notify_cb; - const char *name; -} lws_state_notify_link_t; - -typedef struct lws_state_manager { - lws_dll2_owner_t notify_list; - struct lws_context *context; - void *parent; -#if defined(LWS_WITH_SYS_SMD) - lws_smd_class_t smd_class; -#endif - /**< optional opaque pointer to owning object... useful to make such - * a pointer available to a notification callback. Ignored by lws */ - const char **state_names; - const char *name; - int state; -} lws_state_manager_t; - -/** - * lws_state_reg_notifier() - add dep handler for state notifications - * - * \param context: the lws_context - * \param nl: the handler to add to the notifier linked-list - * - * Add \p notify_link to the context's list of notification handlers for system - * state changes. The handlers can defeat or take over responsibility for - * retrying the change after they have initiated some dependency. - */ - -LWS_EXTERN LWS_VISIBLE void -lws_state_reg_notifier(lws_state_manager_t *mgr, lws_state_notify_link_t *nl); - -/** - * lws_state_reg_deregister() - deregister a notifier - * - * \param nl: notification hardler to deregister - * - * Remove a notification handler from its state manager - */ - -LWS_EXTERN LWS_VISIBLE void -lws_state_reg_deregister(lws_state_notify_link_t *nl); - -/** - * lws_state_reg_notifier_list() - add dep handlers for state notifications - * - * \param context: the lws_context - * \param nl: list of notification handlers - * - * Add a NULL-terminated list of notification handler pointers to a notification - * manager object - */ - -LWS_EXTERN LWS_VISIBLE void -lws_state_reg_notifier_list(lws_state_manager_t *mgr, - lws_state_notify_link_t * const *nl); - -/** - * lws_state_transition_steps() - move to state via starting any deps - * - * \param mgr: the state manager object - * \param target: the state we wish to move to - * - * Advance state by state towards state \p target. At each state, notifiers - * may veto the change and be triggered to perform dependencies, stopping the - * advance towards the target state. - */ -LWS_EXTERN LWS_VISIBLE int -lws_state_transition_steps(lws_state_manager_t *mgr, int target); - -/** - * lws_state_transition() - move to state via starting any deps - * - * \param mgr: the state manager object - * \param target: the state we wish to move to - * - * Jump to state target atomically. Notifiers may veto it. - */ -LWS_EXTERN LWS_VISIBLE int -lws_state_transition(lws_state_manager_t *mgr, int target); - -#else - -#endif diff --git a/win64/include/websockets/libwebsockets/lws-stats.h b/win64/include/websockets/libwebsockets/lws-stats.h deleted file mode 100644 index ca9a4e62..00000000 --- a/win64/include/websockets/libwebsockets/lws-stats.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/* - * Stats are all uint64_t numbers that start at 0. - * Index names here have the convention - * - * _C_ counter - * _B_ byte count - * _MS_ millisecond count - */ - -enum { - LWSSTATS_C_CONNECTIONS, /**< count incoming connections */ - LWSSTATS_C_API_CLOSE, /**< count calls to close api */ - LWSSTATS_C_API_READ, /**< count calls to read from socket api */ - LWSSTATS_C_API_LWS_WRITE, /**< count calls to lws_write API */ - LWSSTATS_C_API_WRITE, /**< count calls to write API */ - LWSSTATS_C_WRITE_PARTIALS, /**< count of partial writes */ - LWSSTATS_C_WRITEABLE_CB_REQ, /**< count of writable callback requests */ - LWSSTATS_C_WRITEABLE_CB_EFF_REQ, /**< count of effective writable callback requests */ - LWSSTATS_C_WRITEABLE_CB, /**< count of writable callbacks */ - LWSSTATS_C_SSL_CONNECTIONS_FAILED, /**< count of failed SSL connections */ - LWSSTATS_C_SSL_CONNECTIONS_ACCEPTED, /**< count of accepted SSL connections */ - LWSSTATS_C_SSL_ACCEPT_SPIN, /**< count of SSL_accept() attempts */ - LWSSTATS_C_SSL_CONNS_HAD_RX, /**< count of accepted SSL conns that have had some RX */ - LWSSTATS_C_TIMEOUTS, /**< count of timed-out connections */ - LWSSTATS_C_SERVICE_ENTRY, /**< count of entries to lws service loop */ - LWSSTATS_B_READ, /**< aggregate bytes read */ - LWSSTATS_B_WRITE, /**< aggregate bytes written */ - LWSSTATS_B_PARTIALS_ACCEPTED_PARTS, /**< aggreate of size of accepted write data from new partials */ - LWSSTATS_US_SSL_ACCEPT_LATENCY_AVG, /**< aggregate delay in accepting connection */ - LWSSTATS_US_WRITABLE_DELAY_AVG, /**< aggregate delay between asking for writable and getting cb */ - LWSSTATS_US_WORST_WRITABLE_DELAY, /**< single worst delay between asking for writable and getting cb */ - LWSSTATS_US_SSL_RX_DELAY_AVG, /**< aggregate delay between ssl accept complete and first RX */ - LWSSTATS_C_PEER_LIMIT_AH_DENIED, /**< number of times we would have given an ah but for the peer limit */ - LWSSTATS_C_PEER_LIMIT_WSI_DENIED, /**< number of times we would have given a wsi but for the peer limit */ - LWSSTATS_C_CONNS_CLIENT, /**< attempted client conns */ - LWSSTATS_C_CONNS_CLIENT_FAILED, /**< failed client conns */ - - /* Add new things just above here ---^ - * This is part of the ABI, don't needlessly break compatibility - * - * UPDATE stat_names in stats.c in sync with this! - */ - LWSSTATS_SIZE -}; - -#if defined(LWS_WITH_STATS) - -LWS_VISIBLE LWS_EXTERN uint64_t -lws_stats_get(struct lws_context *context, int index); -LWS_VISIBLE LWS_EXTERN void -lws_stats_log_dump(struct lws_context *context); -#else -static LWS_INLINE uint64_t -lws_stats_get(struct lws_context *context, int index) { (void)context; (void)index; return 0; } -static LWS_INLINE void -lws_stats_log_dump(struct lws_context *context) { (void)context; } -#endif diff --git a/win64/include/websockets/libwebsockets/lws-struct.h b/win64/include/websockets/libwebsockets/lws-struct.h deleted file mode 100644 index dac26197..00000000 --- a/win64/include/websockets/libwebsockets/lws-struct.h +++ /dev/null @@ -1,284 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -#if defined(LWS_WITH_STRUCT_SQLITE3) -#include <sqlite3.h> -#endif - -typedef enum { - LSMT_SIGNED, - LSMT_UNSIGNED, - LSMT_BOOLEAN, - LSMT_STRING_CHAR_ARRAY, - LSMT_STRING_PTR, - LSMT_LIST, - LSMT_CHILD_PTR, - LSMT_SCHEMA, - LSMT_BLOB_PTR, - -} lws_struct_map_type_eum; - -typedef struct lejp_collation { - struct lws_dll2 chunks; - int len; - char buf[LEJP_STRING_CHUNK + 1]; -} lejp_collation_t; - -typedef struct lws_struct_map { - const char *colname; - const struct lws_struct_map *child_map; - lejp_callback lejp_cb; - size_t ofs; /* child dll2; points to dll2_owner */ - size_t aux; - size_t ofs_clist; - size_t child_map_size; - lws_struct_map_type_eum type; -} lws_struct_map_t; - -typedef int (*lws_struct_args_cb)(void *obj, void *cb_arg); - -typedef struct lws_struct_args { - const lws_struct_map_t *map_st[LEJP_MAX_PARSING_STACK_DEPTH]; - lws_struct_args_cb cb; - struct lwsac *ac; - void *cb_arg; - void *dest; - - size_t dest_len; - size_t toplevel_dll2_ofs; - size_t map_entries_st[LEJP_MAX_PARSING_STACK_DEPTH]; - size_t ac_block_size; - int subtype; - - int top_schema_index; - - /* - * temp ac used to collate unknown possibly huge strings before final - * allocation and copy - */ - struct lwsac *ac_chunks; - struct lws_dll2_owner chunks_owner; - size_t chunks_length; -} lws_struct_args_t; - -#define LSM_SIGNED(type, name, qname) \ - { \ - qname, \ - NULL, \ - NULL, \ - offsetof(type, name), \ - sizeof ((type *)0)->name, \ - 0, \ - 0, \ - LSMT_SIGNED \ - } - -#define LSM_UNSIGNED(type, name, qname) \ - { \ - qname, \ - NULL, \ - NULL, \ - offsetof(type, name), \ - sizeof ((type *)0)->name, \ - 0, \ - 0, \ - LSMT_UNSIGNED \ - } - -#define LSM_BOOLEAN(type, name, qname) \ - { \ - qname, \ - NULL, \ - NULL, \ - offsetof(type, name), \ - sizeof ((type *)0)->name, \ - 0, \ - 0, \ - LSMT_BOOLEAN \ - } - -#define LSM_CARRAY(type, name, qname) \ - { \ - qname, \ - NULL, \ - NULL, \ - offsetof(type, name), \ - sizeof (((type *)0)->name), \ - 0, \ - 0, \ - LSMT_STRING_CHAR_ARRAY \ - } - -#define LSM_STRING_PTR(type, name, qname) \ - { \ - qname, \ - NULL, \ - NULL, \ - offsetof(type, name), \ - sizeof (((type *)0)->name), \ - 0, \ - 0, \ - LSMT_STRING_PTR \ - } - -#define LSM_LIST(ptype, pname, ctype, cname, lejp_cb, cmap, qname) \ - { \ - qname, \ - cmap, \ - lejp_cb, \ - offsetof(ptype, pname), \ - sizeof (ctype), \ - offsetof(ctype, cname), \ - LWS_ARRAY_SIZE(cmap), \ - LSMT_LIST \ - } - -#define LSM_CHILD_PTR(ptype, pname, ctype, lejp_cb, cmap, qname) \ - { \ - qname, \ - cmap, \ - lejp_cb, \ - offsetof(ptype, pname), \ - sizeof (ctype), \ - 0, \ - LWS_ARRAY_SIZE(cmap), \ - LSMT_CHILD_PTR \ - } - -#define LSM_SCHEMA(ctype, lejp_cb, map, schema_name) \ - { \ - schema_name, \ - map, \ - lejp_cb, \ - 0, \ - sizeof (ctype), \ - 0, \ - LWS_ARRAY_SIZE(map), \ - LSMT_SCHEMA \ - } - -#define LSM_SCHEMA_DLL2(ctype, cdll2mem, lejp_cb, map, schema_name) \ - { \ - schema_name, \ - map, \ - lejp_cb, \ - offsetof(ctype, cdll2mem), \ - sizeof (ctype), \ - 0, \ - LWS_ARRAY_SIZE(map), \ - LSMT_SCHEMA \ - } - -/* - * This is just used to create the table schema, it is not part of serialization - * and deserialization. Blobs should be accessed separately. - */ - -#define LSM_BLOB_PTR(type, blobptr_name, qname) \ - { \ - qname, /* JSON item, or sqlite3 column name */ \ - NULL, \ - NULL, \ - offsetof(type, blobptr_name), /* member that points to blob */ \ - sizeof (((type *)0)->blobptr_name), /* size of blob pointer */ \ - 0, /* member holding blob len */ \ - 0, /* size of blob length member */ \ - LSMT_BLOB_PTR \ - } - -typedef struct lws_struct_serialize_st { - const struct lws_dll2 *dllpos; - const lws_struct_map_t *map; - const char *obj; - size_t map_entries; - size_t map_entry; - size_t size; - char subsequent; - char idt; -} lws_struct_serialize_st_t; - -enum { - LSSERJ_FLAG_PRETTY = (1 << 0), - LSSERJ_FLAG_OMIT_SCHEMA = (1 << 1) -}; - -typedef struct lws_struct_serialize { - lws_struct_serialize_st_t st[LEJP_MAX_PARSING_STACK_DEPTH]; - - size_t offset; - size_t remaining; - - int sp; - int flags; -} lws_struct_serialize_t; - -typedef enum { - LSJS_RESULT_CONTINUE, - LSJS_RESULT_FINISH, - LSJS_RESULT_ERROR -} lws_struct_json_serialize_result_t; - -LWS_VISIBLE LWS_EXTERN int -lws_struct_json_init_parse(struct lejp_ctx *ctx, lejp_callback cb, - void *user); - -LWS_VISIBLE LWS_EXTERN signed char -lws_struct_schema_only_lejp_cb(struct lejp_ctx *ctx, char reason); - -LWS_VISIBLE LWS_EXTERN signed char -lws_struct_default_lejp_cb(struct lejp_ctx *ctx, char reason); - -LWS_VISIBLE LWS_EXTERN lws_struct_serialize_t * -lws_struct_json_serialize_create(const lws_struct_map_t *map, - size_t map_entries, int flags, - const void *ptoplevel); - -LWS_VISIBLE LWS_EXTERN void -lws_struct_json_serialize_destroy(lws_struct_serialize_t **pjs); - -LWS_VISIBLE LWS_EXTERN lws_struct_json_serialize_result_t -lws_struct_json_serialize(lws_struct_serialize_t *js, uint8_t *buf, - size_t len, size_t *written); - -typedef struct sqlite3 sqlite3; - -LWS_VISIBLE LWS_EXTERN int -lws_struct_sq3_serialize(sqlite3 *pdb, const lws_struct_map_t *schema, - lws_dll2_owner_t *owner, uint32_t manual_idx); - -LWS_VISIBLE LWS_EXTERN int -lws_struct_sq3_deserialize(sqlite3 *pdb, const char *filter, const char *order, - const lws_struct_map_t *schema, lws_dll2_owner_t *o, - struct lwsac **ac, int start, int limit); - -LWS_VISIBLE LWS_EXTERN int -lws_struct_sq3_create_table(sqlite3 *pdb, const lws_struct_map_t *schema); - -LWS_VISIBLE LWS_EXTERN int -lws_struct_sq3_open(struct lws_context *context, const char *sqlite3_path, - char create_if_missing, sqlite3 **pdb); - -LWS_VISIBLE LWS_EXTERN int -lws_struct_sq3_close(sqlite3 **pdb); - diff --git a/win64/include/websockets/libwebsockets/lws-system.h b/win64/include/websockets/libwebsockets/lws-system.h deleted file mode 100644 index 6167a953..00000000 --- a/win64/include/websockets/libwebsockets/lws-system.h +++ /dev/null @@ -1,336 +0,0 @@ - /* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * This provides a clean way to interface lws user code to be able to - * work unchanged on different systems for fetching common system information, - * and performing common system operations like reboot. - */ - -/* - * Types of system blob that can be set and retreived - */ - -typedef enum { - LWS_SYSBLOB_TYPE_AUTH, - LWS_SYSBLOB_TYPE_CLIENT_CERT_DER = LWS_SYSBLOB_TYPE_AUTH + 2, - LWS_SYSBLOB_TYPE_CLIENT_KEY_DER, - LWS_SYSBLOB_TYPE_DEVICE_SERIAL, - LWS_SYSBLOB_TYPE_DEVICE_FW_VERSION, - LWS_SYSBLOB_TYPE_DEVICE_TYPE, - LWS_SYSBLOB_TYPE_NTP_SERVER, - - LWS_SYSBLOB_TYPE_COUNT /* ... always last */ -} lws_system_blob_item_t; - -/* opaque generic blob whose content may be on-the-heap or pointed-to - * directly case by case. When it's on the heap, it can be produced by - * appending (it's a buflist underneath). Either way, it can be consumed by - * copying out a given length from a given offset. - */ - -typedef struct lws_system_blob lws_system_blob_t; - -LWS_EXTERN LWS_VISIBLE void -lws_system_blob_direct_set(lws_system_blob_t *b, const uint8_t *ptr, size_t len); - -LWS_EXTERN LWS_VISIBLE void -lws_system_blob_heap_empty(lws_system_blob_t *b); - -LWS_EXTERN LWS_VISIBLE int -lws_system_blob_heap_append(lws_system_blob_t *b, const uint8_t *ptr, size_t len); - -LWS_EXTERN LWS_VISIBLE size_t -lws_system_blob_get_size(lws_system_blob_t *b); - -/* return 0 and sets *ptr to point to blob data if possible, nonzero = fail */ -LWS_EXTERN LWS_VISIBLE int -lws_system_blob_get_single_ptr(lws_system_blob_t *b, const uint8_t **ptr); - -LWS_EXTERN LWS_VISIBLE int -lws_system_blob_get(lws_system_blob_t *b, uint8_t *ptr, size_t *len, size_t ofs); - -LWS_EXTERN LWS_VISIBLE void -lws_system_blob_destroy(lws_system_blob_t *b); - -/* - * Get the opaque blob for index idx of various system blobs. Returns 0 if - * *b was set otherwise nonzero means out of range - */ - -LWS_EXTERN LWS_VISIBLE lws_system_blob_t * -lws_system_get_blob(struct lws_context *context, lws_system_blob_item_t type, - int idx); - -/* - * Lws view of system state... normal operation from user code perspective is - * dependent on implicit (eg, knowing the date for cert validation) and - * explicit dependencies. - * - * Bit of lws and user code can register notification handlers that can enforce - * dependent operations before state transitions can complete. - */ - -typedef enum { /* keep system_state_names[] in sync in context.c */ - LWS_SYSTATE_UNKNOWN, - - LWS_SYSTATE_CONTEXT_CREATED, /* context was just created */ - LWS_SYSTATE_INITIALIZED, /* protocols initialized. Lws itself - * can operate normally */ - LWS_SYSTATE_IFACE_COLDPLUG, /* existing net ifaces iterated */ - LWS_SYSTATE_DHCP, /* at least one net iface configured */ - LWS_SYSTATE_CPD_PRE_TIME, /* Captive portal detect without valid - * time, good for non-https tests... if - * you care about it, implement and - * call lws_system_ops_t - * .captive_portal_detect_request() - * and move the state forward according - * to the result. */ - LWS_SYSTATE_TIME_VALID, /* ntpclient ran, or hw time valid... - * tls cannot work until we reach here - */ - LWS_SYSTATE_CPD_POST_TIME, /* Captive portal detect after time was - * time, good for https tests... if - * you care about it, implement and - * call lws_system_ops_t - * .captive_portal_detect_request() - * and move the state forward according - * to the result. */ - - LWS_SYSTATE_POLICY_VALID, /* user code knows how to operate... */ - LWS_SYSTATE_REGISTERED, /* device has an identity... */ - LWS_SYSTATE_AUTH1, /* identity used for main auth token */ - LWS_SYSTATE_AUTH2, /* identity used for optional auth */ - - LWS_SYSTATE_OPERATIONAL, /* user code can operate normally */ - - LWS_SYSTATE_POLICY_INVALID, /* user code is changing its policies - * drop everything done with old - * policy, switch to new then enter - * LWS_SYSTATE_POLICY_VALID */ -} lws_system_states_t; - -/* Captive Portal Detect -related */ - -typedef enum { - LWS_CPD_UNKNOWN = 0, /* test didn't happen ince last DHCP acq yet */ - LWS_CPD_INTERNET_OK, /* no captive portal: our CPD test passed OK, - * we can go out on the internet */ - LWS_CPD_CAPTIVE_PORTAL, /* we inferred we're behind a captive portal */ - LWS_CPD_NO_INTERNET, /* we couldn't touch anything */ -} lws_cpd_result_t; - - -typedef void (*lws_attach_cb_t)(struct lws_context *context, int tsi, void *opaque); -struct lws_attach_item; - -typedef struct lws_system_ops { - int (*reboot)(void); - int (*set_clock)(lws_usec_t us); - int (*attach)(struct lws_context *context, int tsi, lws_attach_cb_t cb, - lws_system_states_t state, void *opaque, - struct lws_attach_item **get); - /**< if \p get is NULL, add an attach callback request to the pt for - * \p cb with arg \p opaque, that should be called when we're at or past - * system state \p state. - * - * If \p get is non-NULL, look for the first listed item on the pt whose - * state situation is ready, and set *get to point to it. If no items, - * or none where the system state is right, set *get to NULL. - * - * It's done like this so (*attach) can perform system-specific - * locking outside of lws core, for both getting and adding items the - * same so it is thread-safe. A non-threadsafe helper - * __lws_system_attach() is provided to do the actual work inside the - * system-specific locking. - */ - int (*captive_portal_detect_request)(struct lws_context *context); - /**< Check if we can go out on the internet cleanly, or if we are being - * redirected or intercepted by a captive portal. - * Start the check that proceeds asynchronously, and report the results - * by calling lws_captive_portal_detect_result() api - */ - - uint32_t wake_latency_us; - /**< time taken for this device to wake from suspend, in us - */ -} lws_system_ops_t; - -#if defined(LWS_WITH_SYS_STATE) - -/** - * lws_system_get_state_manager() - return the state mgr object for system state - * - * \param context: the lws_context - * - * The returned pointer can be used with the lws_state_ apis - */ - -LWS_EXTERN LWS_VISIBLE lws_state_manager_t * -lws_system_get_state_manager(struct lws_context *context); - -#endif - -/* wrappers handle NULL members or no ops struct set at all cleanly */ - -#define LWSSYSGAUTH_HEX (1 << 0) - -/** - * lws_system_get_ops() - get ahold of the system ops struct from the context - * - * \param context: the lws_context - * - * Returns the system ops struct. It may return NULL and if not, anything in - * there may be NULL. - */ -LWS_EXTERN LWS_VISIBLE const lws_system_ops_t * -lws_system_get_ops(struct lws_context *context); - -#if defined(LWS_WITH_SYS_STATE) - -/** - * lws_system_context_from_system_mgr() - return context from system state mgr - * - * \param mgr: pointer to specifically the system state mgr - * - * Returns the context from the system state mgr. Helper since the lws_context - * is opaque. - */ -LWS_EXTERN LWS_VISIBLE struct lws_context * -lws_system_context_from_system_mgr(lws_state_manager_t *mgr); - -#endif - -/** - * __lws_system_attach() - get and set items on context attach list - * - * \param context: context to get or set attach items to - * \param tsi: thread service index (normally 0) - * \param cb: callback to call from context event loop thread - * \param state: the lws_system state we have to be in or have passed through - * \param opaque: optional pointer to user specific info given to callback - * \param get: NULL, or pointer to pointer to take detached tail item on exit - * - * This allows other threads to enqueue callback requests to happen from a pt's - * event loop thread safely. The callback gets the context pointer and a user - * opaque pointer that can be optionally given when the item is added to the - * attach list. - * - * This api is the no-locking core function for getting and setting items on the - * pt's attach list. The lws_system operation (*attach) is the actual - * api that user and internal code calls for this feature, it should perform - * system-specific locking, call this helper, release the locking and then - * return the result. This api is public only so it can be used in the locked - * implementation of (*attach). - * - * If get is NULL, then the call adds to the head of the pt attach list using - * cb, state, and opaque; if get is non-NULL, then *get is set to the first - * waiting attached item that meets the state criteria and that item is removed - * from the list. - * - * This is a non-threadsafe helper only designed to be called from - * implementations of struct lws_system's (*attach) operation where system- - * specific locking has been applied around it, making it threadsafe. - */ -LWS_EXTERN LWS_VISIBLE int -__lws_system_attach(struct lws_context *context, int tsi, lws_attach_cb_t cb, - lws_system_states_t state, void *opaque, - struct lws_attach_item **get); - - -typedef int (*dhcpc_cb_t)(void *opaque, int af, uint8_t *ip, int ip_len); - -/** - * lws_dhcpc_request() - add a network interface to dhcpc management - * - * \param c: the lws_context - * \param i: the interface name, like "eth0" - * \param af: address family - * \param cb: the change callback - * \param opaque: opaque pointer given to the callback - * - * Register a network interface as being managed by DHCP. lws will proceed to - * try to acquire an IP. Requires LWS_WITH_SYS_DHCP_CLIENT at cmake. - */ -LWS_EXTERN LWS_VISIBLE int -lws_dhcpc_request(struct lws_context *c, const char *i, int af, dhcpc_cb_t cb, - void *opaque); - -/** - * lws_dhcpc_remove() - remove a network interface to dhcpc management - * - * \param context: the lws_context - * \param iface: the interface name, like "eth0" - * - * Remove handling of the network interface from dhcp. - */ -LWS_EXTERN LWS_VISIBLE int -lws_dhcpc_remove(struct lws_context *context, const char *iface); - -/** - * lws_dhcpc_status() - has any interface reached BOUND state - * - * \param context: the lws_context - * \param sa46: set to a DNS server from a bound interface, or NULL - * - * Returns 1 if any network interface managed by dhcpc has reached the BOUND - * state (has acquired an IP, gateway and DNS server), otherwise 0. - */ -LWS_EXTERN LWS_VISIBLE int -lws_dhcpc_status(struct lws_context *context, lws_sockaddr46 *sa46); - -/** - * lws_system_cpd_start() - helper to initiate captive portal detection - * - * \param context: the lws_context - * - * Resets the context's captive portal state to LWS_CPD_UNKNOWN and calls the - * lws_system_ops_t captive_portal_detect_request() implementation to begin - * testing the captive portal state. - */ -LWS_EXTERN LWS_VISIBLE int -lws_system_cpd_start(struct lws_context *context); - - -/** - * lws_system_cpd_set() - report the result of the captive portal detection - * - * \param context: the lws_context - * \param result: one of the LWS_CPD_ constants representing captive portal state - * - * Sets the context's captive portal detection state to result. User captive - * portal detection code would call this once it had a result from its test. - */ -LWS_EXTERN LWS_VISIBLE void -lws_system_cpd_set(struct lws_context *context, lws_cpd_result_t result); - - -/** - * lws_system_cpd_state_get() - returns the last tested captive portal state - * - * \param context: the lws_context - * - * Returns one of the LWS_CPD_ constants indicating the system's understanding - * of the current captive portal situation. - */ -LWS_EXTERN LWS_VISIBLE lws_cpd_result_t -lws_system_cpd_state_get(struct lws_context *context); diff --git a/win64/include/websockets/libwebsockets/lws-test-sequencer.h b/win64/include/websockets/libwebsockets/lws-test-sequencer.h deleted file mode 100644 index 334116c4..00000000 --- a/win64/include/websockets/libwebsockets/lws-test-sequencer.h +++ /dev/null @@ -1,61 +0,0 @@ - /* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - * - * lws_test_sequencer manages running an array of unit tests. - */ - -typedef void (*lws_test_sequence_cb)(const void *cb_user); - -typedef struct lws_test_sequencer_args { - lws_abs_t *abs; /* abstract protocol + unit test txport */ - lws_unit_test_t *tests; /* array of lws_unit_test_t */ - int *results; /* takes result dispositions */ - int results_max; /* max space usable in results */ - int *count_tests; /* count of done tests */ - int *count_passes; /* count of passed tests */ - lws_test_sequence_cb cb; /* completion callback */ - void *cb_user; /* opaque user ptr given to cb */ -} lws_test_sequencer_args_t; - -/** - * lws_abs_unit_test_sequencer() - helper to sequence multiple unit tests - * - * \param args: lws_test_sequencer_args_t prepared with arguments for the tests - * - * This helper sequences one or more unit tests to run and collects the results. - * - * The incoming abs should be set up for the abstract protocol you want to test - * and the lws unit-test transport. - * - * Results are one of - * - * LPE_SUCCEEDED - * LPE_FAILED - * LPE_FAILED_UNEXPECTED_TIMEOUT - * LPE_FAILED_UNEXPECTED_PASS - * LPE_FAILED_UNEXPECTED_CLOSE - * - * The callback args->cb is called when the tests have been done. - */ -LWS_VISIBLE LWS_EXTERN int -lws_abs_unit_test_sequencer(const lws_test_sequencer_args_t *args); diff --git a/win64/include/websockets/libwebsockets/lws-threadpool.h b/win64/include/websockets/libwebsockets/lws-threadpool.h deleted file mode 100644 index 144c2557..00000000 --- a/win64/include/websockets/libwebsockets/lws-threadpool.h +++ /dev/null @@ -1,280 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2020 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** \defgroup threadpool Threadpool related functions - * ##Threadpool - * \ingroup lwsapi - * - * This allows you to create one or more pool of threads which can run tasks - * associated with a wsi. If the pool is busy, tasks wait on a queue. - * - * Tasks don't have to be atomic, if they will take more than a few tens of ms - * they should return back to the threadpool worker with a return of 0. This - * will allow them to abort cleanly. - */ -//@{ - -struct lws_threadpool; -struct lws_threadpool_task; - -enum lws_threadpool_task_status { - LWS_TP_STATUS_QUEUED, - LWS_TP_STATUS_RUNNING, - LWS_TP_STATUS_SYNCING, - LWS_TP_STATUS_STOPPING, - LWS_TP_STATUS_FINISHED, /* lws_threadpool_task_status() frees task */ - LWS_TP_STATUS_STOPPED, /* lws_threadpool_task_status() frees task */ -}; - -enum lws_threadpool_task_return { - /** Still work to do, just confirming not being stopped */ - LWS_TP_RETURN_CHECKING_IN, - /** Still work to do, enter cond_wait until service thread syncs. This - * is used if you have filled your buffer(s) of data to the service - * thread and are blocked until the service thread completes sending at - * least one. - */ - LWS_TP_RETURN_SYNC, - /** No more work to do... */ - LWS_TP_RETURN_FINISHED, - /** Responding to request to stop */ - LWS_TP_RETURN_STOPPED, - - /* OR on to indicate this task wishes to outlive its wsi */ - LWS_TP_RETURN_FLAG_OUTLIVE = 64 -}; - -struct lws_threadpool_create_args { - int threads; - int max_queue_depth; -}; - -struct lws_threadpool_task_args { -#if defined(LWS_WITH_SECURE_STREAMS) - struct lws_ss_handle *ss; /**< either wsi or ss must be set */ -#endif - struct lws *wsi; /**< either wsi or ss must be set */ - - void *user; /**< user may set (user-private pointer) */ - const char *name; /**< user may set to describe task */ - char async_task; /**< set to allow the task to shrug off the loss - of the associated wsi and continue to - completion */ - enum lws_threadpool_task_return (*task)(void *user, - enum lws_threadpool_task_status s); - /**< user must set to actual task function */ - void (*cleanup)(struct lws *wsi, void *user); - /**< socket lifecycle may end while task is not stoppable, so the task - * must be able to detach from any wsi and clean itself up when it does - * stop. If NULL, no cleanup necessary, otherwise point to a user- - * supplied function that destroys the stuff in \p user. - * - * wsi may be NULL on entry, indicating the task got detached due to the - * wsi closing before. - */ -}; - -/** - * lws_threadpool_create() - create a pool of worker threads - * - * \param context: the lws_context the threadpool will exist inside - * \param args: argument struct prepared by caller - * \param format: printf-type format for the task name - * \param ...: printf type args for the task name format - * - * Creates a pool of worker threads with \p threads and a queue of up to - * \p max_queue_depth waiting tasks if all the threads are busy. - * - * Returns NULL if OOM, or a struct lws_threadpool pointer that must be - * destroyed by lws_threadpool_destroy(). - */ -LWS_VISIBLE LWS_EXTERN struct lws_threadpool * -lws_threadpool_create(struct lws_context *context, - const struct lws_threadpool_create_args *args, - const char *format, ...) LWS_FORMAT(3); - -/** - * lws_threadpool_finish() - Stop all pending and running tasks - * - * \param tp: the threadpool object - * - * Marks the threadpool as under destruction. Removes everything from the - * pending queue and completes those tasks as LWS_TP_STATUS_STOPPED. - * - * Running tasks will also get LWS_TP_STATUS_STOPPED as soon as they - * "resurface". - * - * This doesn't reap tasks or free the threadpool, the reaping is done by the - * lws_threadpool_task_status() on the done task. - */ -LWS_VISIBLE LWS_EXTERN void -lws_threadpool_finish(struct lws_threadpool *tp); - -/** - * lws_threadpool_destroy() - Destroy a threadpool - * - * \param tp: the threadpool object - * - * Waits for all worker threads to stop, ends the threads and frees the tp. - */ -LWS_VISIBLE LWS_EXTERN void -lws_threadpool_destroy(struct lws_threadpool *tp); - -/** - * lws_threadpool_enqueue() - Queue the task and run it on a worker thread when possible - * - * \param tp: the threadpool to queue / run on - * \param args: information about what to run - * \param format: printf-type format for the task name - * \param ...: printf type args for the task name format - * - * This asks for a task to run ASAP on a worker thread in threadpool \p tp. - * - * The args defines the wsi, a user-private pointer, a timeout in secs and - * a pointer to the task function. - * - * Returns NULL or an opaque pointer to the queued (or running, or completed) - * task. - * - * Once a task is created and enqueued, it can only be destroyed by calling - * lws_threadpool_task_status() on it after it has reached the state - * LWS_TP_STATUS_FINISHED or LWS_TP_STATUS_STOPPED. - */ -LWS_VISIBLE LWS_EXTERN struct lws_threadpool_task * -lws_threadpool_enqueue(struct lws_threadpool *tp, - const struct lws_threadpool_task_args *args, - const char *format, ...) LWS_FORMAT(3); - -/** - * lws_threadpool_dequeue() - Dequeue or try to stop a running task - * - * \param wsi: the wsi whose current task we want to eliminate - * - * Returns 0 is the task was dequeued or already compeleted, or 1 if the task - * has been asked to stop asynchronously. - * - * This doesn't free the task. It only shortcuts it to state - * LWS_TP_STATUS_STOPPED. lws_threadpool_task_status() must be performed on - * the task separately once it is in LWS_TP_STATUS_STOPPED to free the task. - * - * DEPRECATED: You should use lws_threadpool_dequeue_task() with - * lws_threadpool_get_task_wsi() / _ss() if you know there can only be one task - * per connection, or call it via lws_threadpool_foreach_task_wsi() / _ss() to - * get the tasks bound to the connection. - */ -LWS_VISIBLE LWS_EXTERN int -lws_threadpool_dequeue(struct lws *wsi) LWS_WARN_DEPRECATED; - -LWS_VISIBLE LWS_EXTERN int -lws_threadpool_dequeue_task(struct lws_threadpool_task *task); - - -/** - * lws_threadpool_task_status() - reap completed tasks - * - * \param wsi: the wsi to query the current task of - * \param task: receives a pointer to the opaque task - * \param user: receives a void * pointer to the task user data - * - * This is the equivalent of posix waitpid()... it returns the status of the - * task, and if the task is in state LWS_TP_STATUS_FINISHED or - * LWS_TP_STATUS_STOPPED, frees \p task. If in another state, the task - * continues to exist. - * - * This is designed to be called from the service thread. - * - * Its use is to make sure the service thread has seen the state of the task - * before deleting it. - * - * DEPRECATED... use lws_threadpool_task_status() instead and get the task - * pointer from lws_threadpool_get_task_wsi() / _ss() if you know there can only - * be one, else call it via lws_threadpool_foreach_task_wsi() / _ss() - */ -LWS_VISIBLE LWS_EXTERN enum lws_threadpool_task_status -lws_threadpool_task_status_wsi(struct lws *wsi, - struct lws_threadpool_task **task, void **user) - LWS_WARN_DEPRECATED; - -LWS_VISIBLE LWS_EXTERN enum lws_threadpool_task_status -lws_threadpool_task_status(struct lws_threadpool_task *task, void **user); - -LWS_VISIBLE LWS_EXTERN enum lws_threadpool_task_status -lws_threadpool_task_status_noreap(struct lws_threadpool_task *task); - -/** - * lws_threadpool_task_sync() - Indicate to a stalled task it may continue - * - * \param task: the task to unblock - * \param stop: 0 = run after unblock, 1 = when he unblocks, stop him - * - * Inform the task that the service thread has finished with the shared data - * and that the task, if blocked in LWS_TP_RETURN_SYNC, may continue. - * - * If the lws service context determined that the task must be aborted, it - * should still call this but with stop = 1, causing the task to finish. - */ -LWS_VISIBLE LWS_EXTERN void -lws_threadpool_task_sync(struct lws_threadpool_task *task, int stop); - -/** - * lws_threadpool_dump() - dump the state of a threadpool to the log - * - * \param tp: The threadpool to dump - * - * This locks the threadpool and then dumps the pending queue, the worker - * threads and the done queue, together with time information for how long - * the tasks have been in their current state, how long they have occupied a - * thread, etc. - * - * This only does anything on lws builds with CMAKE_BUILD_TYPE=DEBUG, otherwise - * while it still exists, it's a NOP. - */ - -LWS_VISIBLE LWS_EXTERN void -lws_threadpool_dump(struct lws_threadpool *tp); - - - -LWS_VISIBLE LWS_EXTERN struct lws_threadpool_task * -lws_threadpool_get_task_wsi(struct lws *wsi); - -#if defined(LWS_WITH_SECURE_STREAMS) -LWS_VISIBLE LWS_EXTERN struct lws_threadpool_task * -lws_threadpool_get_task_ss(struct lws_ss_handle *ss); -#endif - - -LWS_VISIBLE LWS_EXTERN int -lws_threadpool_foreach_task_wsi(struct lws *wsi, void *user, - int (*cb)(struct lws_threadpool_task *task, - void *user)); - -#if defined(LWS_WITH_SECURE_STREAMS) -LWS_VISIBLE LWS_EXTERN int -lws_threadpool_foreach_task_ss(struct lws_ss_handle *ss, void *user, - int (*cb)(struct lws_threadpool_task *task, void *user)); -#endif - - -//@} diff --git a/win64/include/websockets/libwebsockets/lws-timeout-timer.h b/win64/include/websockets/libwebsockets/lws-timeout-timer.h deleted file mode 100644 index 24d926ad..00000000 --- a/win64/include/websockets/libwebsockets/lws-timeout-timer.h +++ /dev/null @@ -1,362 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup timeout Connection timeouts - - APIs related to setting connection timeouts -*/ -//@{ - -/* - * NOTE: These public enums are part of the abi. If you want to add one, - * add it at where specified so existing users are unaffected. - */ -enum pending_timeout { - NO_PENDING_TIMEOUT = 0, - PENDING_TIMEOUT_AWAITING_PROXY_RESPONSE = 1, - PENDING_TIMEOUT_AWAITING_CONNECT_RESPONSE = 2, - PENDING_TIMEOUT_ESTABLISH_WITH_SERVER = 3, - PENDING_TIMEOUT_AWAITING_SERVER_RESPONSE = 4, - PENDING_TIMEOUT_AWAITING_PING = 5, - PENDING_TIMEOUT_CLOSE_ACK = 6, - PENDING_TIMEOUT_UNUSED1 = 7, - PENDING_TIMEOUT_SENT_CLIENT_HANDSHAKE = 8, - PENDING_TIMEOUT_SSL_ACCEPT = 9, - PENDING_TIMEOUT_HTTP_CONTENT = 10, - PENDING_TIMEOUT_AWAITING_CLIENT_HS_SEND = 11, - PENDING_FLUSH_STORED_SEND_BEFORE_CLOSE = 12, - PENDING_TIMEOUT_SHUTDOWN_FLUSH = 13, - PENDING_TIMEOUT_CGI = 14, - PENDING_TIMEOUT_HTTP_KEEPALIVE_IDLE = 15, - PENDING_TIMEOUT_WS_PONG_CHECK_SEND_PING = 16, - PENDING_TIMEOUT_WS_PONG_CHECK_GET_PONG = 17, - PENDING_TIMEOUT_CLIENT_ISSUE_PAYLOAD = 18, - PENDING_TIMEOUT_AWAITING_SOCKS_GREETING_REPLY = 19, - PENDING_TIMEOUT_AWAITING_SOCKS_CONNECT_REPLY = 20, - PENDING_TIMEOUT_AWAITING_SOCKS_AUTH_REPLY = 21, - PENDING_TIMEOUT_KILLED_BY_SSL_INFO = 22, - PENDING_TIMEOUT_KILLED_BY_PARENT = 23, - PENDING_TIMEOUT_CLOSE_SEND = 24, - PENDING_TIMEOUT_HOLDING_AH = 25, - PENDING_TIMEOUT_UDP_IDLE = 26, - PENDING_TIMEOUT_CLIENT_CONN_IDLE = 27, - PENDING_TIMEOUT_LAGGING = 28, - PENDING_TIMEOUT_THREADPOOL = 29, - PENDING_TIMEOUT_THREADPOOL_TASK = 30, - PENDING_TIMEOUT_KILLED_BY_PROXY_CLIENT_CLOSE = 31, - PENDING_TIMEOUT_USER_OK = 32, - - /****** add new things just above ---^ ******/ - - PENDING_TIMEOUT_USER_REASON_BASE = 1000 -}; - -#define lws_time_in_microseconds lws_now_usecs - -#define LWS_TO_KILL_ASYNC -1 -/**< If LWS_TO_KILL_ASYNC is given as the timeout sec in a lws_set_timeout() - * call, then the connection is marked to be killed at the next timeout - * check. This is how you should force-close the wsi being serviced if - * you are doing it outside the callback (where you should close by nonzero - * return). - */ -#define LWS_TO_KILL_SYNC -2 -/**< If LWS_TO_KILL_SYNC is given as the timeout sec in a lws_set_timeout() - * call, then the connection is closed before returning (which may delete - * the wsi). This should only be used where the wsi being closed is not the - * wsi currently being serviced. - */ -/** - * lws_set_timeout() - marks the wsi as subject to a timeout some seconds hence - * - * \param wsi: Websocket connection instance - * \param reason: timeout reason - * \param secs: how many seconds. You may set to LWS_TO_KILL_ASYNC to - * force the connection to timeout at the next opportunity, or - * LWS_TO_KILL_SYNC to close it synchronously if you know the - * wsi is not the one currently being serviced. - */ -LWS_VISIBLE LWS_EXTERN void -lws_set_timeout(struct lws *wsi, enum pending_timeout reason, int secs); - -/** - * lws_set_timeout_us() - marks the wsi as subject to a timeout some us hence - * - * \param wsi: Websocket connection instance - * \param reason: timeout reason - * \param us: 0 removes the timeout, otherwise number of us to wait - * - * Higher-resolution version of lws_set_timeout(). Actual resolution depends - * on platform and load, usually ms. - */ -void -lws_set_timeout_us(struct lws *wsi, enum pending_timeout reason, lws_usec_t us); - -/* helper for clearer LWS_TO_KILL_ASYNC / LWS_TO_KILL_SYNC usage */ -#define lws_wsi_close(w, to_kill) lws_set_timeout(wsi, 1, to_kill) - - -#define LWS_SET_TIMER_USEC_CANCEL ((lws_usec_t)-1ll) -#define LWS_USEC_PER_SEC ((lws_usec_t)1000000) - -/** - * lws_set_timer_usecs() - schedules a callback on the wsi in the future - * - * \param wsi: Websocket connection instance - * \param usecs: LWS_SET_TIMER_USEC_CANCEL removes any existing scheduled - * callback, otherwise number of microseconds in the future - * the callback will occur at. - * - * NOTE: event loop support for this: - * - * default poll() loop: yes - * libuv event loop: yes - * libev: not implemented (patch welcome) - * libevent: not implemented (patch welcome) - * - * After the deadline expires, the wsi will get a callback of type - * LWS_CALLBACK_TIMER and the timer is exhausted. The deadline may be - * continuously deferred by further calls to lws_set_timer_usecs() with a later - * deadline, or cancelled by lws_set_timer_usecs(wsi, -1). - * - * If the timer should repeat, lws_set_timer_usecs() must be called again from - * LWS_CALLBACK_TIMER. - * - * Accuracy depends on the platform and the load on the event loop or system... - * all that's guaranteed is the callback will come after the requested wait - * period. - */ -LWS_VISIBLE LWS_EXTERN void -lws_set_timer_usecs(struct lws *wsi, lws_usec_t usecs); - -#if defined(LWS_WITH_DEPRECATED_THINGS) - -/* - * lws_timed_callback_vh_protocol() - calls back a protocol on a vhost after - * the specified delay in seconds - * - * \param vh: the vhost to call back - * \param protocol: the protocol to call back - * \param reason: callback reason - * \param secs: how many seconds in the future to do the callback. - * - * DEPRECATED since v4.1 - * - * Callback the specified protocol with a fake wsi pointing to the specified - * vhost and protocol, with the specified reason, at the specified time in the - * future. - * - * Returns 0 if OK or 1 on OOM. - * - * In the multithreaded service case, the callback will occur in the same - * service thread context as the call to this api that requested it. If it is - * called from a non-service thread, tsi 0 will handle it. - */ -LWS_VISIBLE LWS_EXTERN int -lws_timed_callback_vh_protocol(struct lws_vhost *vh, - const struct lws_protocols *prot, - int reason, int secs) -LWS_WARN_DEPRECATED; - -/* - * lws_timed_callback_vh_protocol_us() - calls back a protocol on a vhost after - * the specified delay in us - * - * \param vh: the vhost to call back - * \param protocol: the protocol to call back - * \param reason: callback reason - * \param us: how many us in the future to do the callback. - * - * DEPRECATED since v4.1 - * - * Callback the specified protocol with a fake wsi pointing to the specified - * vhost and protocol, with the specified reason, at the specified time in the - * future. - * - * Returns 0 if OK or 1 on OOM. - * - * In the multithreaded service case, the callback will occur in the same - * service thread context as the call to this api that requested it. If it is - * called from a non-service thread, tsi 0 will handle it. - */ -LWS_VISIBLE LWS_EXTERN int -lws_timed_callback_vh_protocol_us(struct lws_vhost *vh, - const struct lws_protocols *prot, int reason, - lws_usec_t us) -LWS_WARN_DEPRECATED; - -#endif - -struct lws_sorted_usec_list; - -typedef void (*sul_cb_t)(struct lws_sorted_usec_list *sul); - -typedef struct lws_sorted_usec_list { - struct lws_dll2 list; /* simplify the code by keeping this at start */ - lws_usec_t us; - sul_cb_t cb; - uint32_t latency_us; /* us it may safely be delayed */ -} lws_sorted_usec_list_t; - -/* - * There are multiple sul owners to allow accounting for, a) events that must - * wake from suspend, and b) events that can be missued due to suspend - */ -#define LWS_COUNT_PT_SUL_OWNERS 2 - -#define LWSSULLI_MISS_IF_SUSPENDED 0 -#define LWSSULLI_WAKE_IF_SUSPENDED 1 - -/* - * lws_sul2_schedule() - schedule a callback - * - * \param context: the lws_context - * \param tsi: the thread service index (usually 0) - * \param flags: LWSSULLI_... - * \param sul: pointer to the sul element - * - * Generic callback-at-a-later time function. The callback happens on the - * event loop thread context. - * - * Although the api has us resultion, the actual resolution depends on the - * platform and may be, eg, 1ms. - * - * This doesn't allocate and doesn't fail. - * - * If flags contains LWSSULLI_WAKE_IF_SUSPENDED, the scheduled event is placed - * on a sul owner list that, if the system has entered low power suspend mode, - * tries to arrange that the system should wake from platform suspend just - * before the event is due. Scheduled events without this flag will be missed - * in the case the system is in suspend and nothing else happens to have woken - * it. - * - * You can call it again with another us value to change the delay or move the - * event to a different owner (ie, wake or miss on suspend). - */ -LWS_VISIBLE LWS_EXTERN void -lws_sul2_schedule(struct lws_context *context, int tsi, int flags, - lws_sorted_usec_list_t *sul); - -/* - * lws_sul_cancel() - cancel scheduled callback - * - * \param sul: pointer to the sul element - * - * If it's scheduled, remove the sul from its owning sorted list. - * If not scheduled, it's a NOP. - */ -LWS_VISIBLE LWS_EXTERN void -lws_sul_cancel(lws_sorted_usec_list_t *sul); - -/* - * lws_sul_earliest_wakeable_event() - get earliest wake-from-suspend event - * - * \param ctx: the lws context - * \param pearliest: pointer to lws_usec_t to take the result - * - * Either returns 1 if no pending event, or 0 and sets *pearliest to the - * MONOTONIC time of the current earliest next expected event. - */ -LWS_VISIBLE LWS_EXTERN int -lws_sul_earliest_wakeable_event(struct lws_context *ctx, lws_usec_t *pearliest); - -/* - * For backwards compatibility - * - * If us is LWS_SET_TIMER_USEC_CANCEL, the sul is removed from the scheduler. - * New code can use lws_sul_cancel() - */ - -LWS_VISIBLE LWS_EXTERN void -lws_sul_schedule(struct lws_context *ctx, int tsi, lws_sorted_usec_list_t *sul, - sul_cb_t _cb, lws_usec_t _us); -LWS_VISIBLE LWS_EXTERN void -lws_sul_schedule_wakesuspend(struct lws_context *ctx, int tsi, - lws_sorted_usec_list_t *sul, sul_cb_t _cb, - lws_usec_t _us); - -#if defined(LWS_WITH_SUL_DEBUGGING) -/** - * lws_sul_debug_zombies() - assert there are no scheduled sul in a given object - * - * \param ctx: lws_context - * \param po: pointer to the object that is about to be destroyed - * \param len: length of the object that is about to be destroyed - * \param destroy_description: string clue what any failure is related to - * - * This is an optional debugging helper that walks the sul scheduler lists - * confirming that there are no suls scheduled that live inside the object - * footprint described by po and len. When internal objects are about to be - * destroyed, like wsi / user_data or secure stream handles, if - * LWS_WITH_SUL_DEBUGGING is enabled the scheduler is checked for anything - * in the object being destroyed. If something found, an error is printed and - * an assert fired. - * - * Internal sul like timeouts should always be cleaned up correctly, but user - * suls in, eg, wsi user_data area, or in secure stream user allocation, may be - * the cause of difficult to find bugs if valgrind not available and the user - * code left a sul in the scheduler after destroying the object the sul was - * living in. - */ -LWS_VISIBLE LWS_EXTERN void -lws_sul_debug_zombies(struct lws_context *ctx, void *po, size_t len, - const char *destroy_description); -#else -#define lws_sul_debug_zombies(_a, _b, _c, _d) -#endif - -/* - * lws_validity_confirmed() - reset the validity timer for a network connection - * - * \param wsi: the connection that saw traffic proving the connection valid - * - * Network connections are subject to intervals defined by the context, the - * vhost if server connections, or the client connect info if a client - * connection. If the connection goes longer than the specified time since - * last observing traffic that can only happen if traffic is passing in both - * directions, then lws will try to create a PING transaction on the network - * connection. - * - * If the connection reaches the specified `.secs_since_valid_hangup` time - * still without any proof of validity, the connection will be closed. - * - * If the PONG comes, or user code observes traffic that satisfies the proof - * that both directions are passing traffic to the peer and calls this api, - * the connection validity timer is reset and the scheme repeats. - */ -LWS_VISIBLE LWS_EXTERN void -lws_validity_confirmed(struct lws *wsi); - -/* - * These are not normally needed, they're exported for the case there's code - * using lws_sul for which lws is an optional link dependency. - */ - -LWS_VISIBLE LWS_EXTERN int -__lws_sul_insert(lws_dll2_owner_t *own, lws_sorted_usec_list_t *sul); - -LWS_VISIBLE LWS_EXTERN lws_usec_t -__lws_sul_service_ripe(lws_dll2_owner_t *own, int own_len, lws_usec_t usnow); - -///@} diff --git a/win64/include/websockets/libwebsockets/lws-tokenize.h b/win64/include/websockets/libwebsockets/lws-tokenize.h deleted file mode 100644 index 70379de0..00000000 --- a/win64/include/websockets/libwebsockets/lws-tokenize.h +++ /dev/null @@ -1,253 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/* Do not treat - as a terminal character, so "my-token" is one token */ -#define LWS_TOKENIZE_F_MINUS_NONTERM (1 << 0) -/* Separately report aggregate colon-delimited tokens */ -#define LWS_TOKENIZE_F_AGG_COLON (1 << 1) -/* Enforce sequencing for a simple token , token , token ... list */ -#define LWS_TOKENIZE_F_COMMA_SEP_LIST (1 << 2) -/* Allow more characters in the tokens and less delimiters... default is - * only alphanumeric + underscore in tokens */ -#define LWS_TOKENIZE_F_RFC7230_DELIMS (1 << 3) -/* Do not treat . as a terminal character, so "warmcat.com" is one token */ -#define LWS_TOKENIZE_F_DOT_NONTERM (1 << 4) -/* If something starts looking like a float, like 1.2, force to be string token. - * This lets you receive dotted-quads like 192.168.0.1 as string tokens, and - * avoids illegal float format detection like 1.myserver.com */ -#define LWS_TOKENIZE_F_NO_FLOATS (1 << 5) -/* Instead of LWS_TOKZE_INTEGER, report integers as any other string token */ -#define LWS_TOKENIZE_F_NO_INTEGERS (1 << 6) -/* # makes the rest of the line a comment */ -#define LWS_TOKENIZE_F_HASH_COMMENT (1 << 7) -/* Do not treat / as a terminal character, so "multipart/related" is one token */ -#define LWS_TOKENIZE_F_SLASH_NONTERM (1 << 8) - -typedef enum { - - LWS_TOKZE_ERRS = 5, /* the number of errors defined */ - - LWS_TOKZE_ERR_BROKEN_UTF8 = -5, /* malformed or partial utf8 */ - LWS_TOKZE_ERR_UNTERM_STRING = -4, /* ended while we were in "" */ - LWS_TOKZE_ERR_MALFORMED_FLOAT = -3, /* like 0..1 or 0.1.1 */ - LWS_TOKZE_ERR_NUM_ON_LHS = -2, /* like 123= or 0.1= */ - LWS_TOKZE_ERR_COMMA_LIST = -1, /* like ",tok", or, "tok,," */ - - LWS_TOKZE_ENDED = 0, /* no more content */ - - /* Note: results have ordinal 1+, EOT is 0 and errors are < 0 */ - - LWS_TOKZE_DELIMITER, /* a delimiter appeared */ - LWS_TOKZE_TOKEN, /* a token appeared */ - LWS_TOKZE_INTEGER, /* an integer appeared */ - LWS_TOKZE_FLOAT, /* a float appeared */ - LWS_TOKZE_TOKEN_NAME_EQUALS, /* token [whitespace] = */ - LWS_TOKZE_TOKEN_NAME_COLON, /* token [whitespace] : (only with - LWS_TOKENIZE_F_AGG_COLON flag) */ - LWS_TOKZE_QUOTED_STRING, /* "*", where * may have any char */ - -} lws_tokenize_elem; - -/* - * helper enums to allow caller to enforce legal delimiter sequencing, eg - * disallow "token,,token", "token,", and ",token" - */ - -enum lws_tokenize_delimiter_tracking { - LWSTZ_DT_NEED_FIRST_CONTENT, - LWSTZ_DT_NEED_DELIM, - LWSTZ_DT_NEED_NEXT_CONTENT, -}; - -typedef struct lws_tokenize { - const char *start; /**< set to the start of the string to tokenize */ - const char *token; /**< the start of an identified token or delimiter */ - size_t len; /**< set to the length of the string to tokenize */ - size_t token_len; /**< the length of the identied token or delimiter */ - - uint16_t flags; /**< optional LWS_TOKENIZE_F_ flags, or 0 */ - uint8_t delim; - - int8_t e; /**< convenient for storing lws_tokenize return */ -} lws_tokenize_t; - -/** - * lws_tokenize() - breaks down a string into tokens and delimiters in-place - * - * \param ts: the lws_tokenize struct to init - * \param start: the string to tokenize - * \param flags: LWS_TOKENIZE_F_ option flags - * - * This initializes the tokenize struct to point to the given string, and - * sets the length to 2GiB - 1 (so there must be a terminating NUL)... you can - * override this requirement by setting ts.len yourself before using it. - * - * .delim is also initialized to LWSTZ_DT_NEED_FIRST_CONTENT. - */ - -LWS_VISIBLE LWS_EXTERN void -lws_tokenize_init(struct lws_tokenize *ts, const char *start, int flags); - -/** - * lws_tokenize() - breaks down a string into tokens and delimiters in-place - * - * \param ts: the lws_tokenize struct with information and state on what to do - * - * The \p ts struct should have its start, len and flags members initialized to - * reflect the string to be tokenized and any options. - * - * Then `lws_tokenize()` may be called repeatedly on the struct, returning one - * of `lws_tokenize_elem` each time, and with the struct's `token` and - * `token_len` members set to describe the content of the delimiter or token - * payload each time. - * - * There are no allocations during the process. - * - * returns lws_tokenize_elem that was identified (LWS_TOKZE_ENDED means reached - * the end of the string). - */ - -LWS_VISIBLE LWS_EXTERN lws_tokenize_elem -lws_tokenize(struct lws_tokenize *ts); - -/** - * lws_tokenize_cstr() - copy token string to NUL-terminated buffer - * - * \param ts: pointer to lws_tokenize struct to operate on - * \param str: destination buffer - * \pparam max: bytes in destination buffer - * - * returns 0 if OK or nonzero if the string + NUL won't fit. - */ - -LWS_VISIBLE LWS_EXTERN int -lws_tokenize_cstr(struct lws_tokenize *ts, char *str, size_t max); - - -/* - * lws_strexp: flexible string expansion helper api - * - * This stateful helper can handle multiple separate input chunks and multiple - * output buffer loads with arbitrary boundaries between literals and expanded - * symbols. This allows it to handle fragmented input as well as arbitrarily - * long symbol expansions that are bigger than the output buffer itself. - * - * A user callback is used to convert symbol names to the symbol value. - * - * A single byte buffer for input and another for output can process any - * length substitution then. The state object is around 64 bytes on a 64-bit - * system and it only uses 8 bytes stack. - */ - - -typedef int (*lws_strexp_expand_cb)(void *priv, const char *name, char *out, - size_t *pos, size_t olen, size_t *exp_ofs); - -typedef struct lws_strexp { - char name[32]; - lws_strexp_expand_cb cb; - void *priv; - char *out; - size_t olen; - size_t pos; - - size_t exp_ofs; - - uint8_t name_pos; - char state; -} lws_strexp_t; - -enum { - LSTRX_DONE, /* it completed OK */ - LSTRX_FILLED_OUT, /* out buf filled and needs resetting */ - LSTRX_FATAL_NAME_TOO_LONG = -1, /* fatal */ - LSTRX_FATAL_NAME_UNKNOWN = -2, -}; - - -/** - * lws_strexp_init() - initialize an lws_strexp_t for use - * - * \p exp: the exp object to init - * \p priv: the user's object pointer to pass to callback - * \p cb: the callback to expand named objects - * \p out: the start of the output buffer, or NULL just to get the length - * \p olen: the length of the output buffer in bytes - * - * Prepares an lws_strexp_t for use and sets the initial output buffer - * - * If \p out is NULL, substitution proceeds normally, but no output is produced, - * only the length is returned. olen should be set to the largest feasible - * overall length. To use this mode, the substitution callback must also check - * for NULL \p out and avoid producing the output. - */ -LWS_VISIBLE LWS_EXTERN void -lws_strexp_init(lws_strexp_t *exp, void *priv, lws_strexp_expand_cb cb, - char *out, size_t olen); - -/** - * lws_strexp_reset_out() - reset the output buffer on an existing strexp - * - * \p exp: the exp object to init - * \p out: the start of the output buffer, or NULL to just get length - * \p olen: the length of the output buffer in bytes - * - * Provides a new output buffer for lws_strexp_expand() to continue to write - * into. It can be the same as the old one if it has been copied out or used. - * The position of the next write will be reset to the start of the given buf. - * - * If \p out is NULL, substitution proceeds normally, but no output is produced, - * only the length is returned. \p olen should be set to the largest feasible - * overall length. To use this mode, the substitution callback must also check - * for NULL \p out and avoid producing the output. - */ -LWS_VISIBLE LWS_EXTERN void -lws_strexp_reset_out(lws_strexp_t *exp, char *out, size_t olen); - -/** - * lws_strexp_expand() - copy / expand a string into the output buffer - * - * \p exp: the exp object for the copy / expansion - * \p in: the start of the next input data - * \p len: the length of the input data - * \p pused_in: pointer to write the amount of input used - * \p pused_out: pointer to write the amount of output used - * - * Copies in to the output buffer set in exp, expanding any ${name} tokens using - * the callback. \p *pused_in is set to the number of input chars used and - * \p *pused_out the number of output characters used - * - * May return LSTRX_FILLED_OUT early with *pused < len if the output buffer is - * filled. Handle the output buffer and reset it with lws_strexp_reset_out() - * before calling again with adjusted in / len to continue. - * - * In the case of large expansions, the expansion itself may fill the output - * buffer, in which case the expansion callback returns the LSTRX_FILLED_OUT - * and will be called again to continue with its *exp_ofs parameter set - * appropriately. - */ -LWS_VISIBLE LWS_EXTERN int -lws_strexp_expand(lws_strexp_t *exp, const char *in, size_t len, - size_t *pused_in, size_t *pused_out); - diff --git a/win64/include/websockets/libwebsockets/lws-vfs.h b/win64/include/websockets/libwebsockets/lws-vfs.h deleted file mode 100644 index 4b0c7073..00000000 --- a/win64/include/websockets/libwebsockets/lws-vfs.h +++ /dev/null @@ -1,273 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup fops file operation wrapping - * - * ##File operation wrapping - * - * Use these helper functions if you want to access a file from the perspective - * of a specific wsi, which is usually the case. If you just want contextless - * file access, use the fops callbacks directly with NULL wsi instead of these - * helpers. - * - * If so, then it calls the platform handler or user overrides where present - * (as defined in info->fops) - * - * The advantage from all this is user code can be portable for file operations - * without having to deal with differences between platforms. - */ -//@{ - -/** struct lws_plat_file_ops - Platform-specific file operations - * - * These provide platform-agnostic ways to deal with filesystem access in the - * library and in the user code. - */ - -#if defined(LWS_PLAT_FREERTOS) -/* sdk preprocessor defs? compiler issue? gets confused with member names */ -#define LWS_FOP_OPEN _open -#define LWS_FOP_CLOSE _close -#define LWS_FOP_SEEK_CUR _seek_cur -#define LWS_FOP_READ _read -#define LWS_FOP_WRITE _write -#else -#define LWS_FOP_OPEN open -#define LWS_FOP_CLOSE close -#define LWS_FOP_SEEK_CUR seek_cur -#define LWS_FOP_READ read -#define LWS_FOP_WRITE write -#endif - -#define LWS_FOP_FLAGS_MASK ((1 << 23) - 1) -#define LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP (1 << 24) -#define LWS_FOP_FLAG_COMPR_IS_GZIP (1 << 25) -#define LWS_FOP_FLAG_MOD_TIME_VALID (1 << 26) -#define LWS_FOP_FLAG_VIRTUAL (1 << 27) - -struct lws_plat_file_ops; - -struct lws_fop_fd { - lws_filefd_type fd; - /**< real file descriptor related to the file... */ - const struct lws_plat_file_ops *fops; - /**< fops that apply to this fop_fd */ - void *filesystem_priv; - /**< ignored by lws; owned by the fops handlers */ - lws_filepos_t pos; - /**< generic "position in file" */ - lws_filepos_t len; - /**< generic "length of file" */ - lws_fop_flags_t flags; - /**< copy of the returned flags */ - uint32_t mod_time; - /**< optional "modification time of file", only valid if .open() - * set the LWS_FOP_FLAG_MOD_TIME_VALID flag */ -}; -typedef struct lws_fop_fd *lws_fop_fd_t; - -struct lws_fops_index { - const char *sig; /* NULL or vfs signature, eg, ".zip/" */ - uint8_t len; /* length of above string */ -}; - -struct lws_plat_file_ops { - lws_fop_fd_t (*LWS_FOP_OPEN)(const struct lws_plat_file_ops *fops, - const char *filename, const char *vpath, - lws_fop_flags_t *flags); - /**< Open file (always binary access if plat supports it) - * vpath may be NULL, or if the fops understands it, the point at which - * the filename's virtual part starts. - * *flags & LWS_FOP_FLAGS_MASK should be set to O_RDONLY or O_RDWR. - * If the file may be gzip-compressed, - * LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP is set. If it actually is - * gzip-compressed, then the open handler should OR - * LWS_FOP_FLAG_COMPR_IS_GZIP on to *flags before returning. - */ - int (*LWS_FOP_CLOSE)(lws_fop_fd_t *fop_fd); - /**< close file AND set the pointer to NULL */ - lws_fileofs_t (*LWS_FOP_SEEK_CUR)(lws_fop_fd_t fop_fd, - lws_fileofs_t offset_from_cur_pos); - /**< seek from current position */ - int (*LWS_FOP_READ)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, - uint8_t *buf, lws_filepos_t len); - /**< Read from file, on exit *amount is set to amount actually read */ - int (*LWS_FOP_WRITE)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, - uint8_t *buf, lws_filepos_t len); - /**< Write to file, on exit *amount is set to amount actually written */ - - struct lws_fops_index fi[3]; - /**< vfs path signatures implying use of this fops */ - - const struct lws_plat_file_ops *next; - /**< NULL or next fops in list */ - - /* Add new things just above here ---^ - * This is part of the ABI, don't needlessly break compatibility */ -}; - -/** - * lws_get_fops() - get current file ops - * - * \param context: context - */ -LWS_VISIBLE LWS_EXTERN struct lws_plat_file_ops * LWS_WARN_UNUSED_RESULT -lws_get_fops(struct lws_context *context); -LWS_VISIBLE LWS_EXTERN void -lws_set_fops(struct lws_context *context, const struct lws_plat_file_ops *fops); -/** - * lws_vfs_tell() - get current file position - * - * \param fop_fd: fop_fd we are asking about - */ -LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT -lws_vfs_tell(lws_fop_fd_t fop_fd); -/** - * lws_vfs_get_length() - get current file total length in bytes - * - * \param fop_fd: fop_fd we are asking about - */ -LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT -lws_vfs_get_length(lws_fop_fd_t fop_fd); -/** - * lws_vfs_get_mod_time() - get time file last modified - * - * \param fop_fd: fop_fd we are asking about - */ -LWS_VISIBLE LWS_EXTERN uint32_t LWS_WARN_UNUSED_RESULT -lws_vfs_get_mod_time(lws_fop_fd_t fop_fd); -/** - * lws_vfs_file_seek_set() - seek relative to start of file - * - * \param fop_fd: fop_fd we are seeking in - * \param offset: offset from start of file - */ -LWS_VISIBLE LWS_EXTERN lws_fileofs_t -lws_vfs_file_seek_set(lws_fop_fd_t fop_fd, lws_fileofs_t offset); -/** - * lws_vfs_file_seek_end() - seek relative to end of file - * - * \param fop_fd: fop_fd we are seeking in - * \param offset: offset from start of file - */ -LWS_VISIBLE LWS_EXTERN lws_fileofs_t -lws_vfs_file_seek_end(lws_fop_fd_t fop_fd, lws_fileofs_t offset); - -extern struct lws_plat_file_ops fops_zip; - -/** - * lws_plat_file_open() - open vfs filepath - * - * \param fops: file ops struct that applies to this descriptor - * \param vfs_path: filename to open - * \param flags: pointer to open flags - * - * The vfs_path is scanned for known fops signatures, and the open directed - * to any matching fops open. - * - * User code should use this api to perform vfs opens. - * - * returns semi-opaque handle - */ -LWS_VISIBLE LWS_EXTERN lws_fop_fd_t LWS_WARN_UNUSED_RESULT -lws_vfs_file_open(const struct lws_plat_file_ops *fops, const char *vfs_path, - lws_fop_flags_t *flags); - -/** - * lws_plat_file_close() - close file - * - * \param fop_fd: file handle to close - */ -static LWS_INLINE int -lws_vfs_file_close(lws_fop_fd_t *fop_fd) -{ - if (*fop_fd && (*fop_fd)->fops) - return (*fop_fd)->fops->LWS_FOP_CLOSE(fop_fd); - - return 0; -} - -/** - * lws_plat_file_seek_cur() - close file - * - * - * \param fop_fd: file handle - * \param offset: position to seek to - */ -static LWS_INLINE lws_fileofs_t -lws_vfs_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset) -{ - return fop_fd->fops->LWS_FOP_SEEK_CUR(fop_fd, offset); -} -/** - * lws_plat_file_read() - read from file - * - * \param fop_fd: file handle - * \param amount: how much to read (rewritten by call) - * \param buf: buffer to write to - * \param len: max length - */ -static LWS_INLINE int LWS_WARN_UNUSED_RESULT -lws_vfs_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, - uint8_t *buf, lws_filepos_t len) -{ - return fop_fd->fops->LWS_FOP_READ(fop_fd, amount, buf, len); -} -/** - * lws_plat_file_write() - write from file - * - * \param fop_fd: file handle - * \param amount: how much to write (rewritten by call) - * \param buf: buffer to read from - * \param len: max length - */ -static LWS_INLINE int LWS_WARN_UNUSED_RESULT -lws_vfs_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, - uint8_t *buf, lws_filepos_t len) -{ - return fop_fd->fops->LWS_FOP_WRITE(fop_fd, amount, buf, len); -} - -/* these are the platform file operations implementations... they can - * be called directly and used in fops arrays - */ - -LWS_VISIBLE LWS_EXTERN lws_fop_fd_t -_lws_plat_file_open(const struct lws_plat_file_ops *fops, const char *filename, - const char *vpath, lws_fop_flags_t *flags); -LWS_VISIBLE LWS_EXTERN int -_lws_plat_file_close(lws_fop_fd_t *fop_fd); -LWS_VISIBLE LWS_EXTERN lws_fileofs_t -_lws_plat_file_seek_cur(lws_fop_fd_t fop_fd, lws_fileofs_t offset); -LWS_VISIBLE LWS_EXTERN int -_lws_plat_file_read(lws_fop_fd_t fop_fd, lws_filepos_t *amount, - uint8_t *buf, lws_filepos_t len); -LWS_VISIBLE LWS_EXTERN int -_lws_plat_file_write(lws_fop_fd_t fop_fd, lws_filepos_t *amount, - uint8_t *buf, lws_filepos_t len); - -LWS_VISIBLE LWS_EXTERN int -lws_alloc_vfs_file(struct lws_context *context, const char *filename, - uint8_t **buf, lws_filepos_t *amount); -//@} diff --git a/win64/include/websockets/libwebsockets/lws-write.h b/win64/include/websockets/libwebsockets/lws-write.h deleted file mode 100644 index 5ba37df0..00000000 --- a/win64/include/websockets/libwebsockets/lws-write.h +++ /dev/null @@ -1,264 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup sending-data Sending data - - APIs related to writing data on a connection -*/ -//@{ -#if !defined(LWS_SIZEOFPTR) -#define LWS_SIZEOFPTR ((int)sizeof (void *)) -#endif - -#if defined(__x86_64__) -#define _LWS_PAD_SIZE 16 /* Intel recommended for best performance */ -#else -#define _LWS_PAD_SIZE LWS_SIZEOFPTR /* Size of a pointer on the target arch */ -#endif -#define _LWS_PAD(n) (((n) % _LWS_PAD_SIZE) ? \ - ((n) + (_LWS_PAD_SIZE - ((n) % _LWS_PAD_SIZE))) : (n)) -/* last 2 is for lws-meta */ -#define LWS_PRE _LWS_PAD(4 + 10 + 2) -/* used prior to 1.7 and retained for backward compatibility */ -#define LWS_SEND_BUFFER_PRE_PADDING LWS_PRE -#define LWS_SEND_BUFFER_POST_PADDING 0 - -#define LWS_WRITE_RAW LWS_WRITE_HTTP - -/* - * NOTE: These public enums are part of the abi. If you want to add one, - * add it at where specified so existing users are unaffected. - */ -enum lws_write_protocol { - LWS_WRITE_TEXT = 0, - /**< Send a ws TEXT message,the pointer must have LWS_PRE valid - * memory behind it. - * - * The receiver expects only valid utf-8 in the payload */ - LWS_WRITE_BINARY = 1, - /**< Send a ws BINARY message, the pointer must have LWS_PRE valid - * memory behind it. - * - * Any sequence of bytes is valid */ - LWS_WRITE_CONTINUATION = 2, - /**< Continue a previous ws message, the pointer must have LWS_PRE valid - * memory behind it */ - LWS_WRITE_HTTP = 3, - /**< Send HTTP content */ - - /* LWS_WRITE_CLOSE is handled by lws_close_reason() */ - LWS_WRITE_PING = 5, - LWS_WRITE_PONG = 6, - - /* Same as write_http but we know this write ends the transaction */ - LWS_WRITE_HTTP_FINAL = 7, - - /* HTTP2 */ - - LWS_WRITE_HTTP_HEADERS = 8, - /**< Send http headers (http2 encodes this payload and LWS_WRITE_HTTP - * payload differently, http 1.x links also handle this correctly. so - * to be compatible with both in the future,header response part should - * be sent using this regardless of http version expected) - */ - LWS_WRITE_HTTP_HEADERS_CONTINUATION = 9, - /**< Continuation of http/2 headers - */ - - /****** add new things just above ---^ ******/ - - /* flags */ - - LWS_WRITE_BUFLIST = 0x20, - /**< Don't actually write it... stick it on the output buflist and - * write it as soon as possible. Useful if you learn you have to - * write something, have the data to write to hand but the timing is - * unrelated as to whether the connection is writable or not, and were - * otherwise going to have to allocate a temp buffer and write it - * later anyway */ - - LWS_WRITE_NO_FIN = 0x40, - /**< This part of the message is not the end of the message */ - - LWS_WRITE_H2_STREAM_END = 0x80, - /**< Flag indicates this packet should go out with STREAM_END if h2 - * STREAM_END is allowed on DATA or HEADERS. - */ - - LWS_WRITE_CLIENT_IGNORE_XOR_MASK = 0x80 - /**< client packet payload goes out on wire unmunged - * only useful for security tests since normal servers cannot - * decode the content if used */ -}; - -/* used with LWS_CALLBACK_CHILD_WRITE_VIA_PARENT */ - -struct lws_write_passthru { - struct lws *wsi; - unsigned char *buf; - size_t len; - enum lws_write_protocol wp; -}; - - -/** - * lws_write() - Apply protocol then write data to client - * - * \param wsi: Websocket instance (available from user callback) - * \param buf: The data to send. For data being sent on a websocket - * connection (ie, not default http), this buffer MUST have - * LWS_PRE bytes valid BEFORE the pointer. - * This is so the protocol header data can be added in-situ. - * \param len: Count of the data bytes in the payload starting from buf - * \param protocol: Use LWS_WRITE_HTTP to reply to an http connection, and one - * of LWS_WRITE_BINARY or LWS_WRITE_TEXT to send appropriate - * data on a websockets connection. Remember to allow the extra - * bytes before and after buf if LWS_WRITE_BINARY or LWS_WRITE_TEXT - * are used. - * - * This function provides the way to issue data back to the client - * for both http and websocket protocols. - * - * IMPORTANT NOTICE! - * - * When sending with websocket protocol - * - * LWS_WRITE_TEXT, - * LWS_WRITE_BINARY, - * LWS_WRITE_CONTINUATION, - * LWS_WRITE_PING, - * LWS_WRITE_PONG, - * - * or sending on http/2, - * - * the send buffer has to have LWS_PRE bytes valid BEFORE the buffer pointer you - * pass to lws_write(). Since you'll probably want to use http/2 before too - * long, it's wise to just always do this with lws_write buffers... LWS_PRE is - * typically 16 bytes it's not going to hurt usually. - * - * start of alloc ptr passed to lws_write end of allocation - * | | | - * v <-- LWS_PRE bytes --> v v - * [---------------- allocated memory ---------------] - * (for lws use) [====== user buffer ======] - * - * This allows us to add protocol info before and after the data, and send as - * one packet on the network without payload copying, for maximum efficiency. - * - * So for example you need this kind of code to use lws_write with a - * 128-byte payload - * - * char buf[LWS_PRE + 128]; - * - * // fill your part of the buffer... for example here it's all zeros - * memset(&buf[LWS_PRE], 0, 128); - * - * lws_write(wsi, &buf[LWS_PRE], 128, LWS_WRITE_TEXT); - * - * LWS_PRE is at least the frame nonce + 2 header + 8 length - * LWS_SEND_BUFFER_POST_PADDING is deprecated, it's now 0 and can be left off. - * The example apps no longer use it. - * - * Pad LWS_PRE to the CPU word size, so that word references - * to the address immediately after the padding won't cause an unaligned access - * error. Sometimes for performance reasons the recommended padding is even - * larger than sizeof(void *). - * - * In the case of sending using websocket protocol, be sure to allocate - * valid storage before and after buf as explained above. This scheme - * allows maximum efficiency of sending data and protocol in a single - * packet while not burdening the user code with any protocol knowledge. - * - * Return may be -1 for a fatal error needing connection close, or the - * number of bytes sent. - * - * Truncated Writes - * ================ - * - * The OS may not accept everything you asked to write on the connection. - * - * Posix defines POLLOUT indication from poll() to show that the connection - * will accept more write data, but it doesn't specifiy how much. It may just - * accept one byte of whatever you wanted to send. - * - * LWS will buffer the remainder automatically, and send it out autonomously. - * - * During that time, WRITABLE callbacks will be suppressed. - * - * This is to handle corner cases where unexpectedly the OS refuses what we - * usually expect it to accept. You should try to send in chunks that are - * almost always accepted in order to avoid the inefficiency of the buffering. - */ -LWS_VISIBLE LWS_EXTERN int -lws_write(struct lws *wsi, unsigned char *buf, size_t len, - enum lws_write_protocol protocol); - -/* helper for case where buffer may be const */ -#define lws_write_http(wsi, buf, len) \ - lws_write(wsi, (unsigned char *)(buf), len, LWS_WRITE_HTTP) - -/** - * lws_write_ws_flags() - Helper for multi-frame ws message flags - * - * \param initial: the lws_write flag to use for the start fragment, eg, - * LWS_WRITE_TEXT - * \param is_start: nonzero if this is the first fragment of the message - * \param is_end: nonzero if this is the last fragment of the message - * - * Returns the correct LWS_WRITE_ flag to use for each fragment of a message - * in turn. - */ -static LWS_INLINE int -lws_write_ws_flags(int initial, int is_start, int is_end) -{ - int r; - - if (is_start) - r = initial; - else - r = LWS_WRITE_CONTINUATION; - - if (!is_end) - r |= LWS_WRITE_NO_FIN; - - return r; -} - -/** - * lws_raw_transaction_completed() - Helper for flushing before close - * - * \param wsi: the struct lws to operate on - * - * Returns -1 if the wsi can close now. However if there is buffered, unsent - * data, the wsi is marked as to be closed when the output buffer data is - * drained, and it returns 0. - * - * For raw cases where the transaction completed without failure, - * `return lws_raw_transaction_completed(wsi)` should better be used than - * return -1. - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_raw_transaction_completed(struct lws *wsi); - -///@} diff --git a/win64/include/websockets/libwebsockets/lws-writeable.h b/win64/include/websockets/libwebsockets/lws-writeable.h deleted file mode 100644 index 7f84d4cc..00000000 --- a/win64/include/websockets/libwebsockets/lws-writeable.h +++ /dev/null @@ -1,246 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** \defgroup callback-when-writeable Callback when writeable - * - * ##Callback When Writeable - * - * lws can only write data on a connection when it is able to accept more - * data without blocking. - * - * So a basic requirement is we should only use the lws_write() apis when the - * connection we want to write on says that he can accept more data. - * - * When lws cannot complete your send at the time, it will buffer the data - * and send it in the background, suppressing any further WRITEABLE callbacks - * on that connection until it completes. So it is important to write new - * things in a new writeable callback. - * - * These apis reflect the various ways we can indicate we would like to be - * called back when one or more connections is writeable. - */ -///@{ - -/** - * lws_callback_on_writable() - Request a callback when this socket - * becomes able to be written to without - * blocking - * - * \param wsi: Websocket connection instance to get callback for - * - * - Which: only this wsi - * - When: when the individual connection becomes writeable - * - What: LWS_CALLBACK_*_WRITEABLE - */ -LWS_VISIBLE LWS_EXTERN int -lws_callback_on_writable(struct lws *wsi); - -/** - * lws_callback_on_writable_all_protocol() - Request a callback for all - * connections using the given protocol when it - * becomes possible to write to each socket without - * blocking in turn. - * - * \param context: lws_context - * \param protocol: Protocol whose connections will get callbacks - * - * - Which: connections using this protocol on ANY VHOST - * - When: when the individual connection becomes writeable - * - What: LWS_CALLBACK_*_WRITEABLE - */ -LWS_VISIBLE LWS_EXTERN int -lws_callback_on_writable_all_protocol(const struct lws_context *context, - const struct lws_protocols *protocol); - -/** - * lws_callback_on_writable_all_protocol_vhost() - Request a callback for - * all connections on same vhost using the given protocol - * when it becomes possible to write to each socket without - * blocking in turn. - * - * \param vhost: Only consider connections on this lws_vhost - * \param protocol: Protocol whose connections will get callbacks - * - * - Which: connections using this protocol on GIVEN VHOST ONLY - * - When: when the individual connection becomes writeable - * - What: LWS_CALLBACK_*_WRITEABLE - */ -LWS_VISIBLE LWS_EXTERN int -lws_callback_on_writable_all_protocol_vhost(const struct lws_vhost *vhost, - const struct lws_protocols *protocol); - -/** - * lws_callback_all_protocol() - Callback all connections using - * the given protocol with the given reason - * - * \param context: lws_context - * \param protocol: Protocol whose connections will get callbacks - * \param reason: Callback reason index - * - * - Which: connections using this protocol on ALL VHOSTS - * - When: before returning - * - What: reason - * - * This isn't normally what you want... normally any update of connection- - * specific information can wait until a network-related callback like rx, - * writable, or close. - */ -LWS_VISIBLE LWS_EXTERN int -lws_callback_all_protocol(struct lws_context *context, - const struct lws_protocols *protocol, int reason); - -/** - * lws_callback_all_protocol_vhost() - Callback all connections using - * the given protocol with the given reason. This is - * deprecated since v2.4: use lws_callback_all_protocol_vhost_args - * - * \param vh: Vhost whose connections will get callbacks - * \param protocol: Which protocol to match. NULL means all. - * \param reason: Callback reason index - * - * - Which: connections using this protocol on GIVEN VHOST ONLY - * - When: now - * - What: reason - */ -LWS_VISIBLE LWS_EXTERN int -lws_callback_all_protocol_vhost(struct lws_vhost *vh, - const struct lws_protocols *protocol, - int reason) -LWS_WARN_DEPRECATED; - -/** - * lws_callback_all_protocol_vhost_args() - Callback all connections using - * the given protocol with the given reason and args - * - * \param vh: Vhost whose connections will get callbacks - * \param protocol: Which protocol to match. NULL means all. - * \param reason: Callback reason index - * \param argp: Callback "in" parameter - * \param len: Callback "len" parameter - * - * - Which: connections using this protocol on GIVEN VHOST ONLY - * - When: now - * - What: reason - */ -LWS_VISIBLE int -lws_callback_all_protocol_vhost_args(struct lws_vhost *vh, - const struct lws_protocols *protocol, - int reason, void *argp, size_t len); - -/** - * lws_callback_vhost_protocols() - Callback all protocols enabled on a vhost - * with the given reason - * - * \param wsi: wsi whose vhost will get callbacks - * \param reason: Callback reason index - * \param in: in argument to callback - * \param len: len argument to callback - * - * - Which: connections using this protocol on same VHOST as wsi ONLY - * - When: now - * - What: reason - * - * This is deprecated since v2.5, use lws_callback_vhost_protocols_vhost() - * which takes the pointer to the vhost directly without using or needing the - * wsi. - */ -LWS_VISIBLE LWS_EXTERN int -lws_callback_vhost_protocols(struct lws *wsi, int reason, void *in, int len) -LWS_WARN_DEPRECATED; - -/** - * lws_callback_vhost_protocols_vhost() - Callback all protocols enabled on a vhost - * with the given reason - * - * \param vh: vhost that will get callbacks - * \param reason: Callback reason index - * \param in: in argument to callback - * \param len: len argument to callback - * - * - Which: connections using this protocol on same VHOST as wsi ONLY - * - When: now - * - What: reason - */ -LWS_VISIBLE LWS_EXTERN int -lws_callback_vhost_protocols_vhost(struct lws_vhost *vh, int reason, void *in, - size_t len); - -LWS_VISIBLE LWS_EXTERN int -lws_callback_http_dummy(struct lws *wsi, enum lws_callback_reasons reason, - void *user, void *in, size_t len); - -/** - * lws_get_socket_fd() - returns the socket file descriptor - * - * This is needed to use sendto() on UDP raw sockets - * - * \param wsi: Websocket connection instance - */ -LWS_VISIBLE LWS_EXTERN lws_sockfd_type -lws_get_socket_fd(struct lws *wsi); - -/** - * lws_get_peer_write_allowance() - get the amount of data writeable to peer - * if known - * - * \param wsi: Websocket connection instance - * - * if the protocol does not have any guidance, returns -1. Currently only - * http2 connections get send window information from this API. But your code - * should use it so it can work properly with any protocol. - * - * If nonzero return is the amount of payload data the peer or intermediary has - * reported it has buffer space for. That has NO relationship with the amount - * of buffer space your OS can accept on this connection for a write action. - * - * This number represents the maximum you could send to the peer or intermediary - * on this connection right now without the protocol complaining. - * - * lws manages accounting for send window updates and payload writes - * automatically, so this number reflects the situation at the peer or - * intermediary dynamically. - */ -LWS_VISIBLE LWS_EXTERN lws_fileofs_t -lws_get_peer_write_allowance(struct lws *wsi); - -/** - * lws_wsi_tx_credit() - get / set generic tx credit if role supports it - * - * \param wsi: connection to set / get tx credit on - * \param peer_to_us: 0 = set / get us-to-peer direction, else peer-to-us - * \param add: amount of credit to add - * - * If the wsi does not support tx credit, returns 0. - * - * If add is zero, returns one of the wsi tx credit values for the wsi. - * If add is nonzero, \p add is added to the selected tx credit value - * for the wsi. - */ -#define LWSTXCR_US_TO_PEER 0 -#define LWSTXCR_PEER_TO_US 1 - -LWS_VISIBLE LWS_EXTERN int -lws_wsi_tx_credit(struct lws *wsi, char peer_to_us, int add); - -///@} diff --git a/win64/include/websockets/libwebsockets/lws-ws-close.h b/win64/include/websockets/libwebsockets/lws-ws-close.h deleted file mode 100644 index 0d7b22b4..00000000 --- a/win64/include/websockets/libwebsockets/lws-ws-close.h +++ /dev/null @@ -1,125 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup wsclose Websocket Close - * - * ##Websocket close frame control - * - * When we close a ws connection, we can send a reason code and a short - * UTF-8 description back with the close packet. - */ -///@{ - -/* - * NOTE: These public enums are part of the abi. If you want to add one, - * add it at where specified so existing users are unaffected. - */ -/** enum lws_close_status - RFC6455 close status codes */ -enum lws_close_status { - LWS_CLOSE_STATUS_NOSTATUS = 0, - LWS_CLOSE_STATUS_NORMAL = 1000, - /**< 1000 indicates a normal closure, meaning that the purpose for - which the connection was established has been fulfilled. */ - LWS_CLOSE_STATUS_GOINGAWAY = 1001, - /**< 1001 indicates that an endpoint is "going away", such as a server - going down or a browser having navigated away from a page. */ - LWS_CLOSE_STATUS_PROTOCOL_ERR = 1002, - /**< 1002 indicates that an endpoint is terminating the connection due - to a protocol error. */ - LWS_CLOSE_STATUS_UNACCEPTABLE_OPCODE = 1003, - /**< 1003 indicates that an endpoint is terminating the connection - because it has received a type of data it cannot accept (e.g., an - endpoint that understands only text data MAY send this if it - receives a binary message). */ - LWS_CLOSE_STATUS_RESERVED = 1004, - /**< Reserved. The specific meaning might be defined in the future. */ - LWS_CLOSE_STATUS_NO_STATUS = 1005, - /**< 1005 is a reserved value and MUST NOT be set as a status code in a - Close control frame by an endpoint. It is designated for use in - applications expecting a status code to indicate that no status - code was actually present. */ - LWS_CLOSE_STATUS_ABNORMAL_CLOSE = 1006, - /**< 1006 is a reserved value and MUST NOT be set as a status code in a - Close control frame by an endpoint. It is designated for use in - applications expecting a status code to indicate that the - connection was closed abnormally, e.g., without sending or - receiving a Close control frame. */ - LWS_CLOSE_STATUS_INVALID_PAYLOAD = 1007, - /**< 1007 indicates that an endpoint is terminating the connection - because it has received data within a message that was not - consistent with the type of the message (e.g., non-UTF-8 [RFC3629] - data within a text message). */ - LWS_CLOSE_STATUS_POLICY_VIOLATION = 1008, - /**< 1008 indicates that an endpoint is terminating the connection - because it has received a message that violates its policy. This - is a generic status code that can be returned when there is no - other more suitable status code (e.g., 1003 or 1009) or if there - is a need to hide specific details about the policy. */ - LWS_CLOSE_STATUS_MESSAGE_TOO_LARGE = 1009, - /**< 1009 indicates that an endpoint is terminating the connection - because it has received a message that is too big for it to - process. */ - LWS_CLOSE_STATUS_EXTENSION_REQUIRED = 1010, - /**< 1010 indicates that an endpoint (client) is terminating the - connection because it has expected the server to negotiate one or - more extension, but the server didn't return them in the response - message of the WebSocket handshake. The list of extensions that - are needed SHOULD appear in the /reason/ part of the Close frame. - Note that this status code is not used by the server, because it - can fail the WebSocket handshake instead */ - LWS_CLOSE_STATUS_UNEXPECTED_CONDITION = 1011, - /**< 1011 indicates that a server is terminating the connection because - it encountered an unexpected condition that prevented it from - fulfilling the request. */ - LWS_CLOSE_STATUS_TLS_FAILURE = 1015, - /**< 1015 is a reserved value and MUST NOT be set as a status code in a - Close control frame by an endpoint. It is designated for use in - applications expecting a status code to indicate that the - connection was closed due to a failure to perform a TLS handshake - (e.g., the server certificate can't be verified). */ - - LWS_CLOSE_STATUS_CLIENT_TRANSACTION_DONE = 2000, - - /****** add new things just above ---^ ******/ - - LWS_CLOSE_STATUS_NOSTATUS_CONTEXT_DESTROY = 9999, -}; - -/** - * lws_close_reason - Set reason and aux data to send with Close packet - * If you are going to return nonzero from the callback - * requesting the connection to close, you can optionally - * call this to set the reason the peer will be told if - * possible. - * - * \param wsi: The websocket connection to set the close reason on - * \param status: A valid close status from websocket standard - * \param buf: NULL or buffer containing up to 124 bytes of auxiliary data - * \param len: Length of data in \p buf to send - */ -LWS_VISIBLE LWS_EXTERN void -lws_close_reason(struct lws *wsi, enum lws_close_status status, - unsigned char *buf, size_t len); - -///@} diff --git a/win64/include/websockets/libwebsockets/lws-ws-ext.h b/win64/include/websockets/libwebsockets/lws-ws-ext.h deleted file mode 100644 index 10c7a644..00000000 --- a/win64/include/websockets/libwebsockets/lws-ws-ext.h +++ /dev/null @@ -1,198 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*! \defgroup extensions Extension related functions - * ##Extension releated functions - * - * Ws defines optional extensions, lws provides the ability to implement these - * in user code if so desired. - * - * We provide one extensions permessage-deflate. - */ -///@{ - -/* - * NOTE: These public enums are part of the abi. If you want to add one, - * add it at where specified so existing users are unaffected. - */ -enum lws_extension_callback_reasons { - LWS_EXT_CB_CONSTRUCT = 4, - LWS_EXT_CB_CLIENT_CONSTRUCT = 5, - LWS_EXT_CB_DESTROY = 8, - LWS_EXT_CB_PACKET_TX_PRESEND = 12, - LWS_EXT_CB_PAYLOAD_TX = 21, - LWS_EXT_CB_PAYLOAD_RX = 22, - LWS_EXT_CB_OPTION_DEFAULT = 23, - LWS_EXT_CB_OPTION_SET = 24, - LWS_EXT_CB_OPTION_CONFIRM = 25, - LWS_EXT_CB_NAMED_OPTION_SET = 26, - - /****** add new things just above ---^ ******/ -}; - -/** enum lws_ext_options_types */ -enum lws_ext_options_types { - EXTARG_NONE, /**< does not take an argument */ - EXTARG_DEC, /**< requires a decimal argument */ - EXTARG_OPT_DEC /**< may have an optional decimal argument */ - - /* Add new things just above here ---^ - * This is part of the ABI, don't needlessly break compatibility */ -}; - -/** struct lws_ext_options - Option arguments to the extension. These are - * used in the negotiation at ws upgrade time. - * The helper function lws_ext_parse_options() - * uses these to generate callbacks */ -struct lws_ext_options { - const char *name; /**< Option name, eg, "server_no_context_takeover" */ - enum lws_ext_options_types type; /**< What kind of args the option can take */ - - /* Add new things just above here ---^ - * This is part of the ABI, don't needlessly break compatibility */ -}; - -/** struct lws_ext_option_arg */ -struct lws_ext_option_arg { - const char *option_name; /**< may be NULL, option_index used then */ - int option_index; /**< argument ordinal to use if option_name missing */ - const char *start; /**< value */ - int len; /**< length of value */ -}; - -/** - * typedef lws_extension_callback_function() - Hooks to allow extensions to operate - * \param context: Websockets context - * \param ext: This extension - * \param wsi: Opaque websocket instance pointer - * \param reason: The reason for the call - * \param user: Pointer to ptr to per-session user data allocated by library - * \param in: Pointer used for some callback reasons - * \param len: Length set for some callback reasons - * - * Each extension that is active on a particular connection receives - * callbacks during the connection lifetime to allow the extension to - * operate on websocket data and manage itself. - * - * Libwebsockets takes care of allocating and freeing "user" memory for - * each active extension on each connection. That is what is pointed to - * by the user parameter. - * - * LWS_EXT_CB_CONSTRUCT: called when the server has decided to - * select this extension from the list provided by the client, - * just before the server will send back the handshake accepting - * the connection with this extension active. This gives the - * extension a chance to initialize its connection context found - * in user. - * - * LWS_EXT_CB_CLIENT_CONSTRUCT: same as LWS_EXT_CB_CONSTRUCT - * but called when client is instantiating this extension. Some - * extensions will work the same on client and server side and then - * you can just merge handlers for both CONSTRUCTS. - * - * LWS_EXT_CB_DESTROY: called when the connection the extension was - * being used on is about to be closed and deallocated. It's the - * last chance for the extension to deallocate anything it has - * allocated in the user data (pointed to by user) before the - * user data is deleted. This same callback is used whether you - * are in client or server instantiation context. - * - * LWS_EXT_CB_PACKET_TX_PRESEND: this works the same way as - * LWS_EXT_CB_PACKET_RX_PREPARSE above, except it gives the - * extension a chance to change websocket data just before it will - * be sent out. Using the same lws_token pointer scheme in in, - * the extension can change the buffer and the length to be - * transmitted how it likes. Again if it wants to grow the - * buffer safely, it should copy the data into its own buffer and - * set the lws_tokens token pointer to it. - * - * LWS_EXT_CB_ARGS_VALIDATE: - */ -typedef int -lws_extension_callback_function(struct lws_context *context, - const struct lws_extension *ext, struct lws *wsi, - enum lws_extension_callback_reasons reason, - void *user, void *in, size_t len); - -/** struct lws_extension - An extension we support */ -struct lws_extension { - const char *name; /**< Formal extension name, eg, "permessage-deflate" */ - lws_extension_callback_function *callback; /**< Service callback */ - const char *client_offer; /**< String containing exts and options client offers */ - - /* Add new things just above here ---^ - * This is part of the ABI, don't needlessly break compatibility */ -}; - -/** - * lws_set_extension_option(): set extension option if possible - * - * \param wsi: websocket connection - * \param ext_name: name of ext, like "permessage-deflate" - * \param opt_name: name of option, like "rx_buf_size" - * \param opt_val: value to set option to - */ -LWS_VISIBLE LWS_EXTERN int -lws_set_extension_option(struct lws *wsi, const char *ext_name, - const char *opt_name, const char *opt_val); - -/** - * lws_ext_parse_options() - deal with parsing negotiated extension options - * - * \param ext: related extension struct - * \param wsi: websocket connection - * \param ext_user: per-connection extension private data - * \param opts: list of supported options - * \param o: option string to parse - * \param len: length - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_ext_parse_options(const struct lws_extension *ext, struct lws *wsi, - void *ext_user, const struct lws_ext_options *opts, - const char *o, int len); - -/** lws_extension_callback_pm_deflate() - extension for RFC7692 - * - * \param context: lws context - * \param ext: related lws_extension struct - * \param wsi: websocket connection - * \param reason: incoming callback reason - * \param user: per-connection extension private data - * \param in: pointer parameter - * \param len: length parameter - * - * Built-in callback implementing RFC7692 permessage-deflate - */ -LWS_EXTERN int -lws_extension_callback_pm_deflate(struct lws_context *context, - const struct lws_extension *ext, - struct lws *wsi, - enum lws_extension_callback_reasons reason, - void *user, void *in, size_t len); - -/* - * The internal exts are part of the public abi - * If we add more extensions, publish the callback here ------v - */ -///@} diff --git a/win64/include/websockets/libwebsockets/lws-ws-state.h b/win64/include/websockets/libwebsockets/lws-ws-state.h deleted file mode 100644 index d21c2a75..00000000 --- a/win64/include/websockets/libwebsockets/lws-ws-state.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/** \defgroup wsstatus Websocket status APIs - * ##Websocket connection status APIs - * - * These provide information about ws connection or message status - */ -///@{ -/** - * lws_send_pipe_choked() - tests if socket is writable or not - * \param wsi: lws connection - * - * Allows you to check if you can write more on the socket - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_send_pipe_choked(struct lws *wsi); - -/** - * lws_is_final_fragment() - tests if last part of ws message - * - * \param wsi: lws connection - */ -LWS_VISIBLE LWS_EXTERN int -lws_is_final_fragment(struct lws *wsi); - -/** - * lws_is_first_fragment() - tests if first part of ws message - * - * \param wsi: lws connection - */ -LWS_VISIBLE LWS_EXTERN int -lws_is_first_fragment(struct lws *wsi); - -/** - * lws_get_reserved_bits() - access reserved bits of ws frame - * \param wsi: lws connection - */ -LWS_VISIBLE LWS_EXTERN unsigned char -lws_get_reserved_bits(struct lws *wsi); - -/** - * lws_partial_buffered() - find out if lws buffered the last write - * \param wsi: websocket connection to check - * - * Returns 1 if you cannot use lws_write because the last - * write on this connection is still buffered, and can't be cleared without - * returning to the service loop and waiting for the connection to be - * writeable again. - * - * If you will try to do >1 lws_write call inside a single - * WRITEABLE callback, you must check this after every write and bail if - * set, ask for a new writeable callback and continue writing from there. - * - * This is never set at the start of a writeable callback, but any write - * may set it. - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_partial_buffered(struct lws *wsi); - -/** - * lws_frame_is_binary(): true if the current frame was sent in binary mode - * - * \param wsi: the connection we are inquiring about - * - * This is intended to be called from the LWS_CALLBACK_RECEIVE callback if - * it's interested to see if the frame it's dealing with was sent in binary - * mode. - */ -LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT -lws_frame_is_binary(struct lws *wsi); -///@} diff --git a/win64/include/websockets/libwebsockets/lws-x509.h b/win64/include/websockets/libwebsockets/lws-x509.h deleted file mode 100644 index 03656c5b..00000000 --- a/win64/include/websockets/libwebsockets/lws-x509.h +++ /dev/null @@ -1,279 +0,0 @@ -/* - * libwebsockets - small server side websockets and web server implementation - * - * Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com> - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -enum lws_tls_cert_info { - LWS_TLS_CERT_INFO_VALIDITY_FROM, - /**< fills .time with the time_t the cert validity started from */ - LWS_TLS_CERT_INFO_VALIDITY_TO, - /**< fills .time with the time_t the cert validity ends at */ - LWS_TLS_CERT_INFO_COMMON_NAME, - /**< fills up to len bytes of .ns.name with the cert common name */ - LWS_TLS_CERT_INFO_ISSUER_NAME, - /**< fills up to len bytes of .ns.name with the cert issuer name */ - LWS_TLS_CERT_INFO_USAGE, - /**< fills verified with a bitfield asserting the valid uses */ - LWS_TLS_CERT_INFO_VERIFIED, - /**< fills .verified with a bool representing peer cert validity, - * call returns -1 if no cert */ - LWS_TLS_CERT_INFO_OPAQUE_PUBLIC_KEY, - /**< the certificate's public key, as an opaque bytestream. These - * opaque bytestreams can only be compared with each other using the - * same tls backend, ie, OpenSSL or mbedTLS. The different backends - * produce different, incompatible representations for the same cert. - */ -}; - -union lws_tls_cert_info_results { - unsigned int verified; - time_t time; - unsigned int usage; - struct { - int len; - /* KEEP LAST... notice the [64] is only there because - * name[] is not allowed in a union. The actual length of - * name[] is arbitrary and is passed into the api using the - * len parameter. Eg - * - * char big[1024]; - * union lws_tls_cert_info_results *buf = - * (union lws_tls_cert_info_results *)big; - * - * lws_tls_peer_cert_info(wsi, type, buf, sizeof(big) - - * sizeof(*buf) + sizeof(buf->ns.name)); - */ - char name[64]; - } ns; -}; - -struct lws_x509_cert; -struct lws_jwk; - -/** - * lws_x509_create() - Allocate an lws_x509_cert object - * - * \param x509: pointer to lws_x509_cert pointer to be set to allocated object - * - * Allocates an lws_x509_cert object and set *x509 to point to it. - */ -LWS_VISIBLE LWS_EXTERN int -lws_x509_create(struct lws_x509_cert **x509); - -/** - * lws_x509_parse_from_pem() - Read one or more x509 certs in PEM format from memory - * - * \param x509: pointer to lws_x509_cert object - * \param pem: pointer to PEM format content - * \param len: length of PEM format content - * - * Parses PEM certificates in memory into a native x509 representation for the - * TLS library. If there are multiple PEM certs concatenated, they are all - * read into the same object and exist as a "chain". - * - * IMPORTANT for compatibility with mbedtls, the last used byte of \p pem - * must be '\0' and the \p len must include it. - * - * Returns 0 if all went OK. - */ -LWS_VISIBLE LWS_EXTERN int -lws_x509_parse_from_pem(struct lws_x509_cert *x509, const void *pem, size_t len); - -/** - * lws_x509_verify() - Validate signing relationship between one or more certs - * and a trusted CA cert - * - * \param x509: pointer to lws_x509_cert object, may contain multiple - * \param trusted: a single, trusted cert object that we are checking for - * \param common_name: NULL, or required CN (Common Name) of \p x509 - * - * Returns 0 if the cert or certs in \p x509 represent a complete chain that is - * ultimately signed by the cert in \p trusted. Returns nonzero if that's not - * the case. - */ -LWS_VISIBLE LWS_EXTERN int -lws_x509_verify(struct lws_x509_cert *x509, struct lws_x509_cert *trusted, - const char *common_name); - -/** - * lws_x509_public_to_jwk() - Copy the public key out of a cert and into a JWK - * - * \param jwk: pointer to the jwk to initialize and set to the public key - * \param x509: pointer to lws_x509_cert object that has the public key - * \param curves: NULL to disallow EC, else a comma-separated list of valid - * curves using the JWA naming, eg, "P-256,P-384,P-521". - * \param rsabits: minimum number of RSA bits required in the cert if RSA - * - * Returns 0 if JWK was set to the certificate public key correctly and the - * curve / the RSA key size was acceptable. Automatically produces an RSA or - * EC JWK depending on what the cert had. - */ -LWS_VISIBLE LWS_EXTERN int -lws_x509_public_to_jwk(struct lws_jwk *jwk, struct lws_x509_cert *x509, - const char *curves, int rsabits); - -/** - * lws_x509_jwk_privkey_pem() - Copy a private key PEM into a jwk that has the - * public part already - * - * \param jwk: pointer to the jwk to initialize and set to the public key - * \param pem: pointer to PEM private key in memory - * \param len: length of PEM private key in memory - * \param passphrase: NULL or passphrase needed to decrypt private key - * - * IMPORTANT for compatibility with mbedtls, the last used byte of \p pem - * must be '\0' and the \p len must include it. - * - * Returns 0 if the private key was successfully added to the JWK, else - * nonzero if failed. - * - * The PEM image in memory is zeroed down on both successful and failed exits. - * The caller should take care to zero down passphrase if used. - */ -LWS_VISIBLE LWS_EXTERN int -lws_x509_jwk_privkey_pem(struct lws_jwk *jwk, void *pem, size_t len, - const char *passphrase); - -/** - * lws_x509_destroy() - Destroy a previously allocated lws_x509_cert object - * - * \param x509: pointer to lws_x509_cert pointer - * - * Deallocates an lws_x509_cert object and sets its pointer to NULL. - */ -LWS_VISIBLE LWS_EXTERN void -lws_x509_destroy(struct lws_x509_cert **x509); - -LWS_VISIBLE LWS_EXTERN int -lws_x509_info(struct lws_x509_cert *x509, enum lws_tls_cert_info type, - union lws_tls_cert_info_results *buf, size_t len); - -/** - * lws_tls_peer_cert_info() - get information from the peer's TLS cert - * - * \param wsi: the connection to query - * \param type: one of LWS_TLS_CERT_INFO_ - * \param buf: pointer to union to take result - * \param len: when result is a string, the true length of buf->ns.name[] - * - * lws_tls_peer_cert_info() lets you get hold of information from the peer - * certificate. - * - * Return 0 if there is a result in \p buf, or -1 indicating there was no cert - * or another problem. - * - * This function works the same no matter if the TLS backend is OpenSSL or - * mbedTLS. - */ -LWS_VISIBLE LWS_EXTERN int -lws_tls_peer_cert_info(struct lws *wsi, enum lws_tls_cert_info type, - union lws_tls_cert_info_results *buf, size_t len); - -/** - * lws_tls_vhost_cert_info() - get information from the vhost's own TLS cert - * - * \param vhost: the vhost to query - * \param type: one of LWS_TLS_CERT_INFO_ - * \param buf: pointer to union to take result - * \param len: when result is a string, the true length of buf->ns.name[] - * - * lws_tls_vhost_cert_info() lets you get hold of information from the vhost - * certificate. - * - * Return 0 if there is a result in \p buf, or -1 indicating there was no cert - * or another problem. - * - * This function works the same no matter if the TLS backend is OpenSSL or - * mbedTLS. - */ -LWS_VISIBLE LWS_EXTERN int -lws_tls_vhost_cert_info(struct lws_vhost *vhost, enum lws_tls_cert_info type, - union lws_tls_cert_info_results *buf, size_t len); - -/** - * lws_tls_acme_sni_cert_create() - creates a temp selfsigned cert - * and attaches to a vhost - * - * \param vhost: the vhost to acquire the selfsigned cert - * \param san_a: SAN written into the certificate - * \param san_b: second SAN written into the certificate - * - * - * Returns 0 if created and attached to the vhost. Returns -1 if problems and - * frees all allocations before returning. - * - * On success, any allocations are destroyed at vhost destruction automatically. - */ -LWS_VISIBLE LWS_EXTERN int -lws_tls_acme_sni_cert_create(struct lws_vhost *vhost, const char *san_a, - const char *san_b); - -/** - * lws_tls_acme_sni_csr_create() - creates a CSR and related private key PEM - * - * \param context: lws_context used for random - * \param elements: array of LWS_TLS_REQ_ELEMENT_COUNT const char * - * \param csr: buffer that will get the b64URL(ASN-1 CSR) - * \param csr_len: max length of the csr buffer - * \param privkey_pem: pointer to pointer allocated to hold the privkey_pem - * \param privkey_len: pointer to size_t set to the length of the privkey_pem - * - * Creates a CSR according to the information in \p elements, and a private - * RSA key used to sign the CSR. - * - * The outputs are the b64URL(ASN-1 CSR) into csr, and the PEM private key into - * privkey_pem. - * - * Notice that \p elements points to an array of const char *s pointing to the - * information listed in the enum above. If an entry is NULL or an empty - * string, the element is set to "none" in the CSR. - * - * Returns 0 on success or nonzero for failure. - */ -LWS_VISIBLE LWS_EXTERN int -lws_tls_acme_sni_csr_create(struct lws_context *context, const char *elements[], - uint8_t *csr, size_t csr_len, char **privkey_pem, - size_t *privkey_len); - -/** - * lws_tls_cert_updated() - update every vhost using the given cert path - * - * \param context: our lws_context - * \param certpath: the filepath to the certificate - * \param keypath: the filepath to the private key of the certificate - * \param mem_cert: copy of the cert in memory - * \param len_mem_cert: length of the copy of the cert in memory - * \param mem_privkey: copy of the private key in memory - * \param len_mem_privkey: length of the copy of the private key in memory - * - * Checks every vhost to see if it is the using certificate described by the - * the given filepaths. If so, it attempts to update the vhost ssl_ctx to use - * the new certificate. - * - * Returns 0 on success or nonzero for failure. - */ -LWS_VISIBLE LWS_EXTERN int -lws_tls_cert_updated(struct lws_context *context, const char *certpath, - const char *keypath, - const char *mem_cert, size_t len_mem_cert, - const char *mem_privkey, size_t len_mem_privkey); - diff --git a/win64/include/websockets/lws_config.h b/win64/include/websockets/lws_config.h index e33fca10..5f68b4f2 100644 --- a/win64/include/websockets/lws_config.h +++ b/win64/include/websockets/lws_config.h @@ -6,193 +6,151 @@ #endif #endif -#define LWS_INSTALL_DATADIR "E:/ProjectsInLearn/vcpkg/packages/libwebsockets_x64-windows/share" -#define LWS_INSTALL_LIBDIR "E:/ProjectsInLearn/vcpkg/packages/libwebsockets_x64-windows/lib" -#define LWS_LIBRARY_VERSION_MAJOR 4 -#define LWS_LIBRARY_VERSION_MINOR 1 -#define LWS_LIBRARY_VERSION_PATCH_ELABORATED 6-2021.05.12-122-g835f1613b -#define LWS_LIBRARY_VERSION_PATCH 6 +#define LWS_INSTALL_DATADIR "C:/Program Files/libwebsockets/share" +/* Define to 1 to use wolfSSL/CyaSSL as a replacement for OpenSSL. + * LWS_OPENSSL_SUPPORT needs to be set also for this to work. */ +/* #undef USE_WOLFSSL */ + +/* Also define to 1 (in addition to USE_WOLFSSL) when using the + (older) CyaSSL library */ +/* #undef USE_OLD_CYASSL */ +/* #undef LWS_WITH_BORINGSSL */ + +/* #undef LWS_WITH_MBEDTLS */ +/* #undef LWS_WITH_POLARSSL */ +/* #undef LWS_WITH_ESP8266 */ +/* #undef LWS_WITH_ESP32 */ + +/* #undef LWS_WITH_PLUGINS */ +/* #undef LWS_WITH_NO_LOGS */ + +/* The Libwebsocket version */ +#define LWS_LIBRARY_VERSION "2.4.2" + +#define LWS_LIBRARY_VERSION_MAJOR 2 +#define LWS_LIBRARY_VERSION_MINOR 4 +#define LWS_LIBRARY_VERSION_PATCH 2 /* LWS_LIBRARY_VERSION_NUMBER looks like 1005001 for e.g. version 1.5.1 */ -#define LWS_LIBRARY_VERSION_NUMBER (LWS_LIBRARY_VERSION_MAJOR * 1000000) + \ - (LWS_LIBRARY_VERSION_MINOR * 1000) + \ - LWS_LIBRARY_VERSION_PATCH +#define LWS_LIBRARY_VERSION_NUMBER (LWS_LIBRARY_VERSION_MAJOR*1000000)+(LWS_LIBRARY_VERSION_MINOR*1000)+LWS_LIBRARY_VERSION_PATCH + +/* The current git commit hash that we're building from */ +#define LWS_BUILD_HASH "desktop-kmeijnm\\administrator@DESKTOP-KMEIJNM-v2.0.0-640-g8964ce9d" + +/* Build with OpenSSL support */ +#define LWS_OPENSSL_SUPPORT + +/* The client should load and trust CA root certs it finds in the OS */ +#define LWS_SSL_CLIENT_USE_OS_CA_CERTS + +/* Sets the path where the client certs should be installed. */ +#define LWS_OPENSSL_CLIENT_CERTS "../share" + +/* Turn off websocket extensions */ +/* #undef LWS_NO_EXTENSIONS */ + +/* Enable libev io loop */ +/* #undef LWS_WITH_LIBEV */ + +/* Enable libuv io loop */ +#define LWS_WITH_LIBUV + +/* Enable libevent io loop */ +/* #undef LWS_WITH_LIBEVENT */ + +/* Build with support for ipv6 */ +/* #undef LWS_WITH_IPV6 */ + +/* Build with support for UNIX domain socket */ +/* #undef LWS_WITH_UNIX_SOCK */ + +/* Build with support for HTTP2 */ +/* #undef LWS_WITH_HTTP2 */ + +/* Turn on latency measuring code */ +/* #undef LWS_LATENCY */ + +/* Don't build the daemonizeation api */ +#define LWS_NO_DAEMONIZE + +/* Build without server support */ +/* #undef LWS_NO_SERVER */ + +/* Build without client support */ +/* #undef LWS_NO_CLIENT */ + +/* If we should compile with MinGW support */ +/* #undef LWS_MINGW_SUPPORT */ + +/* Use the BSD getifaddrs that comes with libwebsocket, for uclibc support */ +#define LWS_BUILTIN_GETIFADDRS + +/* use SHA1() not internal libwebsockets_SHA1 */ +/* #undef LWS_SHA1_USE_OPENSSL_NAME */ + +/* SSL server using ECDH certificate */ +/* #undef LWS_SSL_SERVER_WITH_ECDH_CERT */ +/* #define LWS_HAVE_SSL_CTX_set1_param */ +#define LWS_HAVE_X509_VERIFY_PARAM_set1_host +#define LWS_HAVE_RSA_SET0_KEY + +/* #undef LWS_HAVE_UV_VERSION_H */ + +/* CGI apis */ +/* #undef LWS_WITH_CGI */ + +/* whether the Openssl is recent enough, and / or built with, ecdh */ +#define LWS_HAVE_OPENSSL_ECDH_H + +/* HTTP Proxy support */ +/* #undef LWS_WITH_HTTP_PROXY */ + +/* HTTP Ranges support */ +#define LWS_WITH_RANGES + +/* Http access log support */ +/* #undef LWS_WITH_ACCESS_LOG */ +/* #undef LWS_WITH_SERVER_STATUS */ + +/* #undef LWS_WITH_STATEFUL_URLDECODE */ +/* #undef LWS_WITH_PEER_LIMITS */ + +/* Maximum supported service threads */ #define LWS_MAX_SMP 1 -/* #undef LWS_ESP_PLATFORM */ -/* #undef LWS_LIBRARY_VERSION_NUMBER */ +/* Lightweight JSON Parser */ +/* #undef LWS_WITH_LEJP */ -#define LWS_EXT_PTHREAD_LIBRARIES +/* SMTP */ +/* #undef LWS_WITH_SMTP */ + +/* OPTEE */ +/* #undef LWS_PLAT_OPTEE */ + +/* ZIP FOPS */ +#define LWS_WITH_ZIP_FOPS +#define LWS_HAVE_STDINT_H /* #undef LWS_AVOID_SIGPIPE_IGN */ -#define LWS_BUILD_HASH "2021.05.12-122-g835f1613b" -#define LWS_BUILTIN_GETIFADDRS -#define LWS_CLIENT_HTTP_PROXYING -/* #undef LWS_DETECTED_PLAT_IOS */ -/* #undef LWS_FALLBACK_GETHOSTBYNAME */ -#define LWS_HAS_INTPTR_T -/* #undef LWS_HAS_GETOPT_LONG */ -#define LWS_HAVE__ATOI64 -#define LWS_HAVE_ATOLL -#define LWS_HAVE_BN_bn2binpad -/* #undef LWS_HAVE_CLOCK_GETTIME */ -#define LWS_HAVE_EC_POINT_get_affine_coordinates -#define LWS_HAVE_ECDSA_SIG_set0 -#define LWS_HAVE_EVP_MD_CTX_free -#define LWS_HAVE_EVP_aes_128_wrap -#define LWS_HAVE_EVP_aes_128_cfb8 -#define LWS_HAVE_EVP_aes_128_cfb128 -#define LWS_HAVE_EVP_aes_192_cfb8 -#define LWS_HAVE_EVP_aes_192_cfb128 -#define LWS_HAVE_EVP_aes_256_cfb8 -#define LWS_HAVE_EVP_aes_256_cfb128 -#define LWS_HAVE_EVP_aes_128_xts -#define LWS_HAVE_EVP_PKEY_new_raw_private_key -#define LWS_HAVE_EXECVPE -/* #undef LWS_HAVE_LIBCAP */ -#define LWS_HAVE_HMAC_CTX_new -#define LWS_HAVE_MALLOC_H -/* #undef LWS_HAVE_MALLOC_TRIM */ -/* #undef LWS_HAVE_MALLOC_USABLE_SIZE */ -/* #undef LWS_HAVE_mbedtls_md_setup */ -/* #undef LWS_HAVE_mbedtls_net_init */ -/* #undef LWS_HAVE_mbedtls_rsa_complete */ -/* #undef LWS_HAVE_mbedtls_internal_aes_encrypt */ -/* #undef LWS_HAVE_mbedtls_ssl_conf_alpn_protocols */ -/* #undef LWS_HAVE_mbedtls_ssl_get_alpn_protocol */ -/* #undef LWS_HAVE_mbedtls_ssl_conf_sni */ -/* #undef LWS_HAVE_mbedtls_ssl_set_hs_ca_chain */ -/* #undef LWS_HAVE_mbedtls_ssl_set_hs_own_cert */ -/* #undef LWS_HAVE_mbedtls_ssl_set_hs_authmode */ -/* #undef LWS_HAVE_MBEDTLS_NET_SOCKETS */ -#define LWS_HAVE_NEW_UV_VERSION_H -#define LWS_HAVE_OPENSSL_ECDH_H -/* #undef LWS_HAVE_PIPE2 */ -/* #undef LWS_HAVE_EVENTFD */ -#define LWS_HAVE_PTHREAD_H -#define LWS_HAVE_RSA_SET0_KEY -/* #undef LWS_HAVE_RSA_verify_pss_mgf1 */ -#define LWS_HAVE_SSL_CTX_get0_certificate -/* #undef LWS_HAVE_SSL_CTX_load_verify_file */ -/* #undef LWS_HAVE_SSL_CTX_load_verify_dir */ -#define LWS_HAVE_SSL_CTX_set1_param -#define LWS_HAVE_SSL_CTX_set_ciphersuites -#define LWS_HAVE_SSL_EXTRA_CHAIN_CERTS -#define LWS_HAVE_SSL_get0_alpn_selected -#define LWS_HAVE_SSL_CTX_EVP_PKEY_new_raw_private_key -#define LWS_HAVE_SSL_set_alpn_protos -#define LWS_HAVE_SSL_SET_INFO_CALLBACK -#define LWS_HAVE__STAT32I64 -#define LWS_HAVE_STDINT_H + +#define LWS_FALLBACK_GETHOSTBYNAME + +/* #undef LWS_WITH_STATS */ +/* #undef LWS_WITH_SOCKS5 */ + /* #undef LWS_HAVE_SYS_CAPABILITY_H */ +/* #undef LWS_HAVE_LIBCAP */ + +#define LWS_HAVE_ATOLL +#define LWS_HAVE__ATOI64 +#define LWS_HAVE__STAT32I64 + +/* OpenSSL various APIs */ + #define LWS_HAVE_TLS_CLIENT_METHOD #define LWS_HAVE_TLSV1_2_CLIENT_METHOD -/* #undef LWS_HAVE_UV_VERSION_H */ -/* #undef LWS_HAVE_VFORK */ -#define LWS_HAVE_X509_get_key_usage -#define LWS_HAVE_X509_VERIFY_PARAM_set1_host -#define LWS_LIBRARY_VERSION "4.1.6-2021.05.12-122-g835f1613b" -#define LWS_LOGGING_BITFIELD_CLEAR 0 -#define LWS_LOGGING_BITFIELD_SET 0 -/* #undef LWS_MINGW_SUPPORT */ -/* #undef LWS_NO_CLIENT */ -#define LWS_NO_DAEMONIZE -#define LWS_OPENSSL_CLIENT_CERTS "../share" -#define LWS_OPENSSL_SUPPORT -/* #undef LWS_PLAT_OPTEE */ -/* #undef LWS_PLAT_UNIX */ -/* #undef LWS_PLAT_FREERTOS */ -/* #undef LWS_ROLE_CGI */ -/* #undef LWS_ROLE_DBUS */ -#define LWS_ROLE_H1 -#define LWS_ROLE_H2 -#define LWS_ROLE_RAW -#define LWS_ROLE_RAW_FILE -/* #undef LWS_ROLE_RAW_PROXY */ -#define LWS_ROLE_WS -/* #undef LWS_ROLE_MQTT */ -/* #undef LWS_SHA1_USE_OPENSSL_NAME */ -#define LWS_SSL_CLIENT_USE_OS_CA_CERTS -/* #undef LWS_SSL_SERVER_WITH_ECDH_CERT */ -/* #undef LWS_WITH_ABSTRACT */ -/* #undef LWS_WITH_ACCESS_LOG */ -/* #undef LWS_WITH_ACME */ -/* #undef LWS_WITH_ALSA */ -/* #undef LWS_WITH_SYS_ASYNC_DNS */ -/* #undef LWS_WITH_BORINGSSL */ -/* #undef LWS_WITH_CGI */ -#define LWS_WITH_CUSTOM_HEADERS -/* #undef LWS_WITH_DEPRECATED_LWS_DLL */ -/* #undef LWS_WITH_DETAILED_LATENCY */ -#define LWS_WITH_DIR -/* #undef LWS_WITH_DRIVERS */ -/* #undef LWS_WITH_ESP32 */ -/* #undef LWS_HAVE_EVBACKEND_LINUXAIO */ -/* #undef LWS_HAVE_EVBACKEND_IOURING */ -/* #undef LWS_WITH_EXTERNAL_POLL */ -#define LWS_WITH_FILE_OPS -/* #undef LWS_WITH_FSMOUNT */ -/* #undef LWS_WITH_FTS */ -#define LWS_WITH_GENCRYPTO -/* #undef LWS_WITH_GENERIC_SESSIONS */ -/* #undef LWS_WITH_GLIB */ -/* #undef LWS_WITH_GTK */ -#define LWS_WITH_HTTP2 -#define LWS_WITH_HTTP_BASIC_AUTH -/* #undef LWS_WITH_HTTP_BROTLI */ -/* #undef LWS_HTTP_HEADERS_ALL */ -/* #undef LWS_WITH_HTTP_PROXY */ -#define LWS_WITH_HTTP_STREAM_COMPRESSION -#define LWS_WITH_HTTP_UNCOMMON_HEADERS -#define LWS_WITH_IPV6 -/* #undef LWS_WITH_JOSE */ -#define LWS_WITH_LEJP -/* #undef LWS_WITH_LIBEV */ -/* #undef LWS_WITH_LIBEVENT */ -#define LWS_WITH_LIBUV -#define LWS_WITH_LWSAC -#define LWS_LOGS_TIMESTAMP -/* #undef LWS_WITH_MBEDTLS */ -/* #undef LWS_WITH_MINIZ */ -#define LWS_WITH_NETWORK -/* #undef LWS_WITH_NO_LOGS */ -#define LWS_WITH_CLIENT -#define LWS_WITHOUT_EXTENSIONS -#define LWS_WITH_SERVER -/* #undef LWS_WITH_SPAWN */ -/* #undef LWS_WITH_PEER_LIMITS */ -/* #undef LWS_WITH_PLUGINS */ -/* #undef LWS_WITH_POLARSSL */ -#define LWS_WITH_POLL -/* #undef LWS_WITH_RANGES */ -/* #undef LWS_WITH_SECURE_STREAMS */ -/* #undef LWS_WITH_SECURE_STREAMS_SYS_AUTH_API_AMAZON_COM */ -/* #undef LWS_WITH_SECURE_STREAMS_PROXY_API */ -/* #undef LWS_WITH_SECURE_STREAMS_STATIC_POLICY_ONLY */ -/* #undef LWS_WITH_SELFTESTS */ -/* #undef LWS_WITH_SEQUENCER */ -/* #undef LWS_WITH_SERVER_STATUS */ -/* #undef LWS_WITH_SYS_SMD */ -/* #undef LWS_WITH_SMTP */ -/* #undef LWS_WITH_SOCKS5 */ -/* #undef LWS_WITH_STATEFUL_URLDECODE */ -/* #undef LWS_WITH_STATS */ -/* #undef LWS_WITH_STRUCT_SQLITE3 */ -/* #undef LWS_WITH_STRUCT_JSON */ -/* #undef LWS_WITH_SUL_DEBUGGING */ -/* #undef LWS_WITH_SQLITE3 */ -/* #undef LWS_WITH_SYS_NTPCLIENT */ -/* #undef LWS_WITH_SYS_DHCP_CLIENT */ -#define LWS_WITH_SYS_STATE -/* #undef LWS_WITH_THREADPOOL */ -#define LWS_WITH_TLS -#define LWS_WITH_UDP -#define LWS_WITH_UNIX_SOCK -/* #undef LWS_WITH_ZIP_FOPS */ -/* #undef USE_OLD_CYASSL */ -/* #undef USE_WOLFSSL */ -#define LWS_WITH_EVENT_LIBS -/* #undef LWS_WITH_EVLIB_PLUGINS */ -/* #undef LWS_WITH_LIBUV_INTERNAL */ -/* #undef LWS_WITH_PLUGINS_API */ +#define LWS_HAVE_SSL_SET_INFO_CALLBACK + +#define LWS_HAS_INTPTR_T + diff --git a/win64/libs/GlU32.Lib b/win64/libs/GlU32.Lib deleted file mode 100644 index b559ef34dbfaecb661bcef8f93a0fe51c77e2713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11758 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 diff --git a/win64/libs/freetype.dll b/win64/libs/freetype.dll deleted file mode 100644 index 7517a230470bed4ee8fc3e4bbf47a39993ff96d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 636416 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ξXZ0HIq!<E%sfW}tg-;G!|X`hm`uL$sm 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/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 _`W)Ym5ZIJ|+(!o@ODjQchHRo1KN(EkSK{F)AH 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 diff --git a/win64/libs/freetype.lib b/win64/libs/freetype.lib index cf7d922ba705247bd52ce22aeb2e12c097daa17d..154101a0de18480aa49f636d45161307ee264c59 100644 GIT binary patch literal 1550114 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�q*cYAE7CkD=jt2zm%@sSOXJ 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�_c+VFIwV3M7{S&Nkn(fN+ONlt;4DAJA{fEe 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∈sSvXiv^A4s9ykUtmBz!5tT%q{l3U8V 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�o$`RWL64mykyNV{O^#Cvfv6>1#tQcIjM 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�<`+RZ7_NM0j}!i^2RJ|sq+5!6ji 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≦+p9<dSce++u>XW-QscWFK=r-enHMOs*GBU1Y)w&3Bf3 z##ZynoFgaR(209X`pJxjpuAOfzl|P!Hll!@3)9pi_z_bh-iz>#kVNEg`)~o*h;uxO zm>*$5wKO9_pKHnDzmXcPiA8Dw5rGlQxSDj8@!mo5AahlJLubm=MCts9l8DNP1|}QM zdsy8P4#D|FC_17!qP??kkW37Qny{o@gkmC2M_j`1SJL!jMFxtv9&wwV_!cHB+Np>? z7()Ni<6IQczx2J1lp>yU#Q0LAB*V|kMoT9yh2sywBd-!L1=QToJKg~%N-!#Di?jGk zjhEUk_27o5$Bo8~Q31%&vZX=X>%eUFrHM<kmX<C3B~lQn6j<;6KY~X;kd~n0rL{|U zE<LmKY9~cq$_9sX(9(TNA!!xq!95itX~uophnbJAzQMr^LhT62WPpqb%S26ADLEXp z^sl9lI1=ZJNt|5Nw)Clzh?_J@xkJPgTBdmT<9#{8NS#QRNRP<y$Og#wb~@5H(uP$% zOPP5+DkXSKmbcF$0~pjgXP~2JRLqZD6<HWr{%~;YkrYMBBC{}uTB9r})%@?bOyZRL zxhS$V@<Y5W#8mb;JP~R9$S)$lj|BZc!;4;}XUdnOTvzi@Wal#D&c2S+5}sD%aO6MB zW-rs>aCJ;PTE<^Ck(5KhdIj;g`<A^$+dH1@Q`#YF%sZ{#kx|f~^^)or{&Q(Ds$J%} zZ0Ry_99rhLEQDqaKt}^?Mjg8nYG+4D#zXB~LM1O@S;?}Wmvt=rd)fH%70XkjbEAu* zcdyV|u}~~nR<*2QS<A8y=pn4+aM8*h&<gY@dO=>BGzvn<vQx`GU-liw!$C@NYY@n- z_<aDkQzv4?e+LLGmPO`E_{&}`U%Y&&RIq&F^7+e6mOFzwZTYn2vuOP8j`dz;%JR^w zo3Dxdw^T*`+pNf;fb9p?IJbnN7rf<?<uV!Zf}cXX5Xj13s4bT-KfL_p^6#R&q9USJ zL?t~0Q*;_yzGZnm?rB;ETHdsLAAOjM7%bWda{}gJV7xV__w|9sZTV-*zj`p3N9eW; zD>`!s-46#kQiRLzF8?>`tthQ1^G6*CMZ#Z~KUhAFH3JUI`!NUUfVbVR{fbn%@P5<; z{Nnz=Sejh;XVh%`;?E(8T-X_9fPZ(6j&yX%<U&Q1BYp*E4nzhJg+b<4fUyUC3(jGr ziRW8Z{0B}jdt6e*vyR#lRUfrC>O$04QP-m$Myo|Hh&GFMh>nhqi%!F<Ct<hrBTVAs zqYnR<#8=U~C0RilP<yfotrbAVqi#pt$7K8wCgaIHVieUM^^~LF5=_Ct6cRll`n~@U zZ5@_qmnt2FnH<r!&Op&_(Z2L5<pI%-4vJnv5$#HvXpb>;FNY)Axiry^NRhul(d)sL z2pG%SR1{qvUB}TcA1pBKOcz8SioOv2P4tfs#VGot=u_abKq~*|(|_g-K&}AhRq!y0 zzqNT|Syeo%=%MImG5i><7=sx1n3$M?n2MM^G3_zm#{3lXJDy}t<MlV5<hYor|DEKm z^du+2)W(>_*x{-D8&7Q#Ol{1fm~d`t<MGt$$WTmdOwNC%b^$xJB}!BK&VQxrC){jX zWuTa&F{kL+UJJ7wb0OwSYPPq~vkfN8elpc*HaFWjIVk4Aiiza$iupTc1Rt+dsOs4Y z9$l53IbID?v|{Rt8RYCPQQ6DiGXmAVVKG`ET4C2ohV~GeUITH2W@}<KFL8x<rO`@{ zm4z#-SGlitSiNoaZt+yHzSvW|JXSl_E_SbY(u&*_g)7QdY+Z4E#lsbkSG-)Q!EW&F zwB>S)p5%8E1S__$XjyS|#pigLK2}CRFX~hg(2IH%1oWZ-7HP%p73}`sju+`&jtVZu zRFDvT2#UZW{)v_9D`$W~q<4Tu^C*s;LG+h${?13SXr=i|N0w=S6OcTF(9Dk$tX#Y@ zd}YkaESdy#GrB9a1*8zPGJd6u6oP)nHq3d-c_$Wt*N$9GYvm>^pJ++cSMFVTc;(5J z7gyd~WykRomfR4+xFH-L?1xMaD(+mNS^Sm1u9~uHCMaI{E4x;Xtb9pTK8n%RZu~IP zKlZq*10zM@9ym<kl9x^J{sb2JS#K&@rMb#X6?QL%1#eGUM>0byTot(L=IXas8?F|K z1*;-giC5*Vs$o}nM?6}UxC*8QlawrqpP3CywW@GcIX+K2@KVk0O%trzz3Skq6RW<$ zo4`SN6TJFCbrZb$QDqanx*_4O`gPUdYTp0KjnweE1+(t;e5W;Vo>$LaJ)ho@Q5+?X zqO?`3*_4}gGX83h)q$&*aSIc~EzHqWw0h-g88_@WMM{zI=IX4~WtbjWtlr4X<_ilv ztv8i*O5uHjFwH4wb=&GQSer}rA9mg6Bcp>EC8&P&)zvpw-(CHb`3{_NBc%tqggKBR z)UdjHbwBm;3vOqFX`9TuDo6Xod|Z@3`%{tl9r0XRMWvy|;bh-*BsLM-aYJ3g4fP}> zBNY3KLn!HOKStgkW+Cw^@g?{q5vM{-J}EIxfbc%vYH@*hv$#pTPkcoDDW|@f6^F#z z#Py{1h(~FUc=QUuB+x-~KPcf!Hws0OW!)5D$^?y<i};4PQ#=^^KI82x5&t>}j-+5r z)Ba5fPy@y>7CR04_9Av76s4Jb=vp>ib}cZ_j8kwTjSgN(vQex-tO(qghH?lbW?VxQ zxq?`a*udDb*cxt9LV8nB?2_2jK2U|{pxBkM5=z6$`+(N4^3IQdxf+VBjV+))Xxh^s zG#$9v{A9SJpN+ws{R~g%x6*2!H1?V#O0rS1U-DgIRAQPmKpH8HleNh{mYtJ*l{6#i zUGbZ-J#o|G-ix!13yIqscO>qsxSMf<aWCU-;z5Lu9f(u=Z=(CdDpn3KEHm8n*)9o+ z(~PsA9Sf8aah@Q>5qmhkaV~Mb`1qd1$Jbseh>MDgi_47LhEK1F%ISrh7UI^%m8p3D zy=ui;>vYw#e4uxfoeM)eM{?1Rai^8Umx?}M0=RP;NX8z-{Tc_!rD<kXONmL=8t5MD zdkA+7fajZed=}hD7C-&91i=17gJ6x0pA&CD3M$}1O1WTPAXke0bqO!accUE%{CL0k zgAyL4rz{g5k6#fV8=n!MA7387;~2!l9JfI6()bjJkU5?J|L{pa4$S)S;1l*IX-)^D zJo_60G_Yr)@HiE5kiAKGBK|`B7x7o(zmLBi-x)u0EEYm<jzgTz2?%Wxp1`mtRI5Jm zTGc0%t3ENJ=pIbjBs?aWC7C19l;}!KCC-w-V-Uo13?kcw$4)?)&oNx{G1Z!ny;k!v z<(iMh@+Gm7L`f#;dZ5oz&1odIVI)PPI3y{SRAO7tLXuue>Loi#die{cm%8yt(k?lU zb$S~5aI_?6C0}A$W&u-~uB2ReTk?nG--H<nPZK95S|_?B26PPP$n_+Whm=o)WKi;i z@oA7S)&ns{##RZFnL)m=lBy?YB{(N|C#+34nDDb0CFmzutDX{OXZbSrzT4Cehk_vq z>3umUAu=J3bJTv(Hu?mz!ccqh)!+DU4}{1tu`3B>3H8cH<i){WRcF{22V^MWgM{n! znSo|bCtOzU&x>}Z)<^gl<<Z9oiatmfQYm_vDcaXNqJSywz#DmeGD@79sK@%G-%Wg9 z>4<F|8-)zP>`}BC=%&>!iNj;u0kzMO3x7!r#e3x!vWOfdBr5S!$7F)Uyu|B?cM~5g z#-xJ8lEk*ePZJ^aY+^;?PKrNeU53_^d?)KNG)MJgDpm;usg!z?L&aGfwz!!H8Ex2z zr!B+1nPoyq%O#yCoh6+wHI=#?gMEI|0!gPzr$eyX$$0pO2XRt$!=HR@!=F^%@Fz(# zC$kxW2(wNii_#}a*Gh||P0|yxDYDscb9bW*gj>uHWq<`wx>;H?L<==Wcn#NcBlu0) zrZj>oP-koso|RseUX%VL{aN~_bU^y*7zEs%Jx+$-oq%Awv$+3fRr`PTwf>(~?*G|= zK?oaS%uA-}NTwl+PZr1wWL7c<SqN>vr6}_x%H}g^2*T6AkqN><s6cbt(58hQiYO~B z{Z5;8nDEF#vK-kq8IrA&72|Yqz0U{1p3_H}if0Z`b<Y_c0gLiLH@Lz`NvHG$h>=2C zIS%F%99<#F709m3?#dLhSKRvN_V#jNM3&rC-jNL}O=TqzJDgV?-A{UxYJAEXLapK1 zP>&+5glCeZpJb8bk`%!i(tx(JOZ#RvO7cnypmm3Ftn%z3nPg4#Em;Fkmb5vkCF#qg z$7$=+M$%`eTc+PhznA`R#>@;^=G4sPnc~c}%*&atvfj_~0dL==>ZHao2+!g5vsRAa zSbkD_(y^rTm@aQ(F{wUaQs4wl;`mA5CH<5HBO&cHH%KI!bT8=-5{cerkSLE!$-XpR zkn|#1m==<j$(l_jNl@~Xv;azNFP)IAnQWTum^zv^BTX~S7+ftzdl=EtV%x)BP`1z+ zIxV*J#!XF*N={0?p2AP@PKiy)O8Fq=_mrMgeyUIEjZ~PFKJrQ((xMG|eGAt(L2^!V zVe;1GdicV;bO3!CSK~oY_DTqmdOAOOck&0x7s>k+L~6+gC}!zjkgLHo4vt@>3l0Ns z3mJktM{$o@CH&+&$sNhVWS^N5W@HXv*i4jVo$QD6(@q7@{{a?iPXbDrlrmc}GD>oT z449h?rD&u$4!{6F--l8RQ!H^SjZ6`nVLUV=DM|@QS=up<UswRMfQthU19+C~Gc7O) zVYb$#)Tgw-iONDL#VM7z<PN4{JK#I;yEgEBX6E})DoQz)@{<ImoKCsY)!PZ!27fvX z=Z66{g}4dk(Qp9lGR!mR4^jqFfV(Ai1|mc{l40PzStxZ<s=b7t`gZEvR3iwUV_-ao zz_bn%#r(7%0p%vUoGv6kgsW)J7N&-!rl)R9ZA?8bL8;49C7q<h6VvmZeGi#BJO(>^ z6{F9XUzQmtwKx?LqQj!|U@+_;taDK6?$oxy&PPm1^RX@r<d}<6&!m2V2Pp#Ih;eRp zoz|k%pHm-@{*4T%@gQkKrnaETa|Ni7MH5m{>hrV-;B453dsqdthMz0QX~RG2N5<F> z)oW3jMVc#FH~w4+mE-5FBx8(Isul4D(^jS>Fh(3RPL5Zw*-O5c@Y9OZ>eBX-UR_E~ zwZCwMt;Yru1!+gpuBZK;27!rbpQK%+T4SkXE;%xmO3qaMn24#QuS%&2i74$^I*+zy z_T{2<_4H|&kKcs(_z6;!u90rQS}?sh3+A`7iRs?y!Rb-y;`DXt73n+E53^E3IoEeP zT7H`dl0v#PJrlQ3j$4@cn!(jg)si>mwTl<*IlX`S+4Qf{!Sc^YDwpVn+&I1er6fYl zG8v`+nf`=jXbz-<XEVzMWHE8iaVaQ6m@yd~H_-26&oI^eFcoFY$yh1oXDrCD%?P0~ zO{*DY7;}T`>{fs;;Ly<U;8V(W!UofYs|0?#a-_m9O_-6JQJ7JlQJ>KRhXcqzh@I-d z`1Ov0m#~J?g%Qa)D5ELk4++X>$+!hLFQr)9DC47yiy2?XqKp$6=Rqp~F}Mq~a^N2s zKQRX7zsvX$>_7`N$$wx1qP29|3wtqtCtSnN7|M8-i5`pr@&k4GU1r<r-W%!f1q4fn z&!qD+XJu+-F62fU${6R&$g3*OW?E(XWrlK@9ly(TXG}rWBwkJ<kc|2LF@5HA4uIgq zrWeY}7G&mS9?U$Ed7d&*Wy&)vIhyUsk?GdVol2`E1$`9fbM%}R!I6}uxBWRN^ZQK7 zH;K$Ul=(~M1FqIRxK={+4|O4t+QQ6nhD|fcMOlKZX`Ho0Y2ZQJhRZU{vdZG}A6=w3 zoGZ8CE;1KyWQAtMa8sB2--|caCROl~vNmO1$@(dqpFJbHB>UU!AF_YVejpZP)nx6? zI+XPh#~Eg_TYNX&;#@dOStqkT!)IwXK1*}C5xf=0&$^fOR~E!zlkC6{$qr=oWc8Em zz&$KeSq~3_pFkI7nnHWPFa+9<5k|FyR!R8TbF%fa6S<KrQ=|&A&9fb{7iBNQVzsfd z%<^jQYf8ChRYAT*in3F)*I?Kk%CIlCz{iU03u1nDZT9YLE~au1J?eQd>g*%gC-A8E z;8D+0&Q!U+H=7U%lz1~LngIL>4stBx@#I=wa?Z>(X>0P=oL=+g+PP~D^BVJ`@)Psr z`N!8etqWVXYTcT3E$fbm-^ek`3C@w^6z7cPPR%vW_0Ih`_p>#2Ya(J%j&+XD>z9-4 z!?>s+4&_ATM3YRMhB?c`Ie;!DCncxgKf07%B*~bWuu1q^PD9S#oZ~r{a=y*Emjk<< zR$X{v@zgQrFoT?4I4aNGt6wqB`t7v^_)T>Iepilk41^iYd6_H3GunV>bfy&LzLTrL zV*LOWyZzVrB*{e|<k~Bp&ovn+Hz0TQ5cm(C%MDWrzZ`m|7#vIE=ceSY%iZ1I3qG-! zD1jqNE|I&f2i^_!;Fl%jFZ?5K1pHaLhm>FC4};N&MQU$m3v<8C9a|$<^Try3o?b`> zF*cfxa(~YK6HlNUu<D>l0S^^YoM7LQyeS?GAsQp4BDl`01WX)jW~`Zui-jmzR0Bz* zqeP^eAt3}z6A*yDLDCF0tV~@p7;lOH#LMjA&gs-R!J6VVJJ;-Aa|Bx5yrzx~&e}{J zT)3W&yb6<0v!$6RonMvh2DY5Hl%+(l=GvO>wY;@&NYR>`Yak0K7A;HIg$%``m5Yw8 z0YQ@`g!v#K;^OI~##3ot#=*r@F#y`NF34A+W+zo&Yq$37+OOB%&$G&_6bsjStqoec zeC_JBT*#BsWsctT;hhCrZEfOOHvYR2Z?#!c!P?@rm1~>U9>Mc%s<N{Wy|$s-R5x@x zmx#O@RQ7AXUwe~oaXCkBmc!P01noS^o0>N-PY+5x&U-EXCr^bnnytz}CE=YIpi*jb zx**RbFFh|muK;S#^UDj%i_VkaKu-kHEM=t>f=34Z#D9W63i`*GchO{+(oVRh3bJ)D zAx!G5ZJ|ac$ZN^_An)tEF^-T0a%=ce-WjDeTsxf3&%2)YdtM(5T}gX9vtOYA?_E}H zGYc~V@4%r<7Um1`_494=UGoFQD1UPPd#YnkQyKD9)sL(3#F(p;;(>SU2>zsUOI%C} z%1_PD;}j&;xGy_W`T3jkx99Iyi7Gn8F-`$gNiM2rf4VUL^ZdK{uhvaoH(QGGzs`ru zeoSJY@P1tFrAIKRKl8hp=vy_M{^mr!vi!deglP<+F$7M6EXtN=p>-PTEEM2S2Uq~Y z(z__MmO@w*4i5B=P>KRiFnp}@T<1p_J`Uk}j*KX!BTmmj>m=*a@V6hC9144L(Yg)m zl)}V=xwZXxUA@xU=8a?6Gf(i-=P9+kly$#vc(U=GjY~IfD0rt}UV%x0cR^&q^@8!j zjfJI!hYCL~JY6^@p0KWO-T1nH)(h6pTW_*~OSEvDHoH2|C&mKK==v$^-@)YII6k8m zkEq@GtYeVg$KI)v*L!YI-|+4R=M4cHR&Ge!P_&_O!$)GY-f#V@K1G6HeZ=~>^%vLQ zP&vpiNnIzDNnPJaDv=~;{o3`VDkYx2rtp0AgyPT8`j+)aRSG_Tz2LLgU%cq&k^-&& zbA7)GILL`ASq5IgaiMZCdBJs8a{l=ZQ?Yq%mm<DM`1=OU4OW-}J8dw+6xa#V+}~Ad z|Dy*;f{I<^<?C6U{`^~^0B3sTOiwSrg*kp5?t92~1b3{x*4=-GA)msAlN-KJ&ZqE~ zA{A};X2Wm)spOyX*BZJu+>OOr-N9J?hJQB-Hclp$^G%9AuxzEUilsN=1RFIr>TWdM z=tnb=E|?ZMk=*1)n~jbnH~AaIP2y+_XJzu_M5UN^+qin83>&uTYqR7Uwi~mVRFfK@ za@bh1@kqh6hdF5DmW{gr5%wv?iM$WqGq7dBdPAMI*(2E{Jg1GPH(uX(uV4aW=8NC> z#o#cIDbff?X#c9j{>@EC8~@z+G7D`~Y$Q#3tfeoDElzr2GR8jUvW{2rWIRI}1YuG^ z{gtHOB35YT5hzuL3M>okhQ*KqQ#m<!3f!ReZ9#w%d$2sEWc*S=T*3N+vVv`5R3IzJ zpwF5mCp4Vku%Tlgleffbd=SEHd*k>8dkWeLj<Ny(^I6QwB&gs*!4>v%CtZ15D!<@P z!Gi+Y@=be8qht=1F2)$-M!I^Tpzy6iheGedfWq9)9#X4D5iR3xGQOW*IJZ!{(3*-( z(;omA1>T2+hOC)*!CPdwngN-0fd<kgHMMGmREQ8Nj3|VBB8Aa~iJ&@yWIhl!M7#<j zZM7EQzD0(>y$XB|{4)4QeMeFcVA0#M`Gs2x>kD^NffZ^VG(V;_gB9=wAl()fT~WiN zwbH}$RCu}Y$3iauStUIYZ*cQe*i|^d&eH?>bL>+*5w}vSc_2y`RTmvD`nu?T$@CI~ z(p9A!OOKYlS7uhWs4R3-%BFJh8-z3AOKc*lh&JMvBFm!1MWIEjijs@C>{dtP5D`eo zfpaV2eN03X2}BB^lo8gP+Q9;B%D%3&Pbo~S;YxSR6fiN-K<ves_$bE2rcy+FL|pF} z>Hu#_;xusyqaac@%6fJjU<qM?Oh|Of4djXP(jt9`9|1ptCt^M^EPq=*8={a9@mww> zA*uCy+CUjM>F0WSNdv})K(WRZsZ%8L<>vAbc_axgx0icy-zt^Bx6t5=UIVWHE(a3O z<sf;soV0y24VTcR&2#wjt@6Y2o{ru}J-JA}UA~_yvzadA+mp_hAD90mze{!CoSaHi zMSXj^O{oJ_baB7eI<R$E#+N@XdaLMN3jA4-fNP;v3A}~|_kRt%`Wb}%GNut9j#mFs z<fcTcw*gkv^B5R;#zlzwKJIvkm+JFjFlTsVqoOrM<)A#GIV$||V@3ukjzvX{MJ+5Y zo`84i?Ko8QanWf;82DW|1RF9I=b)l%MR%}C6oS-Xl!S(-WI|DYaZ2&p;<DoA;;)Nu zNKny8@v2lo(LcrN#qSh@D=ba_yj2JpB!*C?P!K9DLB&SJcFJU@i%jEF>{cACQuO6d zss#4sB4z$FkmF_Lz0Z}cj|JS6b`;ksO=)dvk?@b=w&L@c47(I#3;GKeJa>O6$uKz} zh>7{dzZG|t2=VuWj}#Bb`oySsu=pu{cZgj6|M}yf6qU>_(V)D2GFgtiR;FHJQxaX$ zRWevQvDCdQ9+fzkEbUW(9LDq=a!;{Rl>}n`d8ZX)slpOjNoC2dk^?2bh*3#;Nr5UK zou$G)PgngIk2z`g3{-NY<U6R~lakK|lzHq7CFQR`Sx!z<E|t#Bdm%T`f0h7a#`d^+ zAQzQRD|N~)(Vkv9r&O=htkjyLy_!_dz!jc$F8XDNN@Oqtv>cii!!lI5sC4NAWdpH4 z-nD)ys8mv#10r&tq8l6RGVs^NRDNk`X<g}F72dy<BUph{Nsjk#P8XJ*E4^LXU;3ns zCq<=~O21=KUJ=Xtf58p%L8<bxa5DDKpnRt2ofhx_BXob{mThIz*t`bqz}%N<mcbp+ zK%m-jk3YypW!7ab_~!|hLJi`<rRQ$tohnN&%P!kk)=<`5cB<@B*}bx%vgey-Z(6n~ z7NYA<u}1fzPAMuYDXU^Rl4RNoDd{0@pfVAa9W48hzFOx3e!G=hP=XulUuD;o7PKY> zmHk=PgFzbTY!tj-*jd^&&>=;e(55N)6tpTIiPmhiNn=wma3Y)FMu$zF9eoh#Ba!PR zZL%Qaw)K)90>?lmhbQz>N$o5|wvf;1xV_`7-0~?aw_I3*Hf3!p>{oQNGjJA{KfM-h zs@k+m`P)VO?X$E-UfQPH<x%BX<tNLpZ=SIE?afOz7jD_N<;0e2TOL&kD}Ac0s+_7K zs#a`s-sZb4R6KFh!%ff2)ygN9Yn2<9dzXjCqD_69AejQ49KRj(D%ulh8OV#Kyaqsd z%cqsk#+0`mQ(n+3Vd*l7o9pk&mGxhxAVq?H2r^U>YJRxa@>o>9x;%-+<WuOV7hX%8 zpnOAlad~BV8_iuW!rZkF$z7M%ms9>P_f@#-0A=plhs5{g7s@YVeDBTRdtV8^{7(5_ z<<Gc2vsu&RqU+@l6T}|)@+ZKHJ*E@<Lk47a$8AYOo8R5+C+2USzj@(ixN)1Avz_!j zy$AEO*><xVo~NC7p5B8q&M;?SJK7wzIi8)jI>4o9bINA$v4gmCl%>Q`XUhbeH&<9x zI9IGyjHON3yleC4oB!C{w|T5$R>cA_+PrV`C#py>T?J!K>y)9*mpA_e31~2~v>t{G zn#>OiF{xc-m5VmGj1`>i%`Yn^tKd?p5-wF!MxTigimVtL#lQ*N<R&Mh3eSpY*2eUG zMX=HgLsG{c$fQyssmS1Xjh!^w2^^4Y<=Iy>Ry0=}uDDw9Lq+!%v_)r&Xp7^Pm@V;J z(lKF{vGWgxQy7^<t|P5D`Cl*fT6%TTVRb6*RQ!Qg2ST^$dmhq3MOHCT@r?6QmtimU zg)+2d;ug3_`?aV&1J+A@vl6@d9_Ny7pMkcxZ-E$45<_kPm-H>cTOufz^lI8A{Tbtu zp2uq7HS=@OmfS77NSE|28@H4(WJM<ns;b;lM^{zGxTH5x2zoilR@b()Dalq*+%X*4 za!F~z_oSdLH@Ex+2~tSgH0WjFDlxE2V4obnRJ7&smX{oL3BpIUDGgOlsdN_eD`!;B ztJGoVyp^8S1u(0XMwM20R$K9`E*N0svW4mDl}jpDRpwRh+nQOWgfh~&zWz{|qSV*T zY5Yo}vbu677=Jq+fh2{o0|-sjxMwhj>Ak_U36;ky&sTn1`Ka>6R-LV@@ZRuIVcH&c z_lyld;)=@Km7oEp*}8MeC0;bY#@2O{$_N?SD%|>xDie3}H6|_q_`j`2TUGeK9tzZL z>udbqo!3Bv{*%UWYtDqN@~xFy4{yD;_3qZbD)mm%`==KYxM;rt&D3rM)}OSE%C#qL z-2(~6v?l>)43Qn=CBdYWFV{}rdTIbXC$@gJ^)e&9XVPRdA2j`B21BxVEcr^Vowl`O z08G7f6&V?5>+sf>FgsuZg)%_fI~84IreI<umtQrlYF5?!2ULJ$2}BDky5NJH%)CH` zOqN1^5UeMsaz??PKb(!KJgR8@B$yA5VP-(HkQTjpk8?}-pH<1Ka;h$Go6Vt(lw?%3 zuBw(r8`r9o^S^F_*tx1*RR^m+WcT3(dLKH$KCC)Xbph|g3wR$orJ}0utNI^6Ux5l2 z@fK9wt5SAT;xn$ytKg7Ujc$7f@=QQERQ2z+2{5aQWP+aqqN##Zq>w*y(;)#nWJ~>P zo8~rF|K+xg)qlBRj^Qts$e&_~{P|~M{<f%X@!OKw?(e0$uL0fPmbGm??*3lfeU0=w zUi!A9+rF-zUVWiPP&1>(vF6j7?`s~{ysSN1Ke2vMy{vwF!|Vp%hHx?3c5>T!igNQt zu=>FyR<P}dZBMJ!s;5vlh8LmSZNF|)!WfVX4m3Rw4$J9xA>kj*3)Ha$dJgSR6&%N} ze!n`d`nVWXYgVtIBIm1(sx7LW>0!LhX>e*dHA8hkbr}8KkNf^DWy!folJ)B3>I_n8 z_6Kc(E#-|?7gukoZmiy0eS~omQM%aX9$5Xsw@c#|seq!Cri8{FCIbE!R!8j;FQ~p! zeZRW1`Z?TtS$(}41VGaAs1{0tqc^Egiy4gTteiJqt#pxgH|vOUT_RTtubGSqTvQ^z zW=@S^4TKacz=89(8ajD~0qrm{%!a?$Nd-0DH6b-oHSOHlC}pX>e>$pJU6aK2|3~uj z%Y8NZHS(Iun);d+X4JoNmaI-@)c2J}{U<Z(4yDU4VSsQ8d27uDRgaNr$*AV18n}B1 z6b)pi`y(~?l@M+&<M9#M$GTO2kg8rgxmK^%q_(WKrWS7Fgykwy3#^@0tHE?Goas?0 zy|m;F=B4~^Yn^M|YZuo>)h5ARm_KuSN=&*y4B*J*wXfY~zCH)lX4Dp{-e$fLs1e*| z{sXsX;4(w#hMa$~b{FGGagC!`!2^;So_Xz^+COT0>eTDz*BR8A*ZJ3_)K%3r)qPZV zrtV%{XWgSZu>I2nK+K-OZp=Qcu7w~3Qs_}m7Elq7>fWfEPHmS&i0B^xJ!}_fR5f*| z*h0uy9{mumEd<@&`0sFv>+I^>@hR@cr#KPh?z-^0m346(lOgU)Ab6i)PD4wE>ayxe z{=;c#vYduoiPL!dzwvOR9P?qGf$Bc5yG(NoIe^#duGQV7n2&Or`FKn!R7kBb?*hYy zWUy=q?<^$UtNW)Ok>PHky~7as9G=dvf2-c2-Xjs!&#E_|w!Ye<`uX@;q<+?iWyWiM zO9A9f@@Pp0zdocsvK}%)lI+kC$S2A;+B~EJ<`(E?q5Aat%6L?tTTeWstN@@G<sIqo z7=e_#q>_|(ZnTF?iBFQR`Psty*7~pNZ#SqlOodxeb5Q+<^(W|EI2~ghCKTMC&O80I z{u*=q|D}9u>hIV0a5Tq{V?++uL&8T^4oId9+ZYm)u<@ZB)S%Iz<PK9v`py*b#u}^| zoS4%Qi2Z;Fjo>lPvaPiSH7sv90&CK+x?w*#v|>${hSY|VhFx)}A-kbaNiXbA>V<{z zsG*{vmQfD-J?MKv=7N8<nEn$m(m4p$dEUqDbz}`^8@_7b{J*}ZrzL<pL*HlA@G=@+ z>{!2}Y{#}8yP86pqIQMtmh8T```(_IJ@I?dUZ=gw_Qr~*Hon(r-{{%s-x%5`Z>(%= zYCPC@yYa#HfgLk<q>EAG{6?exAx1kuSQ4Z!Bx^1-Vvp7lT7?@ycf&9dHAXhdB&cyk zV?3R2{!cO~{~x)iF}*PlADbii*cftal-c{NV_;yAF<F}76(dAHrJ%+S8ovh22Hw_` zD=C9?=&WKTgPlE(lx&xmROFh%EPmtPjsI@%gaHjTl6RrPg%!L{X%<Kq81e1u+jB_C ztej`CecpEC?dIEUw!3c++#bJOMyE<=u*p9zWX9fp(&G#kl}VYZxmD@NPRvHz!?#C~ z+mCp)9PcH~jbu*WM~qJde6c3^b7*ei_R8(Mwzq6Qxc!su7q;Kpepj_QSF*XMWOGlr z=BkvMn*_~$x&2$ZxhS@|0<yVrt~nd>UX`xihrmmsZ2tD~9cnw?R6NE!%q6&A06*^} zaRzX5;7%(o6Q16ozr%Wm!w%0KVLM{Y(GHUx<`5om8o~ok9~Z;_Fw|*PAN$iZ;$b6s zPAmJ^p9T+947ZOvGU`|m`V*)jmg*xVn}uCFj_tUx<HnBPcMR=Zx>LM!O_Lu-Z(Olb z)N998rqUN)3b2tf!=OEds6y=JC7x2@j+Z-U?3}Z6;Z9$O`QORkIhm#v1(>~E$3(Ss zsYnlzGPKidr;CcD@M0NOjjU5~&Umq$+q=L1uQ1HEEaA?gomD%}G?_QKD5YQzB9rtK z^K^Ia+Ie8-Czy&QDXqDXVP%t`JD)erAB->KneO~?=dU{zJ0I_S*));kL^eZRV1ELd z#Z!(J6SI41yj!W>soAJ$YST=5FNNW~G~P1;DS8wGy(DM+h%(}M3@N}LhRl)<Hn4+$ zvB$_8TnJ6khyt#^)of!GDHT$FQ*2ZHu6bg9Q&Lk-(|Q(RFj*dqfRZ*9HEqEt;RB2k zjAW(!D^2^G4mG{pCD;X5lkx9>SCmxHbfW3!CPfnnc}-`VzM-}ZtLa#$q8E8z^<xTV z?E+Owy}`I_=7Gq`NSh8S&RciV`MY#?8Se5TeN_$)NzpFzT@E<nUIREXT2!4o($PQE zgPjC4q4$?|t=?_5+jY19?qzUKhx)FJU3I%o?D}!n{oQYi(XKVSN>%%pt<tR-pw!vb zwCj+PQfG~_QU@~n>^i&aYA-mkJi-IR{=6P4H3>nDlZ|#g+>HRFZ`X4bkQ{~~^ioyt z<mRB=@9u{5lc4fpHAibzG(g!L%Ff|7`fZh|`}qk3A>b2L4C?X{p3&~?-37Zh?QZAv z>hqa%uicP}c5mHX4|(<={Q6ir+TFB!FU0cx%to3_$ws@6?mk8D&se-aHP->$<=r<p z4lx8D{=4bI-HP2qdo1_3>{-Nhcq4sB0Hpp_<O%i&_Pn)c?w*C@)h|py+<a11#XQfY z^eD^^jj<u-X&yJ``$O1nJO}4AmW!tEiJ-iRMVjPd05kMK7JpC5p0Yj760|34&pJlt zUN=I9)KbimmPRkA81_`{si(q}&$5<gP3v^Qp2K@S*>i5s)vhtf@}WHq0;C~M144p? zq~o2Ui{$kQ(aQ|9=lY&usN~k3U;FyNKD}V}@JKG&^I%UeEz%cZNxpaxE<6GbTibTe zKP0OK`G59K+-oT-;(xREt-W(N^qL9zn*LW3&oVs4pX8#w9($FnT5GwP`GpmYPqL!% zxy*82=3b)tSo4ME%gxuC?>4_`Q5OsLR_xukx1+fw9__8(+eq=?%lcWG)Se*N`@!Cm zd%xU!6XQb<WyJjI=hxIazo?+%S9gJ3%`O+7+55Eljpp~8=Qry#n>0H$*O~L1dCh|6 zi4fj-2B_JYIQVCQnx{9<BJX~KXtFcprEX`yGhTQGQ>-(pl<rI>YW8R@0k$Mf&>Y;n ztU0lH?f+NwHKKS%nJAu74SiMpHawspBR|;rXy&Nq+sx_F`3nR_xKg7<37>}!Li(5P z=8onuOeB4q+510yaWA`>9r|IepyjQWxh=UZ*Qh95($+!f$sUZ2LeTB`7V{RH7RMI1 z7QdEdEz)BUZ+reYT$FeI1h50=aaHG4=jQxt13s@j;PYgx(O_CB&$XqzrMcykmNPA1 z11)aZ)&d?<<lS)dG3HoFa*%S~#g=xO?mfB4=x7R*#yX$*<_f(QwA|e{f1l;P5U|pe z^0ZreS_WIj_o037QkNlVYEUY8&ACd@h|Jw8k&86;vDvH%(L9PpBQ)oc<>i{Q_Ze_! za!wZ7XTQ%A=bF--LvnL+&G+^#27hxuI>dcn)IKrY;`@+0Q-5EgQiBt+YIs@ucJAM^ zzkUBNt&<PTIbeC9_Rz^g_YNuA=CmznyWDo8ZKOR?JZ0apeHZp!*>`>a)cqR!ZTEZZ zkKUiPe>;a(H?S1-6I$;P5ii*H%f9>j9_^<S0g6anpj`X?eGf@4QbDGyWo>;&_q||k zeIMf!{n0~-TzGN+OuVQUfkf}u-EWFX^e31^i#UwB86SGNsCU1z{(n2AQv;(pDbw|_ zeSMsY_UG;2*4xzu*5lVd4v|qWAWp`Q_NEisHr!sH6(`t#eE-?~U+({owi+$RR-;J9 zC7?suL=+j1_TS&%%|`gW4Hl#Q1N)y~-f}r*F_LRUx2j=ptQ8XV*4eGzt<u)!)-$d5 z5>Tr~s}b-|5Wz<Uu4y{<DV_pKZMAN7qETuYMyZ>+$;?<;s5PWDg5<Z3W~0{VRxy>8 zy9c!Skd^yaDZe$NbyI5t?DN*Otp)TxH^=*&P(f)&StU{>H@SVSA1aBhO(W7GVNdH9 zt@QmqEPu-;WbRqRZ|!IuI53q|b#&2MByHzjF=`!aeTCO|d;b{7L+oXSLRd1={|RiJ z5L@%s!(R9Tm_?2X4siP)6-v<o`vW0jbinn1AG@sgY4LAGdNKct15pRo9w;RNHy#kv zhG98ce;|cbK%i49%)(<(T9Z02iu(N_Q$Nsh@Y=!WhlGbT4gnXGGU>pl2ksr{IWT@u z=b**G@`DWr&p_iB4t%f5MP;h+J~VP<`NKFBOPE_SI`Hz~T#_G3MhDdoPQ!eZgR<dE z#&AgXDt`Np8T^9|2cr(k#OR>g!5|e`GeyaU##i<1cLjzj10BpdxE{CVq}*1r@(<@6 zba2<fBdR=@iwX~x1YHN0ew9(B0v<vKZy)@fbR-04h57L7!9noqRq`Ty4_}U?eUUrD z72GcS`_OcyUA7|)9nv|pBe59$ddT#U{UKM5b<?G!fyq!f0UcU&Xbp)di_yhH5r<YE zO6G7Bb<k)B#<{FOf^JdhwFrHFsOZpEu1<Td#7$Cug}`b`Cyi!6#24qs9h!m;ojY`y zvuv%R{3{aWXv3i!*biZy62=Wn=O5}n^tA15Zpd4?A@{clm4>`)7~Iw=3)BLJIDVAH zZ!>BOZc7#O+br9h+q~F4|2w_s%{h<z7=;wIEp20MR5i-y`UPZ~rMw#jZ5!J*wN<t4 zWNZ41u4y%=!}$wqxzhM;hucoHony;>O_%lJ%6`ortntS=sO{%A$Oub0a8^_P)^e2J z*25M-CvydD|FlnR*J=;p=3@&tACKB+D$NJn+|jPz?yr!bcGGqzGSGwV2x)EMd<#MC zC?&@4({rbTN7|m)p4pz)Ud#e*p?g1t>-`pPr0sR>d)g1MWxt}!dU9pI%C6&Ox8FN* z{>YUNygo=iYJSw|lkZPNoG3oA_vDI`EvLRX_5G)%pZ;(<?{txPQhR^<lf!QuUUE3~ zaNgmX!^aNaV{1M`5=^;T^kJTo!a))*JUsib)?xj_)`z_@vuRB+q;|^d`0CtiEa!Pu zmh%Eo&BM`$<1y7dgQ=!c{-6kMzE2%4RhsYhkii=M1GyT~3qVBXla3McH%vT5GX8nq zuXqHgzvJ+Q!|c^=?uS|ZhdV~?a0RLG@WUgbBX&oUj%2~}@Zsl2&=IX8|3}-G$3<1W z{||QtMMVe83d?j#ER9qW7Yr*d%+MVj)HIi}LIM;L1!2aeT)=^Jx=m{P=Tm*EPxY-_ zaYJ00VHX!R7t|K5TnP6SHJ#u4xy#IO9qRMX@4jAl=G=4N=Q-PRp7WgNEVqxu-UFoX z#jx1GiL<U&1g>}hF-pca{Z)CG8*^5y(QxrEObQj1s$LPbV&aO#RAxo&iWg|qBmkP< z7IF01G|4AV^cg5EqK~$ySG>7m)rt+t>J^Jt{CfqCkzTQ6#Rnez5)nVd<Fi=w87%%q zNMrS(9_^rOqW_Az6{l8QSoz4xA*3JV_$92MnH9OepDJq$@u#mRSechr{I#;}$_G7T zox^v}kR273>X&KuYGt35{b=^;H+ci$t6s_mgQJ_x%u3VBadK>!cEI|>obHJ$<Gs?5 zn%r*X!j(%`u3ve1)yu0atKM7n>#Cc_aUKtJBYBbcFvRuI%9V7^yDog?7nlL@oT^wQ zj1^VipO~RpxnpJd%Ka;`Eko2J!dtNCdIfuKXvv-%g#&L2R<&Jq->L^!^;|VzRrIR3 zr<he8S9QjSrvQia6s*T+s6ghVf|i<nfkLw{@YoOE_g3-?QkYefS9x^>^W9p_BoFg% zTeZlG`4?b5e$_{-9KT~%8NQAax$2u$t5y}txqQe=q(3Ct!Ct&}z7Ydzl1t*O*XOJ1 zy$F7J&djVjx$1)3Citk^fZY?v7r&<(vbx*qUaR}Bj$8fW>ep7!Uj6>+jjJ82cdtIP z`pRmT9Pw1Q+&C)^xpG3LtbY3LX{2SMyqfMlkn%N1g4M~ZXULM^tSkwpV?E011*>hI zsiLX!EYahs%<4~9uefWL=rOm+d9hbHJm8rU8j``Ru3g<A+8o}5I=cGT)hC20q4&fo zq3hB_&@6Xfpqp)G*7&aprS&LlI<65v{{%kAN`W=q*7Ouf<x1;OJ{5Y!30O8N91fDL zTAk8%jcM(Gwa=^_k>4f%k^HiRHfvs9le{K<&6{i6t$oy^1k84qUxBB|aY@XY>@~;! zNYJd|*L=8U!y2bt+%MozK78PM&41Qlg_ywLe<gUfBL4N-Ns?gl8+;w*GWIR5*}Z1J z?De`AI36FRdVkHCHJ8`iTB|{O!KbA@I70)r>|V>MSzMi--RphYg*q5jwKiyNSGlSR z<f<Bc1`EZ`K<r6o;SW4w=RT|~_hiVJtXVs5?Z<1sTDuNSbnWD|scUDiT`Xs6V2dVN zplG6-TQ<=`_erw9Up$ePqg%1|2Pt~pifajP`{%DMUR%5N*R`kDUe9m)6tlK+?cQ}5 zk>}GrfLVKJ?NJ<plMmBHzMSg(mW?=H(TMZCTW-F0uC}Ez`H$xhz$ocFj8%!*>a#Pf z{*C#=@|Wi0Xv6&I{9JtG4ug?f#{7}_6Qt;F8MB!DSMz6LUk_ws&aEf&Q{*>KN?v{Q z-;%xhqGyl_*C{*j1>pSu<gb?rJdy9-|BLSz3N%CWx61@V1@p(E)PVe-*R@;MWnJHO zBi4;wH+g-BQ)jVhza+mg|7`wMn30RA4$|;{<|@AHaiYZ-<dR1hn&1&no7X+!B~9j? zxjK_sH)x%E<@FBgqvRy-z&QeB6d#84xjl=|XSG?EzV7{X>(}jD_tUz+5}0+Cb-67E zF6I^kmo6~>uKU-z@4U>v3%t$0Q>HQN3fGmlu;sofjZ_ThFv^gR!+7eg3})SL>u~m# z=Y)(lc<<g{Jin#ocitSkYVi6#>j$hKw*KYy3G3fn|Izx*>r2+}TYrB2^$m>7$Wz>n zSvox=CnS0O^LGowrJ^uQL%Uj^vfh3E#TmI>r9lL)&sqPjM+8ohMc`wp%=*vP<GZtp zC3(HvBJgc55qQ5x1P;z%*6&|`RFqqDAp+O`1{T7JFClhO1YVOwpv5BsXPKD|0UJh< z2;2~~;ps$X!~Gku0~~7&vqRFa;(VQRzu&;RD*0P5?%dzVU^YZ;cwUUlD#^%C1Q|I# zjoC11Lpq%uuj;=c(JQT5EXvFATexAimtOGMbY_EX!w2p|D4zCMv&W{l*|2KEFB=*+ zG8_AEe0mDAVf_XNK9P3SJ$+Y#)R%9lc8g?E$vq;;<YDSpJxsl0!!<9aUU;VQkE>bC z#=wmalSNthuF>%u!ssqSID^F7X9z}Nl8V?TOT96AqiN%d&>BU>thc1$b&y9;Ph3b) zZ=AC6&5i&59ab>i#_13&O%fleboi>wW0N=L2uIUxd}rhP($RF2B{O@HU^`z!f-1Sg z#_by`HXhh`Zlh~c*G;`Q88;<u`h3$$kKPoS$ZXuZu{JR~ymWeY_!qKW2}?;XV|6yZ zJcct5)3SU02<wt`+?MF^?KEbS|E6|Rv%{B8&k6s}ChhOXFEr9O0>k&EF`Ig9>Nz7j zy!Jd^*G<=K8n9{brpQgt;psgbX&!z6F?}vr&S3Ki{~Bg>arwd-Wvu^4n`ttcO*1y- z2|6v58!R>xCKtq1d@s1Mx`X@)B6|NI&Ee94jY#}=R4^y-!Nk*~`<#(Jl=#gh*?4y} zi`i6L@K%Cm)6q>QHl5joO{CHqugzjp9O4;AZ9X?OprCz0aKU2*0}EmbUMPq!NW;lQ zo@K<w7M6uP5-X=<!$o#e3*j@Mh0sZEab7`;w^<{$rM!udXK}7!c}D?X@LyrG+|(S^ zHwE6u$3dNMN@faH7Hn6t=is~8bC9KN!7l}OHh0<FV>7pT%;xcAs9W^tqJqYPEA*uf zFcW4x-hs3fU2i8cn>CvQrNxeK;S}-Xm}BYSX*DlRV>b8N{0vO|qIS7u^HW|;XFj?S zNdq5q7V`{rGW4UJu?=9DXc=7esC9GV<{6%td3Vf<-SZ<q-8g^s`tcK<qX_4jm#NH~ zHy1hz4{S-=^6s|nMX`?MjxQWPI;)(&7Y{8yTk>6rE1~`7y_*khKC}69VPN6Qh0_Xi z3*RsN*j?k_;`2b8f7y)fIoFY-Z^2W@m$aNW1QL1k%|f-T>3l0o<d76i;r)d@3i}q0 zkh3+Uh1OD>$`pndMz@#)zf&U5fycMhVM-gZ5$vj0zUF%*P*LF=uVT!;a{a^!e05tK z%S2hS)upo*`Ttq?pTf;Fd6AWKYk1)g_yp4M!ZmV_KV0r~|9qV(EHB(m+jytCS2DIw zY*YAq;h%*U3vX^2wq=57FisY~EAfLo5==aOB1N;M%@*yJhqv^VBY)dFzqj6MsiobT z*CL0vFrZ0fw&=GQsjK+C#eRjEUgJZ*#3W|R8(YlMGQ{le_#!H^<*hBb@^EpQFkH;; zK0UeJman#~+)}i4*Vf;*J-RJ<+Z)^d;}Pc3K0cfQ6?{wemWC}Sw|3h4<koRpH_I7$ z!aE~(KE_h~RA$ThEq7Yf-CzGzELRRpWwv(N+Oq}d&L?sOPZ1YPZymf9dIl{jks|x+ zYXzAO)0wT4w$7)cW3MDITc>PwujlX6B3U0MGh3}&mwE52`;^vIZ~b)Z_bp@iRuMy| zyVg~^KQx~cR=)M17k63Hn60O`-a2vN^m%;1?~zBgUY0tVPB3pLFxxcS?!`1J_QlIA z_0>h3jD~M`NGj=%Gc?<t+%{+%x9wGVzAY6Ctre<CpA2T($Zg|9ZD78n4J?<mjk)-0 z1M|Jv>ff-<ylu(0<?@tV#I}VpLr2KbHQ?|n_X^id*BUdKZU47zt^D>gZ-w)-ls4O{ zw!gmpryY}bs*8pt_-{M7?bx<c+f~~ib_;^<MA6?1ZGPLiZSL>?eJ8j1UTMtsHrur_ z+k~~KpH;LLAKUZI>g`W%AF+K5Z5`b{aQkyYFGiY9^QU6ZCAdEkwE&Z1>*&YH>g{iA zU$NbpqS<cVK7TvE{WCeX&=#@%yJc&;gUwLhobfqkx3{m`zV!r7OSpoi>FSfTEbh^P zS8#@X;r6QS`=H?0wovJ7Q<?3*?TEla21I>+$2~h9+3`dIv;FE0O-ucIZVUZeaSq5d zxz{tbKy`q18XDt{=p7?uu1L#ZcD%3y=R?t)f40N|AEvk2F=NNV9l1N+-|@+gJvdL1 zR^32T5DTj_tt?r6L0EnwdEJBgFV&qZDe4_x?I_$)oWSh(za1EnQB`2I<^$4y5L7kM zC)m9X<$hr)4zuIn4zE$^A{=yul;c~1naqw0J8sBjpGIAj@J&TbS|l%1h41XMbHL7F zJ73<JuyfkZ+?`+Ubne`{^VrU&qQIg@i=HSNBnM1%^A?U^6u0EOzSD>PFKtCnbsIxo z0T1rX-05Eb-YD~6Dw^R=e&@$--LOrfJQC=c%Iy4ZC-fIZb9>Z160mw{*Z1DNWcHe8 zaDdYmcV67tEY{B~C}cZbMgGFz;2p6b1Vsu<rm}KWJBzxWI4gW@<=QV&BhGXW8B`m@ zk{|2d9s6Nw+oJJB2}S!IgB{V1EJv<KgGiXh6iqE!=++>dMOj|LDd)shv!;kIT2r*6 zs62rwT3+;3OWw?A!F53`U%oE$=8zUB1}jzbn4gONC_3*@IRYKMJ$iCjB2#p==q9Z? zRSRd?s{c4o-x(Ct{mJQ!;~qyhFa~i82C~pUVS^Ul4U~0J;py44_z0FbMtby<493AZ zrkp?}Iz~HQk|ov0-jeF$3tordWngQPB;v&Nn^y0$BrqIt?^sIrs@oUS+d8&5N*&dX z)6U7xG^fL3UP|?pc8W*GsC4|~RnWOJ)Q$_zG0q9e8ploNbIw?&2?y?KoNb&voqe5y zPc&bF5y=_keDE}kL&7{H*<=MrqucAG>~$K8`h<6<PSRQ&za5tw@d5EXI`-D@2U^gc zD=X!X)3NB%#(C|fE9Y@iCz+GZ$e*@#TAg2$cD5+2i}O9_$C6d^RjIVGSahg3RTg%i zbG37m^!hc=>!+{C>(1`Oraot_^Jk34j-L^1*M2JnQM5Kw?QAM;U)&W-+F>W1mh;G? z&g)r>^LDXXn4$g?q6#zANAV$z^Z2lGvuO8T(s+ETrnpz}6UF_D2mUc5yVrKCW$#sb z35K(+SkK#QeO4~>f5nF4wBm!szvGKQi~LU(k19@-ySCWkm*uW4R%VHl$xLx(@qADB z7JDiAZU0Th?-hSu{B`k);w{Cyo??nWEdCV6t4%OoZCd|2e&o=bT3WC+DJ)o<ye(J= z<cVdHdz^9EtSP=;(x>E&k}nd}#jcWeB|&as_NCZS_JEKod7wlmE5~2TLaGO}#gc&~ z&y<WP!T0S%Rdud+|8;9>%l_+DN{jyM7NnfIB&%e8Nv=E2uf#ZY6enNup&aK|a-2Hp zxTM7vb;;_I!jf7KqbGS7y|kpvi_sSeJi?S5Ejj5yCwkB&B^VI9SHGvvW=j1_XCyPF z9ZDn5TuWA$-dEbaR6goAWLgGO8d4f6ip+&lm-c}q5Z^j?Wv;r^P&%^oB}o>9K(tAc zd#oNo<4f^jNa_t2OF=(Ne@``_^u5wgO1~~GD!p75SoV0Cv20vfN?BIfhh?9aZIny) zb$1y_=LqM7B$TeY+sMQxF{NdtyM;Nr6sXmub)`Rhc5n0&w{hg?dX=8`G?_3Icj?VC z_xR_uT-+%TVP*H0b@%i`ugm?=qp3_;-!hz1qUeVnarZ-uykylqclSeAJ^j#t45n;u zS+-a*7W6}9i_7dnKV%d8A$%9%EPcvoW)@TS-?A07K>;#mo6N?l_1L{pwyn%T`oNgR zOW3FP$cvWcDofefva99Y%O{i{uV_<|Q?b0Fw6cBWq{^hqqm`F;#qW9xE5(I%LaLju zYsy^Zn(~h24`ATL*kn6_%{_vm<sOK0dZN1gvGTs<apDkaKMi=w2bDif1D-#`xv(77 zt#Wz)^=!A|8k6K-o>)GkJg=NDKSZamh@Acc_Gy({%I8blEoO?_i<tX_`fDc*kn&W2 zm48|Oefiq*^74HWvOyXmWg-4e<=e&N9C1f?Q6%K|le}H!pnG%IiK$Hasq%B;=B*nR zru<6zZMmV@<eG1nqORyv5nM6FJw+9p&Qx@-=<VLUb&7Ux<yQ=;c&=i2#h8lMq%9zg zu;WQdlhV+=iB_^md)CfMySL7J?cU1qn^`f-Bb~(ENS>t*4@^^6{HtPJ#df#G@P8HG zd9~OqPtduN)%TU@Ohr|ND}kw~skkU^;+j@*w8HBHuID{FRo-fGKridDHIAFXR0dT( z{|D4U+HjJqim&Wh*{5<)Wt8xt`UkxD`#Dcz3Kuu2j7nuH<0{9H{o@I|yi8^m6>a9h zeoDWr4FAfE%Gs3*E8nZcBo7IMd})C~Hk1u7Yk8^g<w~o%tn%~9b(LG>ROhI7SN<sN z2FsTgZNDQu@5LPNG^Vnu@_<Lnd06P1_h&Md$1BfbhE=ZStVY@rot~wxytS+St|2f6 zUh$OXYqYkQ*>&%(?jE^m@W{>Yc7=M?LMlp;W|5d(F}u7zdbw6OKh3M}Stl^SBEQsK z({^P^JTq5f7>mV!*Wz8vcYV5R-7e2}XWkK8N_z;YU0?3{L1xu=<UF)jY`=>3te)6a zyX)w#-`tY3Sfmu~vHBHzVQ*Kpt?J~)Iz=q&!8&L0s##UxRTWh=RY!M!xcjr+xA(N$ zGkuR`&pQd4s%NV7Rj*d1h@l1{tyLqcUX;_iNlxn^x%jffuFuN#KTu_^T3WTXN;=GD z(XByMIaO~L49dPWNY)hwr7%?=Red21y$@hiK0W8wh^qgS-;cO<{F<x~T)@Y%Ww-nD zzH}gsRK5$7+f+4HUD-Ww_j9`qyS+~49+0A`y0g3O?)!H4lKY!)TlD196g_!b%bwhQ zrbKqw4O+1NSQJ)NW2Ggtd-QIc1A{Gh^Pt2gYj!8@p0RuG?nNXFL=C&6he!L!y5t^# zSu3x5^w|ZX2F9nVcYm{c&F%x9Qf$WYmI><JTXvW1_U!-KE7n4sr|$M%#^-#2JHESV zx98kwtB6y3aNc95@#*S4o%eLxgAIK0qQp6vSx;j2^x9*TkMN(t><QoVtfzha$CI=> zo+<dx_Kf#xDqfhIG)zJ3UuS0aytQW$?WoJ{K3`ID@JaGL%l3TcA^xF<_?6j9RkQb0 z?p?Qc+upjpH}^fW&rs95=7pM9YksK7ui0EvT(dhNV9${~$M-btxwg04-eG&Wy=mgM zG^@M>@Tr$Pq?b-(_WZTCi(AB=-y7hS;?E_yI#E=m_CB`vDNoS%JgGW|RcW%GKVcTL zcjVsj;uku@y4|>n4F-ZBrDek6p8PulXRG&`_s-wT%Us8KbKRYDUf;yo`|rKq$f%GO zsJDNUqx>0KS0b~wbnh<ej!()<Q!Gi$-iE!uxvh<PP>c39?!|#yw7Dp|`(mki*pfB- zH2bvs9@^*iX}#qL1{ro7-wk^tcp9_sk$s_3A!UbMl#1oG^YXCsRk7Rco`Z>r<bZuI z?@Qdbxw><8a`pSw<<)oG8$c78eX09kET!W+dhOl^DNJ1i&c8c+9;@3g$wQ%i@9o3c z2Uu<$)@k1-o>Geu20%Gs+I_1$p86za-;RAJ8*wTbmdf<1*jFhXqkxkn$h_A?RfkP) z!u#xAmDu2M;k>Z*V=A-nT6G)YH9j0Du9WOm<Z<pelgv~HS4W?`;to*#c=ZrPfD%st zCmp$f?NIJ~RFAKImGY4tcE6DH?63y}E18Gh?CQk|dRsj7HfO1;|6N^J?U>F~e^tE- z*^nx{*UCnSl~dwL^-l})V%fdEz5;pkSQ|4_y{GyRmMI8U&g{pu=-TcYYgV7Hz9uFt zSV~w|*y`kBsp(krup(8PJgM4{%GC6$8R}^V%ce0k&(#>++;KtTj(9IUVM4m5W@=4l z4PWzxC*b>X1Ih`zRI|{l*-e>|qx-RDxmWm;m=}@kT^L6TqGLT4y-v;U{;As-!)%sU zeA;iE!vg%GIX2atno~8GYHruIsePojU+sX}XKQ0UGWZ$K`VH~GF*Kf2Nla~E?fvdH zWB05a<4>ISNW|%>+3KBM37jaUYJ(>^zt3H&np>MyH@q&P&bEK*{`CFX`yKoD9N2Z> z;(^--0}eiXh)L*B%h!HV`*rOPwQFm))YjGhT&J!Js(beMA8v6n(%mz!6;<}zqVVqT zmS$tn>DD@GcgdaZTDjBh?<wlsX-w_!wYS`2?vL8@UgiCvRAVokJx*(<M4Q$~Vu3WK z?!mfV9y(S}mHl2fz>7qhm;OW_flp-W#@0<FadcW1N3)Zdx~X+D<)T%&Adc$h)aA(H zXsINQt|qsw`&a$f^(*SP*Z;J?_x?#K0d*_uHr5@i`=h>Z{WJA*>fezC;_%<-n2Thl zuBfh3_N((2lDArXHT4coJeEH;rm4GLud44<-(3#(n0L54@3idr@9-@;{yXm~USGzp zt$KYuz6ar+3%PTJCNSz>s!wS-f$_6q0%PJ`6Bsyn5}PcczFZcR1UZ4VvalVGeK6nE z=X-JAiFBsExPG?`7^hqh{&uFi{*V0u`@0-J4R*S5{w(m9>Tk(9(+bD}_d1moUWYc1 zxO(?$$Qzew3V5n||DgTP?jI>fnR5Z>LwlWhZS{UwgnepqT>qAO3e4DITY%rj{d1%d z()CpT{qOGoWdDEnuiU@E)6gs)y?lZk+3V-9J$!2RWBt9&h2F#Nm(ttr|LMS^2l^fu za^Tei{DBXXtp11hpWJ`*fLb<74c#xVoVYbqPTS!d=aZNN9S(GnJ@DlmtZ9^<ZuRiA zgC&h}T5Qvp1J4{7=Wbc24;a0g#m7?1nj|)+15*!VdWbCcG^SGryyf4FE7IPk%X66n z|2}}P!X5bPzzTPRUxFy}4-`tIr6sYCqC*fHZpRGfK=pxxqLkct{uEAu!YaBG=TdXj zZyq@5*}rSZ%<=ob1K3dxDf%yu*eWzL2Rj|SPgKcnNGjQT7XO2N4h}r{?7^giUS}!1 z?JkCQr!fch2VZd)!^wlAy^7%@DXo*U)CbcJzJGArZ;ex#gXV(^J(WAH@%)v>lQ`?& z<2C&ZPTD{xeDI5dKX`nn-VIC@B-O#vgVmnG&GQuQiG$wu-|06%@%+JNxdM5&67$ZD z1m;k?L-)ER?ysV#jeqk!)tiT&ZisG(YnapU!Qp}<j~+1{nRq1WNcNE>M?O9Bbwc|? zqYq6w^!lOHL*_%phmIX;YS1=3<l*5dg5>slQzSRZGYp-SqB*qS(BeZM9RkOTmc*9p z%ga-lL!TX5(L#dUsgS2($F~$pm5no)L%R;ScSjCrA<^>X0?7_5xOid;bLet|-zju7 z@?Jpyk1nG2&dIF*;iZf2iO)}OG~y7XgAKhJhRV%na6_2fEC$O#4to022NKl{;~HLR z$Q11}3#dbANNPx>4xv%%5V|kFdMPcNS&lV)i~Qy_ENbATp1=>=*@RPDKS*xV@O8tg zhC>a%HJm-X&cg#kl9-0|4P}^mz!r3TgUW6G`Ip$ccpY!_tA{0C@sz;!OX=^b!Vb4T zeDC3h4~HCn=J4>t;|?brPCGp7aL(Z+a$QVzbHYin>ZYKpJsf)2eg4@=xvQPxwVtWX zWcS8;UAC8y4)PfO=u=&yh3|s9;psBO<~thZYs~o_{_yY@hkyJNIvGxGx#K!_{+#62 z1&Rlx={jJSy&7w)4{twQ;VJohlQoBH5C3%d%wex_<Qs|)YZZG+Y;Y2D`1X;YyNmLZ zyNdGXRP~W3jtn{y<tfsMo+2&8@nSM3tbuweA2#=qR}s9N&K!B;h{Y5BHBb1Rk_NR& zJ`_=!epn`-L|<TGj(mRvtN3L0cOQS39kx}aQt6Y^%n7Pd)03wrsHS8lB$`vxXQ)!< zW~3y~P)$!r%*4}liz*{IGc`RaF?ohLIWsv)m6ef@n5=p+F@5^<goH%$R++sYK$osI zxC3$Dhr1i@p12>wJqULsZVvbV?<)Wi^vCU|3dV0Q!4-zzCq>s~mFgbB6#*9^{8UkJ zJtVj|xVj6j(QrK?xF*6CBDf~Q)lqPzz|~1`Wx&-(aLs{Bj4f&`XFa3SYYW<$_*ypm zhDDoK4v5MAl3#con;kjB@<#StCe@O}+2)0WarT$g_BS<pzF6BM7ciAdThPJI)>xa{ zXX3xe+T129*y?C+Z4Sx`Vx7k{u4=v7!MRHETni86xi}s)EM2t)>RgAp-LQU^PONt8 z=^iZa;H;&(NhNF{RSNqzG@ZX`SXZUG#^@?B<T)1ZXRXc5!eE3TiUFV)sNMQ!558EW zXXNV)xx384$X7p$zcI3I_Jhdja6isf41ddMBVQ!|8!0DvI8FbQA~ARyKb0y1J{nag zw<~Jg*zptC7uj*_cy<D3PYb!o<(#Pmh~xb!G#6gV*$l|3VYVT>4$kjc{wAIlviv1H zePY0$T^|x=vc-L=x9LL$8thzq&NgnbA>5(2jR`jJH%+!NIs^Y3hqt|1`<MWe?Zpsy z{K?tkmYQti*5clby9jp$?rI^`9N&Og7IU_VIv(Wn9NN68j7r777&0)gPMdobNi*@5 zPfYf{lu8pn|4WmdI6%c8H1hjc*CCE?<`63PTlg8mcg67sv_14Fl|;tGR~Xf$rcj5r zM-=KiC|X+(s0yvMwB=lmyj_;Fd39zj>v9^c#TwRnqkZO{ru(C<^XzL?mQK+Xdiz?G zohsU9wj&BLt$fXoE|+VeIW*kC*@;P2k)6#QU0?#IhB)bBQ$U42Z!MCqvfXRT(s0(2 z0A%iaq|Xe;AtcyULpgJmM_$q{dK$#^{PYq%pIoHp=Wo;Vmd(6n13!PQwuj2<^0Nf- zhC{X(O@;bHH7W?itak*@qZR5O;e%J?$x6PzR;cfL)XP^S@Oy=NHKj+!{v}X2RiWO6 zWV(HC3%*Si>g^u7*7+5J@A(RKR}Wq5{M~}@<qGvz9=g`~)q?N!3iX2?y4Lyig72*g z^+O(Cj-S7n<45VZ(8HYbmOAgKr6<SNa(vuUfgy+sxQgd>Ag;=DSY9st29Bn&d~xmR z$cC%|0u!Pg3tXn>cXKvVh;C~DFm4K*?Rg!?S5|-!5#j4iVr8*~1apzxR8cIp_+W%_ zap8MJPRuE-#2YrAeT{vUeI@?2Nw1cWe4UJ2qxulPBw;nGV*C;fjcPA`y9ll*@Cr#h zjcN>B_X@7>kmbRG>l9pKSQlJF1-}j`=z)T(J6t5UHQ;Vm2Nu@zF9hrPBSu%%D0`Qh zxX9w!6Q+nf%@-R(9h|dSW3+d1u)M~>MwXcSYPVkK0f$MeuL9VtgPXGtZ#HRTYVjXn z)W%erc&9P4YSzvswTZ8a%iCr4XL(jr67DGBY_Eg_aJICNAkJnE2_|W&)AQ{O;YTSM zXdY<a97%#k1KP{W96wV>%?Sw-<tWP^VM7~gn^<)NANUJr@A3;9xy$^7cI!o?X_o~e z_hpTJte;*RQ_pH+YEW}*WL@SiL*7wyN4-tk)Q^wW(0?C&q#-!#K{OW~%UAMUD)qd+ zQls5^sfX<W$l0cL6>U*QDwZ$dcuFx(Dds7~kj*;eB<BW$qSr<{rKZVgi!`k4Ry#|m zE9oE<^Mm+pFSv4UEJm12HOhf+EnE<g)ZJ=?&Q=VUk)CDFO3X~nF!xQIo{*8HlHw8M zF{)GOk2NY{w;@8%jI0?6)04AQdfpG2LHP=G#_ytHiga2!8X}#u+h=tughX(a%(_;H zRH?jb$4s>|kMerN#P8xze~DaVRn}{I?ar>8eGr&RWpp6}&%gm8SjQF;Ye9;{*t-PP z-n47(;Swvg1)8U{1*WI`IOnkdu7i_PS7-|Ytj8C!k-N>k?9r&BxMCK!p08me9rF;s zRMZqbN;$a16uCRAzaUMe+Bax-cIND({SbS0glc}IwxB)77lWogver@rc;?UWpSLM{ zj-Lu*tza~xEr?Pp$U1)u=uljuEnxJ#gS8%8nCqAe!B)&rZwJZ#o*9Kgy&n+Dq$3*h zztFJ~ys7Rn$~10`iW<J?^3%3aY0YX?`y@u?Kak2*rRpdC32y2q)d(T>m};TUo)!H3 z+Ayj%0~kSukoF;8)Xv2aqKj%79S-~+@kbnHQUyePh5qTSh$AKvUBpsi2%>AoEnmK9 z564T;mLPIUD8-)mJu!%MiDoyiT>7FrTA<tY@%E~&eqB`^FLXH8uBNTSKSMKF9mdd0 zRUvND-k!!yTn%|9{t0e+BbI~cqMVKw{QSBEsJfUnDs2+V{Y6i?R|w(6AJPED(4vb% zzasd}y0-Gxc<z^qSs}wloXvFD(_ZkqZ|yS^?|-u7v+9kRvj$!|bG7M(E{+?|C1>Vt z?8W-Gomq1tbJ6(VEBz)`EqhP1@66KYzc}_&%}2A<nu94%#Pu1|YgOX4nJ-(KqWdn* zI5!|CA@`lmPk-=i`sn{|`{6~?2is?7ylh+1|32gP$0rq~{rAasO^b*3oiIKky^r6b znoGC8e*a*f3tKCuzN`Ol`%bBYo|%M?z;^vcH@mCtotcIqbJvX3A25Fx{NE2pykq?~ z^5xi`riwNGU0zAI=(==v?buO!Zow~NepRX{=<*r;Qj^A6G=44@<vwaka)P;ESlBW@ zzii28R(e{$=}FL+(NPJQeo2|hiRM|!M1_3Sex!G|y!s_2ziyctGM0Qv7O4HG=2~9; zGLsT8BoQvEM77^C=+dObY`y+gj_6On#8-3?hG?l&U2#vwEri0qO7#@(8pu<R54D(M zU~7-h2>4t;N9ggHOg`v1Jw93F^MLHr&zwBR95Q_dJcU%K{fL7p4UT``%oKA^?-tV! zE{#ej&{C;B#Zv@s59NG3<zMplDT7Y{ax7xJ<0AD}?MIwV-NWa99s9x)*KzpJ<uAnL z9g14H+D~q~+t;kf@q|Le!qw)kP}GO1{p5DgBl8WU$WKDIlN@dD3Po*0?e{2tsWc|| zhoyQ#^^igZ+!d;w5Gq6p_3Iapd*y486snyN3J_Hse8Sx2Lq75Fp^=wVVqW}1ouJyU zGl6h@a^&b5nO6`(qD&Y@<y~S_x@td?f|QFTpXgrp<l<u~R0ov~@p<zq;njXr0(8|* zeKyGx*9s|=NYgtm;%l{Em=Fd$#tbbN<MPIkLZJ4ezJSv6=F`Imc+yiUQ6>WP7X0q^ z(MdkP-sRJDmk%Qb#yFPpMHeZ;baiz5JSq98;3GPpY2njvj;G~PpQiRhLldqIh9}?Z z1l|;{aZ)G&qw1I82}O9Z<S7j`Z}G!Dp=L>;1dPf%E~;No$$#_1;VT+<TpvrJ1Wb## z?r9O%{JBF<dO`^!BfJ+dE#kUY2-SstaZmaA`Bk1!6;fORrbS!=Uf?K!M;9zw?Fn^U z3MJC?&KK$KVi{7X<sZz5_k_A7g%U6=;<{f5C2%8LlRoOd!V~H~B7{r8w8$5P8{*R8 zmsn$1+OyC5yUVb@6iUFfh)d{C-T9gtH9XT3ijzVKm=<x7oL2i$e(7@k^zi7m?zkpP zp#)5exJViH@J7Fpi5Z?y3#3p2Mxgqc<U<c=-H9pFvIY+n-jHoa?bjf<y?<6Cgrxn( zPft&>q$S5ErX^%$siv6Yv&;!Ik`gkL;-{v;G!`$a$nb}S%=3_ynj}4#pYnuAo{^ZI zlsaRo3ZBVxU`R8^yS+dmAu0X!WQlBAYL*#Eh_}p0MVRFHSqW*DWQrc$O=f}wl3ohQ z^7eP9N$DA%K4nT)vN_9(a#nomj8yNavf>j{5;EbNlsu;ePVk-qlH@xzS;%qf40C#x zSO~JOyL__DnaC@}B@8z}5f;NKWG$3^vXV1rr6yv8@!WIqF;Veh(a}-Ejd7-thLN#R zp3%y4Lxu2B2qt7qh+7IOha56`)F{1yGjLH7C`uI{pE^Awer8sBrkToZdh+!6%;bc$ zwDd&zaY|;gP^1#Acq;SwwDk08mJEVW7QL%PED_R&5;BviVo>E6Ma9QIKb8Yaq$Ov@ zq$DR!gGW|!q9rrcJQpPikN8B8OifmWSZ2%yjgVGJhX~T|Z{AA;?qUlm;NAYHveX$N zVIg<F5u@_;Mhx>*t6_Y-xhr83SKXB`+22P14}19t<$38{x?;KZA24W$&g*(=@PNSs z21SGqY~icZJrx!<c<^AIZqShMK@kFea{HvWn^h~fotxZlsY=x>iBWImm4pJRuKQ_} z=6$sfQh6(|^r{fI`f+cNN)@FFiuUfl>FuYuw*fb{w}>UBOcykIvJyv@fu+DKmqt&d z9{9qMnsM(FA}#s1HQYo0Bd(_}oR>01@r=eD3fx-~mej;3RaBI>B1AY+>6{9BQ9;0Y zsm_FpM)_9(7uc7cM0MI%KAr<^ATU`}F}O&&`@+45@>>qfi7)}yDy|PIK#kGClVtV4 zMO~XOdNbjFPlQTk#Z4EI;S;w5FFpb0MY50KYAt<V;$0>%orejqR_O&IAH9HiN-&g& zQz^dE_aBg%4on9c*WhX`eIMXm4`9~+18xy;<-l;y5j9a6@D=YCyc+{dhbTg|j?2Nj z`=V5;k8#u0TKY!e#fm7E>PEBxYZZ45<<c<*<!caet+gYvmOTeddF<cQ8v@)B2_qtX z*Dt9KojI7SaMOigKKWoh@-Ye+KN?lyqCu*!^7|bAeSj&GaIKZg65tL4lVE}aS8IIr z2@<prnEOYHI8wEJ#T$Va95C5qMO;8DxXDOR4KQJ3C&ATPIY$7O2F$k;MO<s~X5sZg z2_qtXr>`Fh%=nT@HTzW&)mr)8!Rs$2%-_*_0O|YUH5noP`zn{)z-^qYQmsoAF|Czz z54^6HFe1`-J}_cbodb@;Ads%Vqc=suh)Cb`GEu*Iz+F!kQSNf_8gkJa8XWbQB4Xs< zsGzVY??D#%)9|1_aFG(0(kI{)^n&645->9*9Pxc?^xgty@&7>YJ79JwabAN!L?NW_ zC@`m#I7Rxp0qZ{%le4(#a_7Sbz2|@#p~NZZQTe3;Ggpc8LGKe_zER?Q&~pM)tHk-B zcOIBqN}Pfowb!mGlvB^uT75hMTwe+6E*Awo8ib7iCSHm2k-quB*pxU0Ju1KNf!VCY z`Ji_InBz*Ef*$doOTx%GZY{qLq+*EyZn|2_FQt!_Fai)it<ie{xL5yy9+lr)z${hb zeB^gEFk6&3MSdxLhk!Yy#QC7-{|5Rb+;p{;U!k2#7!lceej|Z<{vYUtfJibhHYLtS z`o0HdgA(T>zqP;|SK@roa{<#~nwX2$@=Nv6N5cG5exCu(_&?B_3d~zdoR9SV3z+Ye zI3M{f0j6Gw^Fi+-Ft?RB1wE2~52eXD75`h~=OMtwNZ8iOkLV@*kM!mPXZr_wfuQ&O z|445Ga7F(>kLvelU@j_gKFUu!9c6=?uGaEP{5%wxSCu#)^xgtyu@a}K4{E>P0kcVo z^Fgm3m|vARAM|bm({Tpn!Ydy>=!F6^M2S<->kS&?fSIqv`Jne1FyAY23VKu@WxyPk zaDS&C{0_|df1pS8(J>w49^7=f>&-{{MgcQPiBqJH>SHc2HYLsnz3+k9pu{QY1%h6! zgrW4&)mnS|8MwxOphxA`HUoT$o36jh?@(Y2N}M8nL@yDT*-D&`{C)(?*Gim%UJ&RN z0aLBS`Ji_em>Wu*f*zIM12m}ix>_s0p1}2&u<mkE&?EgI4wz&m&PV#Jz${hb6!fV4 zRs-Wy;(XBi6__R^PC+jS^x9=YXTwdGJ0Cvi4FM)biSt1(0hpOeoDX_Sf%!~{Q_!RO z*dk$s1mdT)`X~dg_8;g`|8X9e4m9Ay^>_L01I!>LPLV#UkFmhOq%2&2M=uYU<w~4_ z9@WQMV2YGDALaKmFpWx_4|;9Q;Az}+{ayM70mCYB3VKu@@e)QLh@aN#V;XR?|AAf? zg#QSbAC)*C`K<t^UWrqrkIL^NFn$&>b$^%N9>9buaX#o7C5%Y1_58jBT=GBABY9v2 z<}(TRcm2_Kz^wZRdOFan2IjmH=cD{O&O$rKO_#e|eB^fsFwZM-KIkO_GgFCE&?A0X zDq)0(@zWZ=d<NY2|3Ht*uMC)<l{g>iy9G?!*<!4Jm)~B%3{v8J&>IU(yb`C#Zx=*2 zU&4qnx1QhSz<u!#^eDgEfT>sFe5CIpFt?RBMf#|HJTwP<kDD%cx%i-G1ZJEPr=S-M z8d(xXAc&vV>X!%ZlYgK`@_Ez$NUs*SpZ|d#<@eVANUy_O$VuFExywb7U#j0hz!;S{ zALTa{m@FkuK`$8emIL#n66b?n1u*qWoPr*u?;<e%Z^D7goev-MdIHm5iBr&{@{0rJ zRVB^`y|;i_ti&nkQTo0EW{VQ%gWe%vepliY^eBCPZ^6!ho36jhZ+~DSl{g>tUIHdn ziSv=Z#lU=^#3|@ee%DDDA%Xa5t$maMSNlKEI}eO{o=ENQ^7{xdeU&&x`l$Ry05eI6 z^O4`Vz~m`$3VI~(zmYIv3R}<bTHv<*13fCg!@!(X;(Vm9!+f+~+;q9iMUg(DHwYM` z66b^7RA91{I0Zc_zvaMut;G4DR|L#%CC&%EMqq9zaX#ohumJW%+;sh2epv}4B3rMI zalj?~5A+rS^MMlQBYo?D*`dTK@=Nt`6qxf$oDX^(7ear*O;>CArTQ2G%=1c|4|>VK z%v9ohq;DxO-zafD=sAJetHdejQTm#IxuwMUpw~4UbF8@O`n&wbWMd41n=Uub2fdlu z&`ogD<;M9)-)GqZ#QoEnyjls|W(nIGy>6g#0GNwPoR9QrbD*2xrmHo2RDMH&F)DFB z=;5ewRhAN`$S=vO<r0SCrK`34egWK%|3FWN@D;$EQsR81&wmm6E!=edU4Hum^PCdr zgWjvaq$+WW{OS<bVqm^k;(X961EyAqQ_u?lz4H<VPT^{;{H_D1wu+e6@*9TNj{x(6 z66Yg*>A<|D#3|B8{PHhgepKRo(5nEZUWrrCBYwUJOvhX?AAb02Ex!){(^JB!Wt@T@ z$v+mDaY~$z^x+%Js)b6N4|-n!vrdWgL9ZH^qe`5D9+lq>VA|!ufy<o_AM_pvCR~a0 zLGJ}%5|lU}^cDicD{%^X)P8@IFhT<H(^`FO0?zpl^g<B+S76j{i`4!uzmEXZSBX=k zkIHWZFq4!xANidNOr8>_phxNZ2AB#Z&Ii2{z+6<~6!a*4+QnjC<=@uIuLp3U64qTV zUJF+#yrV5-vw|LN5yR59{(3_!JI?f?$r%0gqj6)$$BcRL(UzX0O!|>*oMG&vIt@r& z#Qh`gX)1Ane9Y6YjKiwPtXJ5i=~y0$m7EFY^vqZE>9c2~r6(k1y+TVT&2ux7`wr+g zsNW#v<D9_*-Cq5YQZru}lbn{Ekd^#OMplZj3bbGP>u+F#&alp^*Ri$)TMr*rje}K1 z{*Oz=X7jA{DP~>oF@1ESGR&#dQ{Ti|Qe6xdU#4QAC6cO=_5fm=*96*B9e$1DZ*aDC zKM1eZ9iu<~rC{uG9nJCer}2pWZlj{yZhk@p$M2T>muAyz+iZB%<1b8xXL!L=+;D8= z3j-<z_hj2_9saP#%^VUz`<UZP`hgV9<Y<H)NTMqi&r=1zSKV)ER#$vW_9XEw$Fo74 z{e@ud1c$W!Q`?!<ne6^RsNf949ff-|?#Z|_w4HOZ@rtuCoCxA<Im^hy{q$*zr>|N( z<+pfpw0Np)@l@k^GTCf}crw{?8pzYO{0HGLhsw+oZF7q!6=b*PT>zfK9iVdoAkYb- zx3=ZS@FZ+_oCAkO*ug_Ho*LD&_@#aidrk36v%?zI%lOR^Tq*dak-A1jb}AafYE+P- z!VWc!>V3GVd^M`C@Jk~;jj9B{G{(`WYVk{<G^$_mOZFTM(kYZ6cBAG{&glOb{o`)+ z3Puh*7d<eZ$G>rD@y^e^+s;o|vU8u{r^7FGfPTWRz+k}@fnO5BIF|sw?F5(HqELXZ z(0<D_+6`+C(Rp^wThD;$U+QfL|HGJg!^Ai0d83ZqnT^oK#0y;FpN70$+T2g@sONvy z^LJS5?`>J@skVCl5NrJne`+@JbXE_JkHPlUy`1xgT3gTs`$5ZDes_Iy&l+vsQG{h9 zFUXjEEilz0X0w24mNC^WFjXSv17NT<JeajQU6#d^th{V^8Tk1+Bma|uH-xaR3PWV` ztkJA}R9n3*DI~*syqUIEXGr_1cNuv@@2yl=*k2vS@$ZHRZ2?>Rb;O-2qs`D8d#E$8 zKQoVbj|Ymi#f4BXqdnfm*}F~B+d>*Zy8-R6TZ6$iUuWW131nElH1F)3VUeMk59{so z{o?pCmd7T0QG^i1|A3<27Rm7kP&%CRPqp<#TTVSTAWB=Xx4t=mY0_Y4_&g$WZO)*` z@XY(|Gl&X*z(d6Hsx6e`56a<B%Hj99!w<`IA#h}7SNm)s@Ig7So<9ci58A@9Wgpc? z@gw4DN&s7bM;|Z%5u5C<ghUznNfAbV8ve65BmcX5=Xi+@d^-hs(5T*oD@||}xm|y` zT_)PRK6adNFawF+i14Fvd@a~7gXK@_Y1j2d?0}uy1E)na#oC84h17v<L2#AU;M8jk zH&GuMe3Oa)Rw&oFyg$qVY=tI-wh{B4_*)!59;Yy*h0MXGToZUX3_FK|^+O{p?S`gk zw7DBV$W_5v9f6TIG7(>_MsH8`Gx3)Vk*70L_!8UaA=!Y;8pqlVZLP<^AnytuwCBFJ zp0DKSfCn5uv6Y&VEmuf`z#S(3!;mHL<7}}3e6A3Ns+D$~Nt|RGi7M3Q^@I<{#|DhF z4<rGuGFr=T$EmLlw{^>hS3YqVYkMs~Z|i5UJ<Hl=Xjq~c8$@AqfJd6U*i-z_u4ZwZ zU5rUewaCbJoc6%Sq9L4YHt_q%PbYA-d}szz80=1=rMKQTs|(>xUg<HZuSVOtT|jy+ zAT2?*89_~5QARk^;hv@`0753j2FKZF-6jNh>Nz&@+05=HP^BUOa|tI^2<5^zfU$b8 zw!x;v3clLtY*t&3w~bTB25ij+wEiX=5CqmfYU#+Ah;?Zj7ShD<B_{NVVJ2*OpM#Du z0(^$k30|F4vLAs&Hd}yl6kTWF5*d!f7$jI4NiaI|13kOYC%zP9;4iQ|1lUdFp)<!D zk=-s)DC^15Hhpa~ZLLo+K^7omUJXi{*M#VJHOWLAXkmFo3E?kLtrP)7`@5r>uxETy z0A~-3f+RW(5wP2Y7V2*1B6>N{ar{AQ>XUGg#mTlivf*Pyi^I_<`}F)?w*E$(`Vi!4 zp36K{IC#Kw@_@GB9vlaNgHhDiYxF%G2;pGcm#~l4Y6~jqL94H1Yi}&+V8q^bmfxk< z>i6dD;_M^*j9No6TYHPe$q;-EynoKC<Ftm|9Dmqa;j(-Wk%RK)C>Kz8(n2PZHbRX% zzQl;s(OL_QP{yL`-*^^F+{FJh4kc~0Px};ytBe+S+aGVG!&P)stZy<n!Qf&X->l93 z1#hNUpH^ve_rn#(R~l`TAR(P`wya9dZVHJKIK~iu4Lln`C3_m`B?mbRWodf|2jV8% zw;@r&|EiD({PSD(ATB-s<EMCFNp>#%7A_ndFi^h)3?vZL^B3$Bb=Kb<=HWOyA{JZj z%W)KjA79V%dnEu)mH1`;y@ki$?6T(idFM?HU*&A<p{`X!93gh3h|Z{>o{>K!glJO3 z&mMbcN`)cN&(GTIH>*v#p_8hq9e(|+cNlX!>m7|*6YgkY^6~7q#Gp0sC$%3Lf>`Tc zjMjb~QjO*JdoqoqA42p7{ukQ)pZf*!r0tQ7U*ujNG8&yFr`~0qR~dlkE|q38PPCBT z$MNk<kyYB<KY-<<!`Pv0n7PTwvjM1P;vF0c0&Wk$Nf_p#dY%pAM~CTgU`7)=^o6kb z9pRkU(ZsjocxTfAJS^yF<+??2d{h93BN{GCZ*WQr635~gpU4L7qBkIDkx+dk7(UAa zZo~lvZ8)`_xTglu>3Oajd(9bT?j^>54;NWu=Jb5jK>g6@f#!3R94@lbJV-y39caF& z=c5PmqX#1L`S%WeVc>%9IA*93{WFNTN}B$)pc6djw<Ax8MA0*scr_(1@yZCh<{JM> zX$DSeD4m1THM&n(W+FB+@TKSn<s)o3YejEsiOcdwivmYI_-XSVB_2XX@{VeA?}wYi zQ8gS+R_G?5^`R|@)@Ya?Zkap5<xehc-Z7N*H6}=#cL)vx|H)Sfh%-OB&}kv#;_Qo8 z;aLt3hTINa%fRn8gmN0*dA&g&Svjvis}9gd9$xq`n_c7}Rm{@P5V^Dvu7&McJ}SuC zKFk)~&1iM#SZlG%vejr`{4F>}&j+AUbI#-b7?@muj$@w4sVfB$A;*X0P<$+3jN1O| zdV?XfM2~|l!f*&jXt6%BVO}@yC>K+d^V>m2iZOE5M#KmOst{!mg+kNj-MWK*)r^kc z9_z=YR#I~#o=nm61O4)@X>-XuN+)HY)GE47S;q14fgGyhb-t~3>#=rO{``o5rcrRV z&kEp21gi1G@}s(hcF5bcP|NZMh1SGZl7AmPAERMWI`^`nmF`z!m=65dKoL43KwW7Y z)y=BaA;KtYxy$ly%X;;0Rg}`nXsMuP;yJX5(Lws5$jq!U)UG*pr;bu@b#`-0Sf1^M z^I8mfe^}bY*fh>2{}`Lzsk!DCWDbI7VHEJJR$m?ypb0{_C|7ahiy=`s+a>&3HqOgZ znY+?iM-UdG+~CUup&_K4b(J={Zn<2fxsV9scuAx|LnKi~vUeiKk2@yoWN@SH?l##h z$MiN!1O877gy8QG{VV0?PsL{kS79hb3Lz#fHS)V`@!hAOu?+rSN&YXAhD5}(-5zMb z@G#>A&JoIx=qz!+M#mt$<^&&<Y=nv52suhg|2$*~{+k#&KP67*b-WPu2rPQ;5*nCX z#kfYJ8U+^_9>hV_>w?RP-vq&R8NcEnO^={&3w~cBT%O?C1eZ;4vFIAau&=mXX>f^D z>~Os!;QkF4FSs5<pCeM90GBvqPItQ&x?P{ST^ro4Qn%}Ox9h6g)wK<j9w82495r6l zI|6Wg7=IXQ!)TuEEgs3n4~6>C(PY;|VXPh&ZF|wt3@(a*(k+xJX-a&|L|_61C4!Hc zY%^Cv2OW_jL#U~R5vxQ{5B*xn(}<Q<25MAf8xUQBicJTWK@~EE1mFZT(u7j1a|0lU zj!}Qh-_Yi@MNwLB`ps$=?!c*IA369M-WX(U^h4Km1CsGHN}u$eiCkhaM;f2=q{gU* z(D_4~TOqtdog+%pwkDIp%@ONFQ9jXMrE3h~XXE&wLLd?85PmP6j24l1cJ9O0+fD2a zQtF}1pN_U`o(ex}z0t&K4dv*k`H{ilN1?*&puI!9JuI97r5_q5Y46`6n5#t4-VY1f zdpEs(u3xwd<GRdo;SOXujD~p8!iiaQVjO&W8|+it3TiuR{R0~D9{U7Ql$g*|BcKdR zhp^$?CfgJ=esNqu+Q$~k9v`bS+81JQH*6tSp%GeFg<d#S3uFCZg?ih9U=v#Mr<5Vv z5L-H^qzCY^y@|kT^5kQml+^WMNX<a|{I-<3f!0&a(zvr4afHblx}dI$P0kh@hDJ6J zOwrf2;7I}@LSe`N$#<Jm->%R!BLYfBbH(#P<h0G`-83TH1qL$E_%)ln*Z|_0(WFYF zflHN!hsmU2gAb{St)(fXVZ&N63_cXm!rMd^tZ{TsL}ZUl<Pq)NKFyERWAS7-r0X+V ze=f1UkfPz7H`N&XbLt5J+5!yiF<=d#BCtSPU|oBR)(UjrV$qtQ%TaL&tTY+#Y1}|G z8cT1xTr@lq)%s$$>vgcImx3>}FXCpQfms$>=LY!^-=Q51wIoqvvpP}!)QGwuJ27E4 zb4@d;?r1pfhQ^|yp<z*DlNw|U#sX%C5@>#iiZ8-O1`H?)Vyi1egU3m7Ldhalw|@-0 zmAbMt5P`IXyg)(Gp@SG`Q2OKe3nprc)#Oh@VDLU#QVPfSF~LAFT4<hmb$p4?JgFg~ ziA|=gPBhs=qT<wlP}VIoS$?F3vqRlQL;a7yJS>L7%}!U4@Zf9?GTKK4Lpwuo-Ee#0 zaTC8+&sPX9QH_ILB^ZPTSZ}H4ZPKG(j36}Wd;<xKRswq^hEx*V+@Z-|$Ukd)UMPTx z#6y#XAruuwhKWbgssD>|_XF0_IW(9k>41!ioxn`El5lHOG@mTGK7)(=HL5E7l9^Vc za^Y7Ltx;pgk-31%&B&jIWEBlOsB4HhGh(D-;p{VUTqBaB=LhpcS-a-h$QnzW39rKR ze6@*>#L;f_)EnbGbaFaSSINcDU3h^ZGl~W^q!WgM`{Z1!QQam{_)<K`GMW_S8>3T< zOJ4>d>M}K|Ic^tH%o4ALiD`!Ij5-8MCTwWIo@67%LelwXAq=%p)-2CcLXd+Bq*q82 z*&L7>IiWoSPvl29hZ0rlJEf=+Di)-f8h98>!{-;=iKE1d2^NkO4U6MzP#_$9A+lJF zwHS6hM_U?|I#1*Dvcqg-&8$(B&?pjLoc&G6R0vn}V*wClNQ@x4wvxQ}7#d;%z(q82 zZf_5~O{8rjG?XA}Mq!iav^C*>9Nvg+UKqf`HY5}qKNM<}tHQ`%pcI+-IwS+t!$QI* z5J#f6F*p*EVNZw6gAHKq<Abdynn~#zjghpFBsn$2*#O4`KyS9FZPSntkRT<xi^(>a z#bJ10UaC%%RQzi=au3bhJ^_Ni%NV_FU=3*2z^d1!1_O87{dd79w8%mLB`=8B61<7C z`h@)G__^p6ufd#(X7eZPTo~U!MjG>2Jc|QSlPwFzt8l$73sFr9rlI*Uj(-jB>tzU~ z5^^k!q#d+wlWi7445q54Le-&>MIb4nb~DNC;xHnzjSd<s=>ntqu7+@z3+9RA82P-X zgM8&|DLT%Uag4LgfvTBOW3pvba*3CvVW!?b)};p<W|-_VTygx*80u)3tV3nTA!3x1 zW|ompE63<$Sov_fM(CuB>asX{U^z5vJ&i|jW^I{~e<2|9hBms|dLtn7ew=NG302F} zMw}+<Dz-YC;hXg*>H}}?fiXkXv!;-me|_`ynw~Y5dstVM(b^bnv^M$8UE4_K+93}x zhD2f<|0k;*S*#t|6j`RVKZrNzdY0USe>U>T5Uri23;;7~M_v|^Y9Ch4C6<wj#qtC9 z#n}h$%e!Vy=X*q6o)twM-5k&0QO`G1H`ai3ME1z)W=bsKcS}Yrllpnth;^-w)djgq zB7ey|VubxsZ;u5#jtZcrg8{v{%Q8C0&pyU4z>l*V{m`&nma}XHbs{RZA~s0)=L17{ zXK0zLGS9JKEUOJ_!+mN5J8L^b6kWn|ELZ}DC40BM1iz&1EOweEz658i3Zg+91ZcFj zvnKqKHb{JX36J{lAQr^!tc$g2LP$az`Kze*rH^B1$C8wxo<nGraB&>QBTEniDGa1! zjwa0j=l$}qn#vDk)f7AA<8ZwPG-f`~feCysh~pMh2s-p~u<r7<pa7CCmz>AdIXAZ& z1DSdE7uLtU9(27C+5=zgJl#WGqmR7Q)P|i_K0nf_{oKJWS*$}CmjAK~{_>74=<Xh= zVN55P&#le61#Mir^NucTg4W5}z6_>lNI<asRlXc`+sk^|&-?()H0E{~N(Z9go9=@n zKm$i092zu$Cbf~T;3GKuL=76|*ku^FdJjTjuRmyu>2{h5pYNa+AA`lm5gO@P>~C!` zUHBMkz&Z@zt;Za;m<!aB*SN}I6cP<6M*C8Vb1S7lYGQ`GvoOQ3+bMNMt-b<hoBqc4 z=Ij}oytC%iDa&H`VZ$)Z044k<r0>~fd<Xvi(Av;WXo<!uIi=R-sCgY=eAH2dKQ{&Q zG2Lvj-T0VbviZgY*<yqEm@c;1E}XSoXDxGCR_I9xdZ&hUVa!TJXT8m67fpqFMiK|z z2sB2LGAV+Tkq?Y5q4}@Zh59FBi0C@yc3pG3=zM1JZI0XJ<`|`<B)vBS!amQjg-QvA z+nrP@T0P8&m7Myr$-aRKF3&*{7FPLU8kuVKm%|<5b=3RoSX&!g8=-DYkowe>u7`#Q ztTcobbr}PHKi?0MY(alCG>rkrw2~pOBOk2`Wrjv;7N~8}8os@4c%XW?#x^_vCJ`7% z&~zK}&MxTBA&4HcIARbcG+Kus^W`7`LXbdD5IqVp#b_U?p*aycN)|$q>_wCGeO?Mg z_XbOFvCAAAWAFBmo5T4Ro<y2L9g!vTJ7Y?OaXD(6W9@+`kJ_fT&)Wlo+0c613s358 zFsNCbI+=>4BF3%>hTd;I4{<XRsXQ?EL#o6mszkK!mRdo{WF&}`FpV&+DY}GySnRr_ z^Rr3!;o|tif_4W3^q*`2EX+6$d{_vTf%ff_AVJ+8&cRN(Q+w7`Mg<-wF?ZB}Ylhrw zmWK?vXD#;|v_)#Z1ivGgr~*GjXr+-q)YJvfF$`aUzYa!zKYR@XuA%%eXJSrTrjKOi zg_^<H#b{G5%Y~*FaE31W?ztUcPMbeoZyT;@8V%=y5rWfz^IVP2-~3JLI<cr-m2vhl z$G|+WooRzKowY%x&OxlUbF>aW!^5DV{H(Vz6gDdNnpp$OBLl_5T7pAa&tfqAjL-}O zF-aM;VL}rlaMm^~M39@L+tT^TC3H+}KeB<;qWEn&G+ANGA@iUuhwOK@oFDw@cU4;y z72mEAuT>@e@gsKECMZ<FbYwYcKNF2O<eR@_vgZnerLC2))S*d8Onm`ECK^Lg-}DBW z2xnUrl8xs$``gr28ExIQn@7%JZ2_<$25Jk&&*SXx(R*Q7A&u6dhJgVend0U*Z4q@( z3~K|Ks6aA2o~5ALf?_akAbM&0$7J|tZEsV?w3}n!wE2PY0>KTj^QoT;))rAW$H3ce z3>3RL;U!H?nCw$}yBzWf)ikMPvd0GUv1X(FJ;8#iEg0Dj@dc1tN$C_DDFB>(#zc@A z*#QBD0nuIxv5lG%dYv#q5e4gsAqW}}j$_6vNV)6h$sdj(X6>AxcJqrP1E++(7#lbx zvVMwoWIYnfXg43hfy9|VQQ&rh>W$*@9iG*0?qZt4hIY}n6283<J}G3h@9-4=Fp7Uz zE8#l`;n7rE4IigMc!SDEcx_SrmeXK0flr3UrcrO6O|@l;O+&@ygNyiBOfbH^QE-{z zB6~3hep&{Y(YBK;y!fLD6_YJY;xh>SiKG@!DlyrHcpiEIn~Ynd>I^uUf;Flbw<`{e znJD-P;zXQ|E9O#bC<=aFd+3eb+M_Sa6eI<|vAy7b5N2W$;t?XN+wpM%TN}9}MaNY_ zYO#4Bx<Ao)jOiS7wSjDCn}3BDhZaAR4dMo^sg2$i)6CkV#18l`>JRsj=nErt2f8zf zLo2Pg84SGGGfi~6q@GD$9mMh%(DWjgQ~E6J^pUn2ILuvaf=76r-X?em>4lUW9l3!D z&k_*1?Q{H_pAZH`Ho+79k4^9uz?_{I=ME~Qyil^BictdHX`7F@G(tIwE;F991wRf- zJ?wh;jsR4yl;-fW(BCgWe?M)qO+E%49(sI6jfuZ#vdyV9B^E<5FGDY?GOA(li_(5n zX0ku&bU`UMM4;`=;rNUIJ&&<}lx*iW!i>dt@!O(9AR)b2B~aKM5BkVsdhIA!rIRpM zjZ^!zZ&TI7=0J-<{tG9jt6_C>LCXk+8W&qB3SpLicIbj2ZR~;|{(NX7I?*uxFwN6A ze{W;t_Zro&1&Bom1spvqjn|+A)Z-P}x7f5<S2fYZJhJtSpJgq&vpE#M9u|iT%acZa z9M&f6W%=$#egVczV?=r|`H^hU(=qD!9)UR0V)^@#J#j=Ya0IElQ2vvsgG3!tB}|l* zp3g(FktfJX9W0OCIP081l{t_PxaJJ9_*-`c+0gqsqDWl+fm%x`q0x`X_VsY(;?}6n z;dhDPBKwx;M@E0qPcYaD(qAyxj-}-{;`B9)DL2_d66xV}M(TWz3q{27ksLaPAK;G> zr4d8SVDy`#7&^FK5Qa1yhXBKPI7(26giuDj3P6LVVAOHsYpA6ZX=PGEPy`7Qj3k0x zK{WMYVvoWGd4<JM*O&+?dY&=RRR6pXu#SU<7x2@P767h<afF5a8H&{}#1}O0EolQr z{`p{*uhMIa0y#QvpLb%K$_O?vsejemqA{R-5Z%cF14h|KOnuV)qSfIr+QtUq0C%HJ zO$x_?o;U+tqQ}{c7#OipoM7y%q>-)>8o%X~$%e7EwHUMihgqDgj=365<|2GVAOxuu zQf=hZq2*tr6i2YaDii7)VHDKn(u4+Qj}OL?@*F?nw26<oz=c*L=|QGYv{$S_YJ-7b zn`;`z&!X1bI&g_jtc*B-T&l2qg581wf&hiUG4PM+LzBv22A`qPho+Tju$Jaubl^OA z9Ks{C4i63b@FV)rBQf^CNzUU88(B5KGuW1O-oQGT<9}gFj%j)jTHP4uF}y69-^l<r z7hf{0OPFkmFeW<KLW)$sWJCa;R;FS@`{{YJ6Lt<gtY4uS8oo@7w*2p+C7ssUjA)M` zTE|_{mP;=YZ6&YPFNtaQgP*yrwUV)^n|d0auC#P#vzs-R`vfx@21%Ha7e6%t^+0Xy zfDe>>8}bzr>B52oVSHH<C6>DZwSskE+C@t-Di!KRu$6osQV4V$8BvVr>U$gc2{7O| z%zd#Ov$s6yskhC%0=)x#^Ar@1C_cK`##Zvtf7#eQ$b-xBD{Gw>qJe-qX!}s0r+s?@ zYS*p!7*RqPBcH>BfjG^MQ5ww*bNs+cj{jwuu&N{S7j15Pc*33>8VhS;)<Avetbu42 z5zrp}4H#uMaQq!Xu{ZG;G(E>f-qGgnLh22CI+$Q8@ad?BsRJ?6qX2)H5220?v=Zzf zUn#UuP=hXt)I^xKVKhn&G6MW3Fy<7GB7>zkVv-uP`bIu0jDKq&8#*hD4P7uW@0x{% zuULy$t*2FX`{gwbd<}+60_AmlRXCQe&G$@tver?-nmB%8KwRV<%O&9nwjP)S@96n+ zdj3@2S#9ndsK8j_M71H;Az9~&r4nVSZD|*+N9EBZLq1?eOvR%!gBTJ95+?hI2$MYq zBigazu$d$-M67H(#$qZ_Fj*b~6!HUA4m^x}V>u!<M<^jk*bG74ekFcVNngaW6t~zt zP7z$6<5zSYgZhyw`1zw*qzJCbZr3Hatb*U;(8)zt)Y$Qo<jpxlUA(u+J~zZ6_{<Ct zK3DRTiBAY7i@eKWbe?P@DK)S`VkuxZnB!nX9>#Eym$lYY;2B9yU1Pfiv3AxEGssRT z&QY|U4Bv}5P2$Eu{Dzs4VEp5gOtUddgpz9tBav<gTL{A0$nT-KSshZMV(p{F{tdhx zhNL!Y^UMN`RUxz_*2M3FEren;KMljtc`mYg)|29DA~)aT<15WrFx-p}qhRGoRM>(J zCaCUc1(Anl|8BCigK~gW(kCqn(Cvm9UHgpAb8U>Saw$Lj$TR2!wRyEj4j+5^2gck7 z>iLE2n^<VK1Ab4Bzo^aI2nUvfSOR{4@Ar7H9=mOeJ&mcQv*v|*z7tloROp8e4_nyA z<%lfH#EL3&3S<lBnYvYAXz!}x_`pMyz)0u3wt01yCOBBFsV4G(CCDBPZUZcIL>LxE zG)16o5*h<Ri$6a$qG=$;#9{mk5eBR`=^Z*YLQe||cIiVM0x!{WtsZ<QA+R_vgfQwF z+xP(M$TR5c%cG3ea~S>ICyf5YVx_u>;v$<d7A0ju`iu@H0IA++&dq@wy5~J|N{Nj` zeueIQFCN6{kM(egTuKM1C*Vn=x((Osf@>f+R~iz+Wf%OS#IIOc&rH_Cj!c{<>e0k< zdhks)Q2Z)}R8&2`krCM!>%q~iK7}8~hfC;{ZKI&)8}eM*TsljhG~J2RSC6I!$I-Y8 z8iQb64i2w_N*M0K%x@d$t+2arkb%~4gn~>0XX(sZ7fdfs4qpq?8Y<|kRA3h_a$n|e z)|*V$<CwnE=8XcJ9~CCeUg-JRsDul0G8&)7TN8g?XzW-zf^|wiYjd|Eq1R$S9%X#1 z>9nXklE4!@ukp`^LFPr4FYLspN5DP{Q5+F^p-Ib6!xJRd><Fy&3%#xny~=K<<<5E6 z7IdUlv7(U_IxGiCr<bgp?zVt5vZ2*jmEw<1tLgs8ee<-T``{Efg;kd~K~LB(JgCcT z&qojqF7lS8lBAdp>7<nB4F#v@!3^2RffNCatf&G|DMHB$Dy$<&t}?lPs6z6VKza&h zSJFeHNOa298mc5~>15)hSE0s=BvBn%KX8%1nuGWeaseZywit{aN>C5KWd7EaU5vOz zuA=o6qFy=|F46C8x2q>OP4ojt>GWi;$0{%wrf3lQ8uYK;XnT)`*G*Yw8+`@#fdI}1 z6K7Nu%X7^(4$X@D%f_L*#p0n~N&xfpR(Ih6Bs_x2c+ZLj_ZQnRvf<(qPsi~Wjj3hC z)h2vqjlamLi?6Xkh#W=&zEBu2eoDMfy@fV!zZ&J<4l6Ff!BIkGVP=#+WPegEJ~X52 z)#lNX6+^@t3arhgb6fGSj~?=9>{^j4v=ls(ZcS5d5%@BcZ9$-3T4ignFNlJ56ug}W zxSk)6Pg8vuLdy>M?s|2-0YZRAbp~z0st{V-MFser0qh_y1pAr2eiXJweQ0!`A+ls% zSAKW^tKN&R`e@%Hvx;akL@6Hi5WuoPRQb2aoYDSn$P)a+ltGJ(oX7mJ0F3mZa05DL zF@h@g`e978gx0f>wex~`7DMA=EZnpIC{U*bUQmgCL2xt)toIPtL<<h$0b%jSDnPNa zj}3L&Vgnlk;VowP7|j@D@7#;mDoY33i~tl%<9K?Vy^|)fQJy;hk%|z7plU3{vnMAo z|8+7%=7!L^GwsrzLUVaJh}}t0xqKV7@FqiHXG&uvbPfXBM+#sg7EtbE8d-wyyY->f zjWZC|#LozhLw_=ky=DjsfC7O!phgEnq8=r;OmNBrKLaeHr@$91KRpnW+q&8t>Q1%I zEDi#$y^a1sJw1S}{Yz~2p=Z>mo7w;lAGy_uxy~*mu0wuFSh10=g)doMx_O;g^%<6T zSx-0`{|kS;eH=>rH%Fdp!63aous^h6yHSVAw;p$dR)^Noe2>;x0}T*s^Fqs5t<e!# z%xXt9TFZ2x(UgFRt)~CS-kXO<QEYF(J((d1AuwSP!XiY75Lp933?yO(CeVWuKz0>L zLJ}YnNK7WO2p9+f#wMcTiW?%R*L`6V5E4KV5ZOe<4G>WYLF9@T0lDUTPgO6|Jw0T8 z-*f-?{`l%i_nfYJ-*c)?EnQXJnVCqlwm9h^-d&Tby6v1}lXiBiD!m*xzlpT3^lJS4 zu!OqOs(!V%N>>(MsesX<o2AOqUn@#a-htoeE3#QH*S5g}lA;EsRS~sOrI-5^{YLQ6 z@;Na;Im=UHsA*gA<9}($>yH(f_*Xc)RiS}(`}8>p{S<jj*w<|z+gwSiOtp`wF5Sj^ zh|@bf+%rxZ66r{)numv8v!UQuC^&EN^kV0J^gDf?z7FZ&;VXE!-OzEVD#a541K7^# zR$1EuAGm-Nfl4Yt-W}blurG*rY9eX7Ik9v&dOEGkG4_e-Pt@%i2jpZNeA>q)`T@l< z7Pk@-kE45A^mtL4izypDJEl<~3cvG)O?5mll#Vzh++f)AU{5p#xTw;YzpGNB(6aE* zHzke@W#`a$@21;hbei-n|JMZkY~{vY4*t?hU6rHkjHk03&x+ElpJ5sm^@gpuRcSTe z*>^-GH7|;U{wQf*9sUy`5-(<7#*T8F2>%psqIqvLl`YCU8Y{GWqj0lakm@eKH@tjq zojkotlkiAtXIj~j*&W!j0y8B%h70c>F%L`ZF}twbvEf~)GnP5OKySDU_hRh$7h^Rz zF&6t;7!~Y`zlTfke)c$WA{N2;DLbr%FW_hHY~-96y6<8_KDQm+_v3N9q`t&PJWM`I zoRVEiZ-IAtqlzD}Zy#!tKL6{Rq)$C9k}5q>xNZPB9NRl(6)-}^Xl;=6X>ncxe(LUs zXCStAXuhc|(%cf>>UVTQXW2DB?5|_^nAaFT;8wab9LwFpA8VU97VeEg-Qkz<+}@#h zbW)Y#!0Vm-6(ZIg=&r~X6mhJGj!C!|;x*+jxxEAC_EKyCZT?WZifm#bQ2PjbV_Cv8 zFFfbOk`=F`?Z$D?QC8_mVfyWh>B$JQu^0l4IoB`GD7iefgPdqYPM*oznSv4@{&n-m ze1iO`K6yA2cc~v~NR>17C1j?P@`J{a^v%3ThgGyCePe%g1Jba)LM~2)i;vg5fe5^? zpXR+&`41ev%M>pSaFq|nEQbHD68*E6biw5vT!G!EG;h{s^c`n;U);kEILgPwqBm8j zZzFiozWEIkEugF%^+&r&%TPf1l@L4*8iRN6=(U?{G&p(tjo!oX;f?j-k#@Sfr<M=5 z5I0Ikq~V;jLqQz1@G|;dZt7*;B&RnEFW+UwxV>5NSn*sIy?3IA-5E|>23QjJ;PXg{ zo=`-xClqmPqu_hCQE-Mfh<}ojRQ>dBb6a!=TA&PJ^Nrcq%qkGQMTxYV#e2%zu_efh z?geb8gu;I3mS)3ErxSjo2?tyCU@jp)^uzzU;D*@6v6Z+k{8L)lPo5cWyakeG{VJ(j z(PW1-h=!4S*f26Eir$LG02A%18WarzrV|yOt`4aX_pbrgzaDc*7AY#}k9lF%k+!6- z=SO12hG&Vm!~arib9o2hsjn@`TGSXTO*{p5ds|f3;U(+Cf78-#Pn;v^H~u`D?lH4z z!xfuJr4`Y<q=-UM%erDfq!*`7E54!sX)8fa`agsf-7^pz(x0@RSPn5w`co-NLeV6- zDC6X!NTXRv(!7(SF+g;8NcUrNu#Ll7n?}D88J<)#uOYQv{5a$MMpO>Ar&?=E3s8)@ zJyeFIzY5EhMp25Fcj#Fh|6d{8!*Jv9jTwd<@@3Z|Robdb2^CciS~}A^lU@g&pvHL} ziCzbG6(@Kd)0CeLRUQi9Zs3xRA=}bbKDoTph8OM7a{0s)GW%Zy$7ZGx|3E?i2*lSQ z#%=z#u$hg+CUjM$A&`n#9LpA3d4OzDFL-ns4cyZAw0%MEoGm;@S@Pe$!2jFeSBp=& zywi_4rL!*YL-cqc&HGR_O?0tavpI@rkP@}&JN{7u_l#>!`_Rh?-(e5(4lxU_#4H%V zUK_ze&|&TSl3XrU{ufg48`4;n%=?Ayt0z=Q?!_s$xEDLou&^UiHSc#v=>q&C3vF*W zq!U<T6;Gns<%8h~N2s?vg}d``_9Aiv%tea_vG<R=r-)Ycr8-Z-V`=D-<!M%@G!*mh z$OBR<bw`9%12*IEn7AsO{^R3lE&J!W)Na4Bg3$}7D|(<c(+j&aeWO?KkFn3UV^6Zr z7h+@JNt1Ov>E<(#NxN=@%$M;?A@Pc91R8&LF&z?Lva{de%nlRmeervoeHs-2%r^Y# zlfwNt`0qh-DIC`;SzPOw20}ASS0U^|gACh9L?KYdsCuZEVFiFNke&JIF??`cTq0f1 zvACNW*@Q-?I}5hHy%|(tMdFHMNh_CHK;kSy(H4Xfcsg!HGLrPaj03;Y867G_AMGMU z?T!<|J-4u2DNMa)u7d_K&Lq?@Y`!VM%*Hw-@?Qe=&5=GIoJZy1dPygK0#yxWdf!s@ z5=`+)Aidltq?3N`MG0nlKR}{YV85d}ivNykHwBK*JeEpUxI|vu#NznxsM0mQx`Cbf z@2GMdm5obLkT`=-b7drb@N~WIPY|#Dj;f+pkI^h}y`+;yM<tl)-GxMyvQ320#?w$} zlN~O!851V7K|62Lr{zgvE~JwjX5f>zO)gO>_p&%k<4~b--$<eHsD>xQ3PLjw$$s^o zJ}J<<)SSsBV$wPjWuo7m9n%Q1#-LP=i&Q1@7iZi8iQZOHf|+i5dZYP^7!=4~ntjaz z*GoD-CYT(|^nQml_zP3bs3#&XL{x;w6S$+yppSeUyrf*Bvi!*6ZfX%Bv^X6qL>&zi zB0b?kcy>d<Hl``kG!4|JIIo>5#X#a3$PWFyiW1Ch{fb1b<Vwz{<XV2XM84&ENhkf> zjuOoD{)R-9ym`3L9JSTFZ-mgikNra9lYBHBuTb$>z>s8-OXPuzERNMRN=-pwP%6h! zez+6`i8Bb5V!=rcJYBE*3evO^D|+=9%>vg;I_Za@lwhW}j_I{L&`5XywU&F-E;OBt zUmC7xSP-5OHZnAxbLnTOl<)uqUiVz0vNeDe_^n-}&@Q{F&~8kW(5|mtXjd40q2<XI zhniJHk!kj$SM*7N-k0ZExI|j$t^_TutU{}u%`Y^qKoo+Df3R~A&YZ<1V$r)Cau3Vq zJxpOxD#wx6xfG=`2$h3F31+%maoz1Agm#_?q1EYdq1n-fLgO)!LU`Y%EN6-aYSUZ; zwP`NJK;jw*rTvPil1{b9k(ARLxh+V(In!e}no7g<lFr^fb;Hy39D0PWwH(DadW@!* zdy{kys7LQDvR>o{ei7go0X`C_4&WaF{-L1Q(|d*6i$yxON4Dsv#FSuGj$X`OYqXB= zQ??5sCpk6+ALNhaIQTrH3nV4b+b6ueaEbg(Zv(?0y&{BOo<>5~>`0--?g$}rOk@1| zcoRlcG*F##9_5}(F_5?hLS4e41T$MnI^QdL$@f}*xI|^(dPyh!44M+m^g5VcON32` z=o>CX^a;%%bZdoz&te?B<XobX59PU`dyyxMVHF0YavbG@OVm?1gHTIxD8Wp3np{#; z;{QoE>3vdBj88M&qh;M3rsSEt$kF=T^E{JInqMiwOz+*?iw$i;!%+=RT1SSk(Jn@z z;FIo_+>2ZyOEhCf`)OhmnxOqO$VQt-h+${m7CDyu$E6mKIEzsIaVWt|e-77Awe)8s z)2lGZI%iNVX;wIcP$f8&V5WOI*9}Mv4n;3{lB4w&xZV<^K7vCDW_lk`^%5#Zh6d8h zeL*@`%1HV!(>sglwS-xPu*pjO;L99+ShFDW8sZX_U_Q@H^H8Dr=|~~Mr<N2Z)eXl} z-EfI|J7*Fq35OEQY?N{vtd>GqjuZyvfHSC;xJ33igHX$GD8Wp(m+J<^Hz(vxj@Db? zdP(Oqic%G+=d4im5|DIL&||m-$~pH1>3oS`a^UHD&QnY;AC1CHN2A$b^IGB(mEd{J zgC4$2X)W8JRF0#3aEUy~8HAdGLkVWOU(uCR(M!43>}wXdUeZZ38YP(NeVvySODnr! zrF@S<!zZmtcxkyr<#~rOTX)Br!*Zk0{AANZ_KL<CNDwM;Q0bQA;CHa@kd!bF0@uYQ z()AH9UF&e6^`C8oW}db}qcQEUVvc1bg-tD+bD~v=?qi%yDC)IJFtbB1@@O*$MK5_# z%L|tx5y$nCPWsV4C79{m!Swpvy$T53L80JtJ`P@LE>WpJ<+*8T6I!0eFJNc$Hlwg8 z2OLYj<Pv#+vk3J#4keiB|BUOGA&Ooqt(FHaku9#5biN=n=)+9!VP4v1m^)%U)U0oq z(Ck9g$tH&)D~NF$o#e0ppS;vuqEdg&bJffyG((9SjA_8I3X5{Wu~cd<QK>nLP&BJl zf|>pwbfs4GQmM5(aEWYjy`=NDdi4Ip^zt=#Bdocx_8x<^H)bnsMzuUiIa=zY;bC0! zl5>elUc)u8HAQ2rDX_M{daPX^{hES)7*z=+5V#gDk(S@NmL?5^CTk*2h8KioC~F#J zyatHvAaLd)Tw#WZ^M4rgrtlCU9P1eh3WHKPj(ox;LU0D5vT!JYr;|rD-G6i4G=Iaq zxdG;%zAU{~&Z1i7EYeLo6G|}CZwaANu$Aba;Vd@_BT(KsgHWq|JZh$!zKMa43cfkf zmyh$P99%EyJXw$4#<E^~z$d=`2$W~;57JBj5~>7lTc4livTk07O6}+|oJV=)dP(Ox z97^EndQNMkYa^u6KJ*yQBfY$RkWTu!TqW>yJ*NZGu@b%^T)1IW(+l>KjVl@zL}WA^ z$#-Jz^zmdV)bN(eCGyqHjLll^QQmSD2BmTw<%dgz;0!|D>60@v-QBoua40BxDfgOv z&4R2K9QvVIC79`@6(>p@Y868J+Jw*oj^(-M@?w1Ol5&a4avRT01KM5V1{4ORavYVE zOO(bLB#AhbV5a+aO?S4H-JummAl;lns8<xl_%zc!nCnKWZ%%9~T5o~tC7tvlo)XOT zx>UV{QhX6eFZTuM{6|rWPcyx=Z$>*aVM41#^4z5$GNVyEr;YSsmqF&W#3d>TJuj6< zqcL>Ne@>k~>5Aj1mbgT@<_yxi3WpNRbl<D#{xeMQWdzdA8KifOPd_r#ovC`$S1);! zqxBZJUebA@9=-JT2aOu|_&?>D^tK}NaxlyDjQ<yTCY>?$=q*z9l5z3}g+RXG^+!7C zhpm-hmftx{uca;4P)Ax_xZz~;ilzlo@x(Z&(C|sS1iV#oi9G)>&(Y3MVdv3CLIn14 z8ek8Hg2Ie~%<**h<Pyz=Ig?OP4RDf!nT;}CsTI9cBrP9YqV~)6l1}=$aV41Pm3XNe zTLtVbXGF;EROXz-T!w>}m`haR$9ZnrhYRh|Zkq27#oD$3cCEOJ6*iTXbEvFbYNxUZ z^)n77@O09^rEo~k=t`~V)nhoCO3iacI)A~T1T(!a%6ee~`4^CX0r?mHPx&Vst)NE< zW_Dg>b}V5QA#5kd!I~Ppkho{Lgxm=K;yJrHO1SyYP@(;4JRLe3F0|a;5Oekjp$Yah z!!iG~^`#btAOB)!L5RgC*Ab^m-63&pgz{Ypnc01h+Xa$>qL)0a<&8_^X|9)aKI1dO znCacX^tSF8CPZ1<2n{cUoorBH&EWf6e8owvWH}Bi4nZhkXMUo68SWo0k$<-Ge9~Ol z(}}@K*qM*u97j3i5_yR;2(=rB63ld0YP!dCWI0h7WZ6tNXAr6fxJoe7UBz_+Qi4O# zYlF<udJ9}H=}f6d@8_yssA9V5Gmu{H3(}cUkKQksUbZs+F!X}$WC$A>#*=b6NciNn z!zC)gH#|43BZSsR!?2qjF4#Q{F(O7_Y~W8s6b&>Ya2|~aT#8XO5X$0{L!M5h;u6_9 z!EHgJpy<_OIGWl6&l%}#RFB@DWxWxY{i7eC3<Am^pbWzQsSISt_vxWo8ETm=v-cgI zWu@XLSeHG`B`W>D8S}wQZ~Z+^JYKb`cip_pn+N5MAGu)bi=E$I9k>3~XP$g9^M?id z|MmKYSFMZc#uv6|e`7`I6OCt;-t|D%)W;gvtm)pfTAaS&{sWzU9scp>ha1g!=Fsj} zN{{_8q~%==Uf%Tg^KaNT_1JK3!Qxw+6l|!<d1A3x(4l*q{qFm}x8?WSI=^V?)gR_H zf4yZ=<);t*+BPlY$!Y6zt}UN;^x|uk(e0*m&c3$vi$^}Rj=jHc=h{Or-u~a&H*UD_ z-I6<c{r+`y)2YM0Eoj&CA^V|IlSd57IXlQb^x(v&-|h9}$<{l++TJ+q>ZL#Ly(O*f zvEMiSvTBemK3x2Gaa>5u4W6C*w>QoE;l;Y~v)5<+Gv$bAdvtmE`zL-KQS#2S&&>$? ztnB;?&EhY;BklWj&llI?TexhuxSQwoh=>|8e%GgW-7w<&kiYsq-DJDuT)6(BKF!ue z?%46j+~2#sJ@NeCkKWSk^1(H+X9}Jx%^vX8vv*(I`GxpR*1<zZBfPIp-Mj6zu|-$M z%x!ihr0F9Kx~~}X+2NUeHfN4IcmH$aTfMO)r_l&^^8rJ>6Sns99<A`MOnhaW=$_hZ z)zi_b&v$*H{mK=Kvp#J)cGL}@T+4kVp-HESeR7UW4;#{XZ=e5O$ZoX5`{(41=c5`< zyX(7Ky3b4fvj6D*=Wc)Th4)_0Oq&1X+>47hy>M#O`6*xS9r;bn53?h;zTLL`Ki}m3 zXTsT%H=34By?x>PIfFM2yv4HU&>#PO<%xgYvZK>$pZ|MF{Juwj{pPlY_pB;t{c6mt z*52$bFHO&kD*Up)wX5xh?9^+|TPuE8`}7t2@wHDs(f;hB#8VlC-Df<|yx@o5cP&2u z++XAGdb7*oZ3UfL7IYZi<JU&d$Gl}7v#w^rsm}AS)?HdO{egz_svhZ3+~C{OFLyZk z!r8(;`)}X9`nly&MXMf@hBjJo<%2y1H#R+8zOUfd9m((A(<~AHr~h1DkM9#+c&Np! zk6)a(WW%mM?mhSOPlx9nynoq~56>y-K6b<LyQ^1t?>hL`h>10>_fM?-Xj9|vu84xE zt85LPtVmy*Hn-QJ(=9(*l-Iw>*Qp=e)BN#fJtuy;YU=%`{xk2;Ykw3J&3v~@<J2*| zgzx9QHR`p45eXY^A318`@HM@hTeI#D6+%13*X>x|zr)$5Y6rv%*|Qx#cZ=Ho`?kx6 z{@T*1SNko=Cv3K>8KpbBWq14F?SnTx@!II;K0JEx`|e%to*QxRu~n8vohm-L*06iq z-6JX{q?8>yb5qMFcfaG>_DHKu$uqwDZ^vhTch6~b>!{Vgu8Cf<uiJ3pPw&$sm;AM$ z>XzLPXFVA5r~B98`#Xha4+wv**+T=GI5Jih{js+C+@`lXdH?%P%F0%|oqse=oLBbc zoRQx@F@4<EQ}&Fmald)jk`Hc(zPYw=)Z}p`4fb!iG@;^3X_Gzc($nL1XD(iU;PKbK zTk-vU9iLh>cFe3htIo9<wnZv@s`$#kqvw{r|Ki%mE_YfgtsHyyrta607c84}c+!dO z%TFogyYJMiO*VbebaM8*$gu8tv))t6V}Eh>_XldccBQ>HtEkSaOX<IF(rb^*`sbgU zde1xm%H!?#?t5v}4$Iy@LKoLvI`qYjH=QV~TYuM<Z%cOldc5nAb)$YhpRzSH^ov`c zy7;f`+Nc|E?vWh(V${<iG2@0TKlRM|)t{{`Id!pd+D#1(yxr){WjFqJ^^9kJPCPR! zuGQcXv#c#YSll3Q;fNEBzihtY?1DeL?pyM5r`8MiUXA#AdzT)k23xn~UCthV?Y88x z;j<4u{_@JLl@W7#-7;=^zqhMHr+k~S@L0!3YR~U`<>T?6RE>Z8p2%&(mpsw@(Kmi7 z6i#n1e&ET2_pa|(`(m8!+fSlr-2Tne<w?E1Y%%XjRpWl4{i?e^+Tn+tD<-e2*;w>g z#*KG%+VE3+(k*ijtZtq2%-KzyKKp1*$_r=9&gRViTR8f`z`keS?bgD!z59x#f8E^a zmmhbw>O17C)*G51iHP}StMpE8-_RaUOh0gVNo>=me|0<Z#??^Q%25q2Rj*i+v|-oU z2cy3J=>7&1A7A)Gv!nAnd^_q=Wrh3U2EEU0c=Na4?rWNQsp6j(GG5PoNpOb^J9yi) zwDocSs=9XdSdV54ntc6T{y*#9{&~`}wL;+!_NIOAYuw|QZAkCwKeb)+>L1IdH!3*W zdeZoasPdhi_D*j3PlpXBcQ$ee-G;xnI(OlKCYx}BUpMe_<M?;S3|cb&Axln6$589} zU$?Eke@VaX<@dc6*Y26J#<xDXebCTfoa=;D7q?H$`SH(1xldhd_FelIyFH<#-%$P1 ziLw(vIJ>lcJoLLI!$W(0*l$ttS6yCNw9%7V_44)w`#y8OI(KmR`M*{a2;FuhM^`M! z+x=B+U3E(5i#xg}ci0wrw0!c0!mh=8Z~Jc7(k1%_DeYs};+}^tCf_`Dz^<0|7Bkx4 zue6UN@5b%CdS>xMPc=!txoOsplZUU}_T%O+AAB-mM1I$}+lybj{f7_E*Zfr4ruWFt z-zi;|+T%Z6-kkN?bCc#~uU&I;=*pDaSG3$A{(D{OobX>-t<Ic$f2Q-X?G?^#+x|XT zJmR58r_BCl=n%^jBX9>OXx7KO@Vl$W{ycHt@M}}oeN&e?BL3>j3%VTKpZD)aFC2E> z_>_I@x3B!OX5HXxnJ;|U$kseH^3N4L&pn`whvS;=TQcOs(chl#?0U6Z>+FWgc-UP0 z?BZ)LHH<2$oxZ5x*wfE$NH0I1d@QVk(!X~9cx6a-=3+j1$6Y)n3qP&XGdFu|vCUFf zM|b&@DLI**p7HUISu7=T%!B!PJ!fPKG|}cUJ+ljQvOEvwAcDnOExkz8g`U|tlZ&Uu zj;2UV6$Gngvo4)3dU|qZdtztMi&wBr7@Bp^(~J&FVz+YLxL~tM`m_o$IDA<&+p=0h zkTqKGUfA;Nzcf~Jq9EA(SXgO+MY9+Rjc*!wgU0H}BZUTjEXtS08g?XqvBtVxW`+8( zXeFbuc2=G{r?HrGkRHZah1r>&Os<IXX0_0im-v%kPWzt6(>Yfb8HUO8aHjbz#e@hw zee|&TnuX33&j0-6QSCQsp5T$}7iGZmsSC_BVSNy)jr{x5&h}7Xf#i#6#4vZTSs>mX z7gtX6$I!gjYN7Y8sCMJBpBd|qp?b4g=<Uo_kQV;<LKlAwy^CVC&=W~&N!8--d;BqW zhWSL!&vT>tqLPhyre<%oye#Vp?e=tqKc*?e&|4=|-`$4ozsn!fjA35FnesDyz`sB8 z$589DT2{)KH{*_``D1A1X|*iEnR0sLrzNNzW1i78f%#a*46XZTxj&{Q!z{#^@>BK6 z{ZIR2$h%ex?OqaQ=JS`f`(vmLSuOM&iOSx6@yrYU7<z(iwa^nQ((~q|@7MWb+Axgr zTrBCembdw1+A>UEoT<dtT<bgj7+RTGE%bzd+Tr8Bf4kNnb0fpNfHURit=`}4_Q$km zm}PXvaV+IyG$pd?+n#A}$7-S71R5Q7Hf_|^9}~kcw4+5m?UjoiQBb3vn;0eonIRwU zS-J66e@sWN2N<$-Dt+Zo{+Lb-Q-m{xHoI=#?~jQ^iq%5<iue=S#${~q$K1>?%C7eP z|JjaBZeyN1GmNsAG$r}<xBW5bmaz3-<e7Xppm!5=0;8TdhEaCOEOA|u{V}&N%sq6* zapB#MU-QSn^{}Prx$<ej0e?(4hM^rGD*M>z*}XXi7Xq4+9Aa3j;BQ{@C?%#+fe1>> zXMQnX`^B90i@E3*Q|A|R138KX#a0(Nrai2a9|YlcIi@jU;A8~19MeL@+$+blRAcCW zXer#F#w?O!TB$Ls<QRH`ird;C$23x7K9^%6)R<r77`qztrySE%jlshv7NXRcmU2vU zHKwy1(@c%&FUK@dV?;S7PK}{|O{Q>*8j~%@bX8*t<(O`2%tATlMm1)Y9MeXPd0&oc zt;Xz@W1`iVZ{?V_YRq{#rkxt|j~vrQjcLZ6E8MKc^pay@)tG^DOeZyFj2siA#$?Gc zoz<8!Ii`aevqp}&NsZYf$8=O<YUCIJF+8(Zbulw?X3WUvlQ?*qFo-G2@i52BF|qF9 zeQt~AF?6R66?*#oyk&R9SS@r{rSST~5x=!(BN|=dH4PRRM(FAD<C#4WZ?#0y8Atw0 z$4fL;yv$-4ovogXMRzC*jt@2`_rY7LkSL_dEQZn9qIs!iYlLIyV;U=4W-*M;78TfP zVRu7FpB$)))>w087Q^UlVF2>6wb|XTi^h6FW-*M;Rv*S<cREN97ykUG#(Gm`F^tYu zg3eY0&wCp+)=rtlFgjawx8?Oko*(mC=1UsuTbac$I$OAb`IIa5=*6ZQi@uD90>kKR z^+T*?>(#fSZqZl~a>X%>&K4#LKDLTmS9j1@9c327=xil27TuF6lx8*A)<SI?17sG% z=xp@|R%;u=f_7^))?G4-VRW_zFjfmX<9L3>m76uzRGGyvI$QKUgl6mAKN7}hEcyWx z3JjyOh1;i(56?Y$=ZzZc8JWc}I$N|B(QNgp%{rm6-ji7jqq8-Tv8c^c7`y54&X%eV zt7I0#=xp5qtY*tu_V~*h>y*r57@e&Y#!|+OEiW8*-k{pLCbJkuXUn0pHGfY3Uo;l} zm5l|4(b*crSW11px^nhPjg=s?7)EDnu+G+kIj{e&u|~=)hSAw_G8UDK+Q#E6XQpec z88VAubhc7;ww|py5Tdajky#9*vo%CzK@f&?e7{vI)rYUkEQZn98mh7=huv~UZ`D}* zYt8YdJ7ILTM8=9`@q%#j_xqM;tY2hX45PE<Vk~8xU()WATQyc#7!nZ}MrUgnVzqIj z3g5P^vEpPF!{}_?$ykc5(TUT0Xe^h^Vi=t*H)B!Tpzy_rqdoEDoL>m{%PfY`*-8UK zYx5_r{*<n<%4HVA=xhyVETtXJFP<KzvEGwe45PC(LTBsSxeco{))z91VRW`eGM3T~ z6Qb7tqOtyxSq!7Ib(hZ8=9exl(O7Ne!Ifcjwni})-M=V|Yq+=w{|Ue^ggayw!{}^{ z214`U<&lM-X{>aa#V|TsV;D=Z6&-!^VLaE9ZQ(zYSzs8Qt+9-yw2hCCcDbgpUY1!5 zqq8+mWs%w`El<p}tG0H?EQZn98n3dbf9?6^NI#ABrOaX&ovjIsrL>K`PxM`(vChgY zhSAx&TW4!~r^;J3ma^r;Fgjao<z-R&^1^Nx^EFm9_IW7q)tT>{?Ow!c^%XaNlUHN) zl35I+vo(>ily*33@6*dQ))1M+FuHQxr?XW!<GtrK)_pRIVRW`8>1=gPDD&|lJwBzt zFgjc5h}Fu~@5RC~nk`9YF^tYu24lt18OPg`+vIAjH8P7~bha`XOKFFHZ)iVHV|^^M z7)EDnGGkHOu;932UEHgw+71uNEQZn9%F@{yG5w>98mmTTF^tYuHe)Gm!@1^`Wg5#8 zfkXs`(b>vDtmeZlz1|tCvD(TkhSAxY!dOb%cy;0FVH)dJnZ+<VTT^wm>|>|hqp?QF zEQZn9nx?WK2)(zR4vA8Im@BgwMrSKmWl=2)UH{C|Sc_y9!{}_?&sa)do{?X+USqA2 zSq!7IHC<=x-Frt=YpnG$i(z!O@^rQ;?-+MMV;zuL45PC(LuV^H`KcWm>x|4|7@e(| zjHT4qxr$f6)mR~okchxAI$QaO)!N3u4s)K<SnXsM!{}@ks4UXjfBlt_&DHwqC$ktv zXX^o#MfEjq@`G12)^M4{Fgja>j79TaVl6%MM@Nm7BeNJrXRC;@l)n7#%8wRltOYWQ zVRW`UjHR@Vr*51-Mq@oAvlvEat5|1igm>$=8tZ+T#V|Ts4>FcgUxVhHPSRL=WfsHe zY|YZy`r}ga8jW>IW-*M;)@+@vEz537(O7@WEQZn9nxnI|vTt2Cjn#r&i@-2CTXPZ1 zTNI@`JFkAYnc6mb$Sj7@*?LH2Q7zB!arh>UCCV&@(b<~ESTx@tR?JgB+@-N5%PfY` z*_zK-luWE|LVK*!SPNtp!{}@+U@WC=%o%m`6^*q@W-*M;*26kmIgvR(Ypjhji(z!O zN*GIN8@HaD+fHL0ky#9*v$arX>(bgs2WzbJGK*n!wifAZJzllsS&bFZ7>NiBqq9|t zSZ&-G`FUDLjn!FZF^taEVwFW&PdEASViUD(43b$4qq9|}vZ%gjoYz=)%PfY`*;>L_ zN`19`^pRUMR=&()7@e)9I$L)wxOJ(<S}L;`MrUgoV=47TW3R?~S!OYe&X!ka>z4^n zy{@q~$t;G^*?L5^1%d79-J<&Npv+<zoh?actI6-b?ABO6%PfY`*;>w6H1^Wm=2VXv z^SY_FuF5Qi(b+23*=jxOn|C!<(<VqnU>KdPM-gka#LyYXL-*BO&{$n$7Q^UltsuO* zSGg;4<98bC4w=O;I$Mu1mQr8;dGXO!8f(1FVi=vR$91+sR%G?lSot!GVRW{hP+1U! zv2Ty=aHHx&G%gkxMrUg!;<a)u?ezRQjrE4iVi=vRCmBn*SANyz=}$CPwaj7|ovo*I zwodJN?M01sR%S7b&eqe6rTB3A-u>+~R-_$?2n?gM^$cRQa($jZc7?|3DYF<xXX{zU zqP|Qa)!Axp8`Xy+WfsHeY&{38W-I%i@D&;hi$xX~MrUgkV<|p#?&{r6V@WcLVRW{h z*V+2?!t9$g)|)bmVRW`$U@XOl%id4#r?K|REQZn9dQoR9WbzOnZ=8`?45PF4l3FeZ z!n2DW9@bj*VHjlrfnjvEUPi3u!&ytcbsDRa%wiawt<{W0_hkxuH!S>bv}$Xh%vy~U z>|*&mcX)+j)V@5YWzowTYog3z7@e&(j3p-vZKL`{wNq`)k)s(#XX{m+t!^V;Kc=xB zmst#>v$dA7lzU3Eg2r1k)*CX5VRW|E>1>U<^+b}!s+3s_qqFrIV=3+Mt$%6`Yb;Fd zSzs8Qt=Dz7o@msug~qxlvlvEa>kY<I%JpGH%6A$ovMIO4FgjcR(%Cw`u*%09H_I%B z(b;;Fu_!Av&M)|}_#MsGK$*obI$Lk)Y&A|j@q)%0FS8g%XX|aoQp(kD>)Lf1t3YNk zjLz0OI$Pu4`{P%Q<&{|sqqFrcV=3j@eqz}ojkQK*F^taEdpcW}SLNTTv9`)AhSAx2 zUuUao-GxkzbyQ|CjLy~vI$Hy_6mQj7zsW3y(b@Wtv6QiQ`!7lNcTxLSXfq@tFpSRD zM~Kz>vi-}FBN_`+MHU!FXKOuUDfLy}=AC~u*6lKjVRW`O=xn`hZIz|5?vYsxqqDV< zv6TAy>5i|bYphu^i(z!OHtB4YZ^=8Wv7VG!45PEPS!F>GiYoHY+^qWW1DVAzI$IyB zEb1xUdT*VlvA&X745PEPg|QSLZis#Rb&YjZW-*M;)>fUZwS6-#X{?y$NJL;5ovm$% zwOSNgFJ_+b$>9*0#V|TspD<P=opH45ylkXqD^F%IjLz0}#!~7_Jbv2<jrD}gVi=vR z9Xea@+)^@2V{MjM45PDEp|e%>-MLRS)^VA|Fgjb6I$PGtzJ(ggMovOt7@e)1h~++{ z^m9MX=@qNCjjl3_VRW{3F_z-PJr_HV)mRRh#V|TsyH#7{`CZAO6E)U&nZ+<VTc7G| z-TFt;B8`<VvlvEaYmd&>PeVU%tFe~KEQZn9s?ym?T=-YD#(G(1F^tYuHDf7l<D2Nb zB#pI6W-*M;)?S^h!K)f}*H{N-7Q^Ul?bDTOM634c8tYe?#V|TspXqGP%Y9~s#;TK9 z45PEP|2pMrbpsL+7)EF7bHr+6@A}>upK7*x$t;G^**d^jiVwTCe&C$O8Y;6GMrZ4w z&Q{}V_r9;O@Nks{hSAwNq}n3DpWmDs7^AlNSu%@ZbhZvNmeS^*AG_pLjrFL^Vi=vR zBaB6JQEKyxZeKi0W382045PF4h0fM*cYhSAv9`%9hSAwN%2<jIXYDxLMq?e7Sq!7I z^`*|%;m+xEG}bwp#V|TsU#Tnz!e1%lzv!&`(AJXT1c706w!TKJ);4Hesj+&>EQZn9 zI>uNrbjER^<fBTBHC|>hjLz0KjHT4qvb(o!&{&IP7Q^Uleal#i4{2SgvEGqc45PF4 zoz7PK3ErnP)-jpIFgjb`Ggb_paeTV&>!}*c+6qw!45PF417bBFHecZyqOp3)EQZn9 zI?h<(q!OXyGw*!fL9MU5WfsHeY@GmBv(>ucrx6-!fy`nUovo9M6;EdzwZGr>ipE+a zvlvEa>qo{?>gy}ds$`8-EwdO#XX_MWDfRWApPu+gW1W{-45PF4lg`#(4}SiL#%d9b zL<EM>**c9_tA+Zq1;?(3ZL@DueK<g7F^taE&y1y%>)W!V(Hd)t%wiawtzQ_6hGz0% zv!8#Osj(iHSq!7I^{dWSkIvm*(pcMN7Q^UlozdB9{9ONy8mm@jF^tYujm}nO+3?pi zR&;A5A~1~3)>*`A?{8G@pVviWrOGUZ(b=kHEX9Y--@lNdu?l4t!{}_C)7k2mpLbSc zy)3gBMrZ3covl}QJk(2L?Uz{$qqB8hWkC>{_I_wnN40HSky#9*v-P{mqFSbRMKo4y z8`6aDWx}C<-{u0vsL$xnKmO8IjWt|mF^taEzZpyMVc#`hHP=|!!eN17bmjVkv6TKr z?}})w*JKvM=xklo**bhVxuM27BC{AqXX{VKilsA-0r^*YXsmx^7Q^Ul{YPi3r_*&t zV|8tdL<EM>*}8;S-VQ09-c7Zt^)*grF^taEUyP;r(D`1@HH|exW-$yY6-wn8lJOrj zS<|K$_3KL)!ety*OGOyF@HssNMnO^fwA`7VoWk_%{FymEm$@@@J-Cz;r{;Llr{?8P z&de)HpHe(Ct4N>Z>1`U@#~8~jP07q6L$c->`Ps#JIq6w>nMFmy9e1P;PDzhXOdCFQ zuw#UKWQqby5r&LOPb<!I<~}G(Lvm-6ga}z0m0vtFo8&2;bi6y9o|%`IpQT(B=IAb` z6z1emQdWN9OcXu8FgItWC)1OgKhq~R7e&p>WKK}ajyICii?TBFR8JM9XBHIX%|Ut6 zXJi&lPtTcIR9whX*`+6QG76`-)+dT*M`3Z;jGV%$Ih1eGmYq8Tx{#xEvdNf}b3NpD zpQOy}>~v4>B2Uf?|M)EU1NBM?<m#ey1;(#9EkR56^e)Vy7p_&jrw>{6z4lX?m6u<X zBcS%V&isO$nc5Yz=jo$MQ?4kDwIR*3<kj?9x!Im+JYjNPaSk$#!p}v^EJ}|@PNt<B zVtwP70)}O=N^{N5De@HNQw>d1jm^xN#jYva>D>8BduQ2|<1({6xesP~a+v!yLS|m> z)S0rrIR(?w^YSyZ(+l#+$v&}W3a8}G%tk#F=Fgn!Pq=O(>p2DaXpcGRGxG~)WajxR z@WteNrlDcWnMzL|I$F$}nVpwYICxr4)^s5qe$6T_%=OGk&!Px)g#78bIYMml%vs1{ ztgo-MCLhc8uLC8jRJp==zfd{)*sN)pxie#XLzh0DTkwzP_`U(~{_z}tYXH1|JjeG7 zfcKBr3d?$?-0QW%>SDR_cv7y5=Y{o;=XmA>6TE-CAu~Q>jv+(7DW)VoDw(q6Bx6~) zN*zxtkS@_!DqW&ay|W_g5>2zJ4VI?a^-1Q2SsU@u?E~P(uLIy3SgX07hU);dA_N-O zwNeB``1n2`#-~jM#Q4-iK#Wg?1jLvX%IA(`RwCczKy>9U6Ns;-YYKdBa2m@u(#Lha z(LUbtjrOT;-)N5Z89dk>E|#Nx#t0tG(SFe!eVaDY_@e!yIXclC?H6ryh;olN`b3TA z>V1Y!HHGKiEQND?ykOv%rTAxz&o%rrCdYFlY$V||pv+EWhFJ>d^wE4};FzUwPC`JA zS&Cm__&mw4EOInA;d4uq=T$P^B*DKRIt#w#(An_Ktd3!lz-{=}ua04o;9qRDBl5<g z-pf6G)D)AVsA-&~D~+1QdAfY7X`E-CW>PEzPggQEjq`k)u2u$a&pgfO6h0v~HU&AB z8}VtnI<$X0$NMx89o|1)&Wt)8_Z?XbkqT5lAD8p3&e=&pksuFn39-g_r6P>+N+lTM zIlix-9@UB31f8w1l+}Rh&Oqs!qXHqgX>wU01lK{WF%W|5xE{i%Acl1cRxduKFiG?+ zf=RM({!Nm7GjEdYn{$)oz}db|rgdutS*gzo%)hk0i9QyUWg0EXd`P-zUOeg`THW~I zO%i+^qEqGT3S9zc(5PZ+!z6(-Xgo1xm?UrpjU=WFlLXG7NrWlGB!M$%B4NrfN${x* zy4U)yhkYu<FNquCzV}PyZVr&hnY=RwU<ODu&#HczZk}fYCP3y5r~sufpaK-ffa1FR z%4I-tU3`r3ag71x+lT|BxGvss1EaXE`cOv4^DPjgtL0cf=jzZtjY5a_ag7e|AMfWR z9p1-zI{iLH)ZzW(xqjY%nd5YL|9Fn)z1JV_AMfMLsd==4#I}ljoar0uTUg(C-!|YI z&+)uazVW{G>>KZs8J|XCvKQr(zj}baS*Qo<o2z=DT&s`w`5r;woCXEuT7BxMKCMAP zeVodD9XOYKoTgS_hT+*$2JJv7?#230To)}G>CSL{UG<^-3h2A{sNbLTX*Wu{!?v{P zR;E1DRPN`zYXk)IQU?j<h38{Qz1iTJg9LNU%Cs=3JO>Hpn)O||9&ZE*zHasDwvMk` zdwL|#F7I{zF4kkYhl9g%y}aKAr#Cn(*Q-pSj1^~=-{7#SbJ^Cm@?=eQq%PKXBc5-; z_v+KXcZ^Ty-LFr-KDQ<&^u5g|5@PT8_<sHR#l$2g^iS-=k}@K)mrS<2we@_)KD=GE z!^WTV`F=ej#q`3FeH%|x&k<3A?^h&J{CXTK4Y(8`YLM?2`VlTN6kpPiC<vnm(v=`A z!I2`2OfljbB7VhSLTDi+D#Z^Mf#hd{z>&T+LEu7wd&>_O?`PKz+&g|a|NIedTM#&U zm+7-0aFoB3emMX9S%EthB<|-RaOCGRemMW~67G*6aE*bx76h&la1EU}`Gi32phXZk zs*m<T;OJ$f9zozp->pI5ngHhv0!Mxs6$Fm#rU!we*8ye*fg`(fgTyTj0!RLPG6)>i z?+ZcTsQ<nmB<}qnaUTbPqx|g*0!Qus^B{2K=dXjnQF%`Xfus8UEeM<yxGR1*|8c_x z+_fNaLMp&MAtlOOpDhR+jcegS;HV!(_~HD=A@WOf5IC|M>xc6%2fYo`IS3s2uSXC# zYA?P0aQ@|J3S3eUIC=@n9R!ZXjfp|v$nNwYa8w`jg20j8M}ojnIi3p=_pcyuWcTAB zaF~_|)qXhtc0jlTLExx<kNV;K>$e$j$AiE%2kt@;IO^xtAvpO2vwlhAbEqHAKYxU4 z5(JL=QA<CZzyBzI(Lvy-AGHk<*C7ZT+3gerj_h_064x~d9NFy|B(8T5I2wog27#md zOp+hYyne+Xa1Eeuq#q9T>+{vyfCz_ij0LXqP`VP>Yl|^aBQuP+C3s7D0x-u#jw8RD z;Z`9&)FlY3aZn(Cn&BoRemgKR!w3}^cQ4Wg$`}U3$xI)8&Fpi)4R>=?AiH~k%LC@t z;T%VPGShbi9b_sn{qN$q&;Ypap`aL;yT)@|OaL5x!S3S|1mTCfIWCa@CLy`OJ@_e8 z927t^&EGU6%mC&~au7lwTqe>^0FyG2!2;sw2ZV<Kv-Q5~;}#?NQ(#<_QG`HtbCEV0 zm~AqS`hl6Bsh&d8aq<afxMN6f0Nf8UHc-9A182|hQ3laWUl+vR0o)WE6atlF5z-1W zutvf`fyPZUeQzN?6wdwt2ZccGuMBAiff+*`03ndwTBJ<^#+Aij0rhP~@>Chak>>fM zYUr4)Ao!<QIo`$%t^~O5vp8lMKFn|)WPIK{+~ekR9Nj<7a8w^-7I2JmHp4xL#Kpi} zm9c^R(g`@*!-CKS2ZcbmQ>cL6z%(!AIN~w8K0jDMDb%kYphoQz%<jKUkv_{0hw<4k zp3?kanE_{3-V)$e1%ayut_?LBpJ1l1H_}f9iEF;ZM;SyjebhgkLEvb;H9ZJi3~&zy zfurH<=^${o1NU#>dM<^45U3q=Ls}v*S@qy(UOYp_kUk1#ej(gLLExGpLtfyXrw)V= zD1T=$psWLCg~V|U@L^_mIpQmUNh1Lv&^UA>(lTWX1L9<+uL24d05@<2N3{rmqpwR3 zeGK>2CpeD!ftfxV`rBn-u03^qeI-cV{WRLvGaMJlFWE>Q4$O!3;HCn%O~!DI=J|UP ziJhLsm-FMG5XgT+k)h9kX+{$ngh2VDcF<17Fd$B5exV<2?+V<|=Q%1+{nB_k2bkYp z;J83`si=R+7>+czyAp|yzNjGhr&<0k!q81G2||n2921HUhV%LAbxNW3F>*CYT43WO z+v?ZiA|Yn4#yt}U1vCqR;SBm{-T3HgoP0tceJ`!XkAL8x5J+D;q*brR9t;i&D$XQ- zA+KPKghPij<d4eR9hej&&P3lNVD2~K4EiX4%Ya#H#F^;Z3CsZ_&Y+L{cMh0qMx2Sh zHfu1y$3a2$i$NdNn^VRxAWnhmV<d1B>(NL4n+wdNMx06h-Ueo~5ogFBmG>)Pelg-q z^x0m;PYmOraJ};OlrbC`xV!^^8&Z!xDsMJ0vyC{D{5=iK8Y9l6ycNJ4GU811od@Qs z5oe+=daY7Y{u!u#<ACccW37Oi^<OIQC}5@-aVGg&49sIjoFRXt?_FSa8gVB2P6Bhz zh%@M;_7brUb0-`W)N+{UO9Tc#45!B#^ilpM%NULf++H38Zcz~WRs*x%h%?FG5nzrR zafbX+d9MKz`5MpN^~&27n0`i_K_8WO3^3D-IFtM>0p<xK&Y+L-_r8qbISlN-3gGtF zqc0jt&H@wiI@fl+^2Pwu-H0>fkIFj?m`O&QNqOf1v&@Jy=%ez!2Fyky&P3l)U``rw zCi?yXrpX)im$y4GiAJ13UkucY1Li>)XTf!#@t_2l<@M;J``eqq><L2OAz;3*M<3Pi zRbZO^3j)IR>Ng&kWFyW{UaF6KfVtm@GpUbdz&vTh8T3(m`B27C{wM_U-yYzO1flN& zFt#_juIrVzBQQOUI79xZyl!A78gVA&oeRtoBhEzMS{cK07`VLafvc!TANlV%Fn<_v zCi#nc3v+E86jZ+$@<;7u05GGBI1_yZz|1q^4Eo4_tAKgah%?bw4a`v^&P3lIz=XU_ zrSK_-iM|+Mx*Kr@ec{kCOvW&UI0b5dqkx-Kk3Oo8dB8ko#F^ypU0}8tafbYn|BeB3 z#)vb~7y1tRISvYe>X-5tFJl-Gr$FU(0ynZAeU!hMLF!uo+#~hqqxSa(Fcn6eNqLV0 zbJmD6@n876c=m#Wg6bC&ef@wLWW<^1%aAc#V_^Rk05`85eN-Q-fO*%5Gs)k6V2&Aa zhWwGfOTa|D$8&eR^2Pzv*N8Ldqxu~M%w!|ZB!4BqEH~mz^t}np79-9?-!WiL8*v7G z)PF<X=VevSf!cEfa4lu5>KB7P@?YN|^@+fZsYf5>uP{h`bAek@k3Q-jYk}Ej#F_Z- zTVQ@M;tb`Df<D^^*q6XTLG_D?zCOSVG~!J3O_VWQW8nUg2i)v>^ih304a}QHoJszw zfjMf#8S+Q|`vaJW4|(pcSKc^a`WkTtedNDUz)UvcO!8L(%yJ{nMBkghY%$_Y^c@4{ zv=L{bFXSU$R^=S1e>4NGy^K};V$etaOAb=s7~nGM(MSDbL6G{E0QW>a`l!9U56o^O z&cuJGfH`l(8OlrgBG+Rt4+jO+FDCj10yE5rGw7rCG7Xs7Mx2Shr-4~x#2NHOLSKc9 zq5M$@RKNRyJ64ZAs^3e%G}*vZUAMg5fk`yt4EZB{<A9lI#F><LIWW%}aRz<lzm34` zG2%@0od)KD5oe;W$wppQ<s8U=?SbnmW7T$G(ANS=L|`TwaVGhj3(OKD&Y+LhgKL4Q zFyc(~9S7#D5ogdx{tMrP`4A2YYB@~w^#f**5oe+=1DFCM&P3m%z^pRj4Em_OY?d)B zgE$4Mk3+zHUynYjkE=oIYqA;pTsSDGelg^a^d$o0HsVamdp|G_8gT}FR3A?Qv(|_+ z(YF(r14f)dALZ|yjDg5PApZ#;V{F4gAy9c~eC{e^7!apG`uYGjupWKXo+kn`TgF{) zzhn_GkJh7)%KJ7j6-Jzi|BeH5)`&ClU-%ZRlW|Z`{bHhT05C(0ID<Z_-)vw!Mx2Sh zCxCg$h%?c*4Ve8#oQb}(z+5uo4EmyxzZP4uPR2pudgUDk%s3;?ppWiH9vQ<F;uNU8 zlmNH99(`25ZvwO3h%+hg_rRPn;tctVfxggfc#eaE!u87Q1ZJcWXV6FWI}?}%Mx06h zUI69|BhH{N7W(!8bJmD6(HH&+>JA45wHyY0)PMWP7zV^CP<;#lZb&`)SbGjqp9i>- zdi1qJeqI7*ixFp1-ebU=HsTEBrTm3#$36%S3aVdB^u+^{Y{VJ#k^k<IF-##&f&4ca zxS93nqxQT!NPVk;d%GTel)rsJ>N^75@gVeF3sRqL2c8e&prHEM#D6_y3`Yj`Uq9dm z1)(n^NPW|Q^8}&qi6Hf@0`9eX^wD^_J4k)s19zq#eR0qiT7i9P92Bm1zf7#a^EVt6 z0@VkNFOw@U@5Djjdiox#!2hV=prGpW`NB+!k7|UzTS1afh`@R&CZ?A&b%<lEdyLyP zXh6rb(c=b>8q-l9Il}E6?np}=-7&@n_P=q^)2eBLr70;JJYeG3qMX8_iH__U_}6cI zA7G{@zi^^6f7VR;D#4<O^!1dUIR!aA`t-cD=dH%e+5P&eQ9ZMB3nz}s$;-(s%9&VD zlvzBxXa3~-g#kixQ(-b54hzkN8-=mOc+E}zOv}wG%rDBH;)#hHbxX{M0#ELY+_||k zr^XD<pHYyDF9@Uz{{P|s_rU+q19kt$AXq}Iwg#bL;SFVCM5D;YP3%!kn>BB7L(5jt zt=qJ1cVqhwF*kMW!~ylB{|}4u|4CJe|KnW!ul3PT|Gy0XYkmLAyalU^Zl_uZfk?;y zEfAvt4!Xxspj#dtbggI%m9LdFT(UHZCyeq*9f>eXQ22CBOCO66j<cOfG!<>eBr3%X zOp3vot}Fu8PFp6$<J_J})S_-;QVPzoOcHVK!laQncV*H9oO>`S183q}aMu)s1SS>W z+>c4KaqiEg5}cEnv<&AvnDiLVgP8Oz&Z$gVjWb!a2yftgCzIaCc{r0c<9rvBDsUdd zq-vbUGwBe{_b}-g&i66tB+eO3I)if-lP=&qg-Mrj&Seq|3VBQlhm_BxC`fdlwFuFW zaC3$f18Fvs;vhZ5q<BaRn3M=<A(K)dEoPDkX(^LNLVAQr6Cjl{DFYJu0se!ul1T-S zo@UZ)NY62;1kwvkS_bK5COrme4U?XQMDG<@gw>G9bMPM|dX{Yw-iJg_?JUA(NO<-D zsRGh^CRIbC{V9uZ2okN<Ey6KKw9c^zCm~fZ=?tV@Ou7JR50frK+RG$rr2Cl^4(TA1 zq97e%QZ%G5nG^$wY6tBP(sxXXhjg4tiI9F|QVOKgOrjT;e`V4kNHj-7{viFuq?3^T zWYQT(SDADHQhVggB3y=a6O(BE_+OS94hc#4i-KflQZ%F+m=ptvUin7;AVo7N9#UH- zB|@??DFsp}lSD`jnKTkoB$FmU8qA~&NJE%34N?k|3LwQYX*Q%TOe%rYl}XDW^<dIt zkm8y2ETjY`t%lT(NpC>v&!o+e?q^a3q)aANL&|2-AxKl16pjIB29u&7aa=Scj-x3s z$4!7#z;GFmikLJF(t}JYfHa3mZ$O&Ir1v2`%%shb7BQ&;QW=vjKuTlMWk@5LL<8bz zCWS*9%A_brB9o#axtJ6KX&95@Af01X7Z2$-CM7~T&!iMcw=<jwDVa$lA&q6y1W03; zG!4={Oqva89FrVHSvfPaF{O6Q&Mk6hPR_|=(iqI_F+L5-Ln5WnbrHXG<`m(p#nUni zd@o1l7v<7d(-#SYg~9j}g~6ExVovVVX&zzlw9LZs^quKU!q<f56pqGsxKlK{C=#Gj z&PD3Xto&?D^+)3?zh~qKsoXk!5<D%(Q<#hI^`}cL1;{3Hg)3)nVGh0r9bb))iy`?l zJwC`ga|&lVGd-D<MDobY+(Jeg1M|}<Mo2BnBK5+M%o(|PbB1TaGAS7}C?DV74}r%N z=jAcMRWt}I8HyKNMT1>VS;E))=VXt}^<+&$G`kolxIFk;t}MsQsrWMfJ4fPA#4!QK z-GW<y3k$TO$~lH-iZI|0&-dhJ<p?9;%h8_9LJ!pemwf%el6*YDt~Fn<OUj+%4HlvL zL%rf2(O<@MYpTO~^J~p#qdnQ;ctmE88!u?FW2r6W<<87e8ib(6jG303H634)UnGnh zhd<O;exWc9OH8V^@xu6c{7t}dw=ljp{vh^-h!323L*gGYbAsHuJcY$Mg6N$X8zp-4 zVxvW`CpKohSb8qrC0%xV9f=9QiRI4N6zLDq>x_*PrEdrp<CONLCRCJ<4Hu<@baRA; z!EycbVpEDIGPqMZ!0<o-$0$C?cnKQIDvIO1MeV8vNB_S4o#Wo=F`~Dd=$(#iOb@qH zcg6tQba0A2s&Nz(?;Kg%LX<`$3)~{<02bF1V?|NQiybLSp4bUu>F)UST?0Y+03FoE zrWRbH8zc<^HukfyTzVhZA2M9Zc*hvWSO*n7(VcZFO}dgMoe`xgWk>AGXdrMVWwx`I z-w7$LY_EOUAPA!53MbEHxU73cDV;g6fE+kmO!~~e<R|DBrCu)Sg4pdpvm1y>7YifA zsy#Fdvv)wsE^*;5WJVAx&xDB9W8%V}gllzmV$wH-KZ(-NL^s?%O_Zw1k1^60+{<(s zhLTS!tMIfJy}hX11>}JYD*S8|KGBixxX&>$eU}><iFZqv#IoN!L*3HQC{g;7DS;d( zW({p8O0C3hU#68uR-`3W7PWFof(WglqIIXsE4WH4!Vz6qBTDYr7=<c&)1%VLF3k>g zOTE&p=iRUwkG#eWD{t{LN{d2`2v3u$M5|r&Mus3I-tA2eaY<iN0%Ey+%fsOb6*Ug{ zVKYrleKY+EuHS=eZNe{*K4%i$gn1oJfyCp;?a@?M$Xb7Dlx20Exzb(X<g|FIf<#ez z0LKAlv2<Q+JX)x=c$8Zj94<;<!>zJE2g4P2wsT9(-QB)+mq%8+;EL8$9&<~mW;i3w zy3_4N4lBZuK+cfqXx)ROWEITVL^Q_I-7)FAXp+lIFjy_Y5=guRtfR4fFPy{LJ>^}R zlURJaC^bdPrmV-ydPm14Tw+lPN(6ijL{S{S_7<W4L{q&Zej-ZD>~~ge-KI)IRY{cY zigHV6trjt9XOZaIV!>n^UKQ*eN^lmO_Kkw0<Z{fc&@}t2I}6)FzPb2D`^NB+D~&yk zORhwC!o|7@a0_eY&(B?6%Px@}s1kMfK)v)%O@N`h(eAE@(pPByMYoF|EB2;522&y2 zl-vGlWnpV(sx2au8+#&?nW3Fx(ierliFND~B_D&5CVgQq?S&lMH%8E~lK2UxC_=eo z-5dY4FRp`Fa^<1oHlp-}SngIm37%7`uAvTDawRTM@@|%#TpTZ!4}yDk6*W!_FK#H7 z?hL7+_jb*7u3)5r#cdf$Iz+q(@IuA%k(OGIQ~JC%-!1JdxzejR(ha>X>5v<cd%5Rt zDixw!TTz<TP_r6ED!Gz8E7WCwbzfoslA3`fSMFd}pA~j<K^^pvLykGUBjD&()c4WE zspX*!h`jpASx8Fyq9{yE`pRi{eopAxFEpIOX07EZ*xe5MHa4N(#-tj=eZnN4JAz{z z8yaI$6YAX3A5QOFRO`Rp-T~q#N{za`bJ4Ztpm|x`NmWG&7~>qQ;h-^z_E$eIY+Z8Y z=HhmU6O<Zu)l~pmcuxL2<o1TTG1{dN{~iKTcM;v*kmNY~Vwz7U-|Hz#e#kS*QIgn; zW{U#(4mESY?mXtbN9mAFoc$L>7u#Ik;m8mar1f7AUL2O@9hmA}fI+&6?q(5#@p4l7 zuBt&%)R3svz@1;qJq{OT6}9VK<tY{gKsUBfW>&^D5t9xUJtIno(WJ@la{ES0^1a2j zx?Qyq$@dk9)_qp?-GZ^qEFX>B(hxYWi7TnPsHc5n(~_&)L0=X|mt4KM7(KwE_(!a( z1d4h9`#i#w9EQEZr)oN4_!P^BS!!;8fXrdFVw(G!i~rQs(YlSgxlQ;R0<Z86xTaN& zO&CQ^WT_wH%o~B*i(!B4=yA9!iqbg@v>9&cltVfumXAH@sItIjos0VQznK?G=U=ee z%T^!{ZmEe_9(k`@8i$6EddBU2JC>HHuDa^9^6vZH-fgj~aVbh^C)1>BD3{xthH4*s z%<Y|lTU!&icSsb9Y%h(3u7nD=cYW-$L|4a+@{u-s2PgimHuZw&O+7<Syv^Pr1;YV% zB>K+b`W?B2+76kM9z=skt8gV9u$R(;1J1|wNosH8DYUnNXm2+q_u7F(-q5ak=U-5& zzH~vfP(w3`9lY^Clk}C6Uh_Fo${iM-C>=lo+D>`;KMI|h-OLmpCRO$_T6CMWpXui9 zC)uTTKOYAK(URN}b2nNo@=#bxQ?%5R(q(wHb^x`i+IBm5gVL1<)mDLNTSK_$j99j} zxUnxUgf5!kKAe(PcG?r2mh|7E=Ju%6lYiKw(k?jcO~d}cX#`pYYPhrt_pK(Z7PP9R zdS4Wa)+$Q#MYn`@A)#GJyal)=-jLF|T@yFI^(G5lU4Q-VmgE*yc@^`GotR7AAzBZ4 zTe+z%jf=vdn1RXAq<imUH)dLY+XQO)yuIH6iT8#{ka%x+Mon!B7x3PY!g~Vdhcpb9 z=f&2D3(r-vienR1F=00x7$!>Jir%qR=p$b{y=l*+N<X^2sjs`G8aV7_R_RjOub4e9 zP65j;6`x3`a7qtFic;~{RjCr$^`@?Hdy6+YO6$UkZ+A)a(SC;Do^f9kbpG!0rV1|U zb65G0I*5F<E1h3wb$RCtF7JI&#mQ2d<k%4oJ++NWuULzFIi&sGG%2<0w0-gCX!2s+ zp3P*%Rd+x(gi4ISTx<gprPLLU^6_=9&B}o89lI1YQROag3<`DG*PT*+wA<PpgV7}# zx|)<+!O(>sSB)Nru^mHKs5W%%0g8q$_KBej)0EPyVfLj?%1G8uhqQbl>BZc+?nkkF zoYj@|Rgtq~pr`nbk_DE+;{GKILW+wMN(ST<_k<G~(9ncTT(EB(->&qm#lH9iu9>hO zg2S68lwJ*~`567sT|UG{GmkxKNqdSuFBv$cxEdNWi+4g}Uh%e)0Yz|dNn%d%2hbZ@ z`xX``=(WD{1!PsKu6@cun<GN)DaU3!6U1<VXdMufaZJTACD~IPmaw;GGL4Bzd+ep- zAe1C_vX`Ynz%<DzRWj`~lV=*FW4tja{9X1k8qT4kJwB#TVQPLy<8v&7@CyV{N`2WO z9q)ErlxD}kulCX(5G$qrT6)=599H)kyj*K9y&PgMW9Yg)rMv!dNn<ggKjOi?hA)_0 zRjDWjCQG9&h;o;wu4K6orOQ(4%CZW3*?Z9G#<B#?kSTj?NoZN~g_=wx;nvSgS3(DB zI<?Pf+~yiM*56kfmi$n0bI1Dm)L2nP%n8o}B}&Jssq}ixzOj*iTd`_wWtS`IIJFh_ ziMBG4rnDCkSv206*vT^-{lPYWoGS}mYyR)FprpwitBd5Nav@MTUQBt8+ZX?Ymg1<Z zN?m-~(^_lIl=Vf^;oe%CSYBiyjrQf#8>F<~d2OU!bfAOD@?Vf`vivvXa3({DtfAE) zRft%gwo=4xGHytD<T`R}YQk^Go150hqLhLIceK=lj`Fcwkz2Zq>m9PQX#weweh_yk z-HqMFIxHqdNZ9QpHTL&*v7)9*yHQ#!)p%)9S<7g!awP4xFQOexz6kIZzen!wI|csc zeG~JpgTeI8;`iz>ho>I;x2<py#tY9>srZ?}<;k&bDF@yDe46x^L$bT1cCpM4UaM5q zZI45WT*5C0+aPb3<?wRbZE8|om3MGtT6uPCcv|_xHdpCymg0>V@7}}cx5+Kd-+^J} zpi7=_Nn@94^@X7fBU0Vox(bY77_Dg79QAiyom0wrrY0K#>zts6i3$6eWpUx|YH|wZ zb8H1ngFYsq^#yu~XB);O8+(et?+~<u&Lvt>Y-OqAQDFyhScMv#X$EK$nxR|Jz=S!J zDpf+_i#^(D=1ajpA@POlix^Tk_avlu8TXtjT~;L<Z1PkGB))+mL85txO^C$(gQvDt zr7o(}Pn9M^;(2)m(tgI>2I&wat55;y3nuM`beKuikd82EKcu5fI;2WRA$`f>jzRj0 zNhzbpVwOnv#f9gdMgBzzN%){!;^J7^ueL{pNP{BLIcQJif+$_Zw9y_lEXv;08Jk$; zjCI0001b+<H+9E~6g#2xa)hTr>E*EEa7u>`jOys}j?FQox_nG*0jqM%?&Hh8n-jsl zIH2Ywq$Q=txV>v*Y5UtgG(D#D;m9zz)S0HCv^VaSW=47J($H9}?Zc&NmlV3Jokc94 z7h8Zix@!uXS&C8^8A!xbEfvdcX()Cy_F#!2VrnWPH<SZ;lsJRQP;>i6ckGzD&n#|i zKw(}}_T9suxV@dFPu&vFhTA(6lOAqgl$JA(_%vB^8C!x(y6@gy&7qpNMS4y|&j@V7 zB}nv)z$PT(%<E9UjCcM|mhsYFtmJ9!$DV_2VHRmjzyx_-Y&7jA#W=>hv44;z{hRg= zup=m4ajC<X3;PN2_Ki_&IfFUD*M)6pIpeo?036#ppwC0t%)+O=lq$1?HfcN^N)nSj zt>nJ#!G?k~FE)nunc^JjyKpZ}P5AE4@<<G|dmXrsG4gVd-Q5nQN=IBt``q>+htqJ^ z^U&Hg3e$k{9#kZ4d&6eon-19Ds4DCQxumGCOR6sY@nNTZyX_W7>E)=RPL-!@jz)*< zTTX=+MLL$X=<TShB!}R(vdbZT1~Y{lXb~Azde!2Ir~sH_kS1CySwT|0O+3xSq@hto z4NDRS+RM7~sQ?O$yBCV1FW9HhU5mqp-eYk}N0j=7PaW7FQ1@t3^cyt0g4&=-m9U|Q zN#tHux%a^gAAnNEYFnPT-Oh<}N~hdX!!+#sV#ccO47stq?MFAKR4g$Zta`CwbEL2h zWWJtP*Q+k9=dd`%dY*kANchd|ZHO3qDLrVxg5JWKQEHz{Z04|0nK^8n@4_<4jr(O% zmA&*6U}*|4japxvOZtX#5KlKXK8e6hZJ&Bm^PNP9NhjDOf<D<KVzwI<l60ad+nJc) zxi<}KlO~R&bMwcFS)aPf`wp#bAeMV#GvxWiY-QQ+#*XLg%F9txyrHh7Z#?blK22SG z$rGdVh<#BuO(hzAf-`0mZfp!wt;W%Q!!&BHF=?2@NuOf<5if7Z-nXj-nvm@J(X_*k zy2gTm^(d@!u&&=(G@LqHitnVL1m5teb-2DNs9L9vlj5XRyi?khhDPhfKI}ezqeQ0e z-8C0_`Q4<-5lu!!FZNHp4)ph?Zm%oGP7lq{bDBEh>~ZoQyekp0F+5g8Y&;WP6A+ui zW2Yf@B#)hqm0yDl$bZ<IE?kDsU9EAVhi^9adH|Ptsc{2TDOHt76~|3frJcNagtHz_ zZG>+GC;Ya@G1219ok05%C<^x7QH&_I!Mcbx5wJ;#t$R<ZOImn=E+uHVGa3tYY^Dv4 z!Dj|N#NZy1hG6_3j21XOBP9`!7Cd%QTFO~s9B3I-+bKwn#{uZ{6xm&DQx4B93RIs- zB`~JCt@JT=C3{X<jVo$1@qG7=3i%Nmd1(ehoyI1-rb_h8oyWlivP8{?X8D~($q{3Z zLUpmS+M`6=ULSb_IMhN)460xeZ8YoxGzQNtqU}2zlbtxVvF>zQE1XG=@CWHh4I3g7 zDt5&HyI#HpC{KkP<7mIVWX?qD$=C{iATCw9;Bkxg9mBEo9s+MtInaI+MG5<C<?X6P z>lL}lp*uOS0b*s|#f5jUEoJd<tmO75EB>iihP5+@Q|g956>Vl>bY&arj!C-)AuoKg zGeVWfR`fV!QxbKItWdF>(p8koHJM6=LECAqb|$&PXW0@i)iy)%9N0x=S&%N^);+G| zp^0b}WJ#JH=SfCM#=?ABxJV0b6hsuQ--_kQhaK{ANG?T~T8g1I%C@-2YMD}(8bZ?q zrfecj1$MKY#Ywx8RaescAiN+Ct5OP$1gMd_<HWM>iW`;>wi5H+UF7ECMpNpnxLvRa zH%jL~(K2vyMAubXs~t(MNR+IiwpqdvjP6eCF0+iGWN|1;qbX&37qoWTHw{La4vW&A z(Ni3C)l-~a=UxBUH$ipf6mKK0oBXQPHj1wFsnR(UtPbgdbQZVz;+Et<se-j|-u#g< z+>}|hqX1Qo2{cioa)hHCHT2Yj6{8u7;gt5!Qy{()t(_U5G!0;)_6B`%oD%Ih-HZ}h zr<7GJXldUx8U@1Ad2sZUx_wi;V?-3kI;E~+ir1P7q+M?c`A3$iW%BKE>b5N3laW1o zL&7GkP>cV$8i!gzGq?-2a>TxP9irX#9U+(;SRO_mkJL66r9sg{>^sJ!TyxazMB1<r zhkestN9h&If?=XGEZmiaeRz7PTHda5kmTHZS@b5y4l7UIOR)ad;&#%|YyAh?it$Ku zP}HE3dEs@I;&4Z~t8R*S7>Y+sDLHlu3bdfBeMhAeDRpSehl-oYwKyyURT+Y!gk!-z zD0<2euRG-*c1gFAa$8dvs&-5J+)0OuhB><7$-yDFeP}ftOoL!zs&vdQFE$6;H`<y@ zhbzy9JL)PD4p}R6t5^2MKeFwZfEQ7gwP+4#w@N5W!;{G`P~Br_O6ZOa*X@b1J!0H% zG4!Tgz{*&}UNLNm<*C&Pl}>MJ2I5BIvm&9A8dP=V<%onzcKUd65yr<&sARjd(wkcC zDqs3O{O$5Cr8h&+9YwKxA#L`H-i0GWDQ2wbk{-?w7w)9kRPWFUSdEL=csnV2=bsU! zWl>?&3io<CNF~t_G1tEVjR>u(@?;3>Ay9FWGAE^u6fr~a4nkEQ6Rl|@Mei__EyRHb zmrm(qs+8Z?o4Vhdy3OgGu^9!!lb6)p^r#V!>g;vn!IJf)9mAZ)xvY2sp5EF^|I-BT zh$-Hsyt&KUI3!F^tMSasid_!TdmlD8AEWX)%2VoY{|Du@FQpl#_^imc+w2<`;}W|Q ze3witXE$TfT3z?!mMFy6{DR~y^oCx|_awojP(us1Ee%PkCJD|GYG`|NOJkC#hi_>_ z(wiia!kX12wIu0jl4u@Kvz(+5lIUd|Ht(&OO;Q_*n@JMwht<%lKU?5mq2?ZvB1xhb zbhd<(L@zFhN%tMIFFgV4TDeOv-(+99A5mgCy;X>m#bgTwT|^(EbstJ-hg4%DU9=*q zp;xoEG$n~{!CPpQsriK@I1uG0sRc>&!q^tlT2oC@E0VU8L=%r1x_ye}ciP0HG~~*~ zay8h3Drw}X{4w0ws2VkV$i8uKh<pjrN+RwqNOY7h6z1bSA$m{j!7R)Oi>Ep^TBy!z zC!vuZqg91{(Z&CVyZ4Tds%YECci9jU2rMOZgir+$gb*MxAiK$KvYSqi^pFGyH6|Mf zkCZ?NBrZ`vuplV5M?q9Ts`OsPP*jQ_hypPnphy++z3!PgXLd|{eV_MzfB*dE^U3bL z_qne7o|!W<XX*)Z0n*(}UwdJG7WEB-#r>v|G3O*Mo7YE|qD|U)!3V&HnSQpy{IS>s zZ8IG#@w0AP2=lhK2W@Q+kP9#Puby{jS`+snJh<!U7T0n4=N21X=1zCe(zq(4sVm6Z zQR3a{j?Hb~0fu?jLZp(~Eb8&(KJYisx=odYm(JV=was}y;WuX2QHORp+wOF<qsr#U zz3`_a_nwb=Zd=6AY2M!Jfiw3PbfI=R+=p~jta*Eww`1qM3TR8ruNZ-J+&x{8H4IU} z;?7HG9UGbF#FBYlhQmFlcqyk4ue@wz3fXOoDl2_=M>A|N7p_I|v=>x%7DnO0N_9G) z>PWFS)VU9^!n6<q#od~_X&IGn^Q@WB;MWKERmq&^!Y|~+#*I{@(CF9;um=hgdBtC$ z%#ioq0FY&?`y}C<?yvXfkR=o~rY~4UmRKX<E}}Wnr$LBy$FoQ8aC-DM$ldA9p1nSk zd<wGm6u$t=XiM+_M(4ttG0{kH@(t9J;soLP6n?O{hs-CB=2`opu(}J#Ax1yef*D*Y z&AnIAJf{Izn8J58%DwOHs!MUDA+P%+V$6IL-$xQjZC!2jRR0JyMy2MwG*~a_I}ACU zSBlwxsGYR$!)-QiPpDAZzqQ*wtat;oSP61CXY8d?Q2Zf&vwU~2x`0?Y@=%_d!cM1y z_QLev-8*rIYofbmGu^bh_t|jg&7XUtDC9jtn*)2X?nid_<+#G2buea#HT{8>*JgG1 zpfQgjr18WSG>UY%XZzr{`>@+T-|DW$5@WjO%-x3t)6m8l7pw(6usnpB!fVDXJlUpR zg<(t--o(7$mSS%f;aEqkdp<>wB{T=lG2%DRngjtwH?{)p&l!y$R(H)pugccY8T1q| z&*@Ls-81OvU_;q=FQ9nPGXV>h`8-oUfCkG5=DfCyZuhbp?QG*K6{g~R?P^u+Y8#KM zw2P8)Z}^bwzL*k?<s}KT#?nZ*20I{N6!k4kE)Py)MrQR*Kv=cS-9$-8`I!R^(rfpo z>EM5n1(DL+adgF9z@CHdBCFeODDawJydNx<V{v6nbrYs4kf~=pO*O+0^tMovMAo_e z^4+^=g`#9i?gKA#o{`XQyPq}0?la8?l9y+4OZro-JBKWH#~%2S>e-C@h8$Ml%`rO( z34PmRR}nQlr#EG`M#5MxfUQ#@(@W~WK>iXKKv&3||0;xnzB^F*%<J*A#naL+kGNE7 zou;p}2ICl&-sD}P9dahmok1YA*<tP2PV?Llm_$2PdI(bjFXcX{Z=TbhG=Ev4vb!UL zPyzQxCgO$|+}>7WWUxB|X^pg43*v1ycPqPTWCvS8D*6hkN6=5$Xbp}ZV$NHGm=t%# z2X!XO(v6YbFmfU*?g&48*=(lqUc#6)XZjEWw>WO2Id2qMx{jwddMAmwS1X_|IteW_ zZw@re#WZVccklIR5_nUT0=CW6ip&+SLE9o^%D3E&)E*hkdGpA4?({^It+vpRP1H9- zG3|CO&t`Ri{@OO0MB9i3v4Yq=C5`l^kq`a!rjcfn5eKAk5Nu3p?FvLuj>8m11kyC5 zy2ErD1Fr*Ezhp&&4ZOZ8@EmyUGgUxOIHH2hG{Os+hKH%JL`nQ#SR3z0oju*!|G<)w z$BPwEv|q&`c!ZUgeaE1u+dy}mZcANcw*GtE#^OO(3NMfMCV2nTY#%Ir{%?|~XT1+% z@ArRVsX8qAvwWEHH|c&C#rA)i?o?Lf+y7t0bUe~L!b`VArR9H6Nc0>;al^fz`>6bT z{V6LG?a7H+6!ePZ2BMf&Vr(V`D{g~Lr0#xR;?Y{*?ZBf|^#6)!_JPgUU~a&i9|0=s zk%ShwP?gPvotdKV1+8nyMqS-=Kr$EB$2Dg`gBYx3Q(K$63rhkRak=xeL5*_z?{pUQ z4q&4-_lz8<XfLU6l-q9ydh{jj+%wXlLko}g#6Vp^vtuV(Z&MLxp{u7EirMMoEQoIH zEU3wb-tSS2;V`CP9u5ASZp_pb*o*Mp8sDc_=N~-;43jID9-xQxVK|^i#jH_aV!{JW zF=kNqc@?k01xhV;m0WQ05hcdP=GhkDobIrz=<wDf)08ay#yHS^Dz;!gc`cbtgFY8J zPciO&Y(P}nzg|fSDTgY`fRcDpM!D@rfHZn{!c0B}iuEuGfVz`=FjF_~blf<^$B0&r zE(Vk|M1$Yypbd``N-32GdVUn-Q?pDON5LvS6dqheBMmmjoKN}aMycqu!=1H*2BO6a zZc)#gKM%-VN2SA89aAH0pd9Ot9OZQPr>>yQoqrWRO8a-9heTGm6CGXF-eMLe7|n4t z^Y)0EHg}v4#m!v@+ZS5XgfiV_1}mwx@m<8D#Bbv=`l{&ey9fQv+&$UK8tjO9xcGk? zYU!s(=~!qj3f0W)t5&V*HH7g0*RPuY{rogm@b&dIdEvviBL2K9k>nA4{y(@k|F?Jg ze`Re4*hf*ly$s3t<jeSDAf3gZ$&i6hnmaMEBT4*f3|cuZ^?`JQT^$JNCX=4T)01C) z2GT>O`x#OfNZ3|}E)AbW&4tvC=@#n}wIeH;?i3`x8Q>XoG`VgFq)*w^em<J+b4c9V z21o;O)nxb;QWeC<WLSVPNC;zm3W>+Sh_M=%o`uBY@&Y72={!xBw(HUnUGl|1m*eW_ zk_8gCm#s^yA#uysbliPi>VioDZY5lo(jjpx%OP>@1^w!EU22aR8O{yWr4&e<n+u6g z*M0(t=hb_dC*pZ<5z+>h8$Q+X{&*$@K|05BEf~^yCUt}K1CuO}E-=Xk=^~RHkbY!R z45Uj;N`UkellnmVnMsL|X#UM)7zF88CJlphg-I!pt}<y9B-$)uGK_`v3zO0zl`zQ# z=^B%=Azf$E6i5%4lmn>+yVJ8U^L2~q@*(}kq`8oOXVN@Kx0$pM(jQEE1JWHPErE2G zNy{MJW6}qZ?lb9QNG+L<B1nHS-APD~m~;x#V<vqMsgy|<AhlwQpLFS}E?v{5o4Ryc zm+tA(pSr}(7&CibG?&RFA4o<f`RP)1UGmqZdb-pIQU%5cfMjA)3rJo}Y7MC(lb(h| zQwSzQ2S}Be6a>kKNx_hK+PXpVWjYI_%1p9BYQ`i7B-);AGQ>b?&ZGoLRhiTWQZ*(e zLNYUH5G2~5Z88jlMB7SDh7?G&eaK`O1*sO3#zOLEQaYsCOmac0!=!9TG)6EPra)@S zq#Q_%m^2I06HLm7)R;+gAvIyrJV^DJv=9=%=WjrwUY*IX1X2SgErZmMNgqH8VA98s zxHrC{fdw;kl*BQy04JT2`mNJ(Y|TL%#`c7tzDljO!~OC+`r^~PT!l_X<&A(DimRhI zu@g#m%v}~_COQgo6VWd23m=3H*qJ_#f)~*{noX0KIJZN+8N0p!i;I7|Y-<muW!sp7 z%we`*EbW(Bw#AhW_zT9LwqnZ;G5u#Nw%Ed4kUI>~rTw2+G{~i~Ii1QX$ff=iX(>S$ zgq#lfCge^#^mA>w_wXAlvus@*i?ePY<O(hOVC|GGA?gP@+8_&#BD1^<be@N{DSNTQ z@H9c<#g29J1><A5$`^+(>e3BedZbG>@VYZ@Z(aIN7m=wP;4WYTjJ{OZ0fhi31~FGo zN3a60U+T*M_;k99*`23DWLS~$a_=l@?kLCx88>QF_5Btql(@y=I1z?V*bA@cDCk5v zVWFJBxWL60Q*oxRJ&=4mowjJ&(}%6@`|`rIKimfh%w^O1DOwn@^NsJ_?nk?}4`PcN zE0b<KmVsouwx7gGHp<%l7<b3b%SfAd2kVy+-fUF^`<<{SVoQr6T)_TUD^}XD&2}p0 zDEL+ieA^5D#XHTkD2W1IkAqB8v45??)bngAx|p_dIo%Z;m~byWfSLB{Syy7PF3Iag zDO(5u^#pBQI{;TPg)Q-kT}w6^v-HQb+CTfPrTWFD$`W6vyQZV<F-PekS`JHK*_3;) z<D`|2H?V|13q2Q_O`1E4zMZBcr5CMi+HJpmKZeVwx!B4s#uJ!q%Bp_X{xycFm`zT@ zXJMkZ!`%<npC4+0j19R*V+y7P*b1h#X0F^ggE$RyV$*_c`OndIIF>YQ*r(jYAmT}n zZE$p3a1Mv|Y-*9XLh(Z+u6RbmZC-D`k?&o68IuH7b_8g@{R%5X0PeTnWg=$v?bNy( z_S>n!<g>8YDs9fgDr%|Qexm@x8GC6#gpb>9E{O1R+nZo>U-1HF6L$(c-KK|gb6#bQ z?q8hxkKl7aFkkhGgFV3CiM+)jL_StS-kS4P0bz3w{=uGi)-{;s$@K+9cK=Hc|JOyJ zOu4(rhGfOFVHPH{z8s<2`!CCrr?HJxh=s8b7^4z}a^AKGg-VpC8njc>KkFl_`-kFq z6c8<4?o$|s=Y0na_LV%s*MD=c;o}*M>_-LmX~L(Mez77+-uSCT>z91j<nxgBvBoVG z(q1OfuFxg;^D=yZPg?r)V(+ZrU2AGKIpZ88&Zq*+euis^&nHoWOorx=S~JNCX$QMH z9G`2LG*Oq{fpmoF$STKCH-t;!x|FU<OLgfaBpw%fGX;-JQ<N62YX^zz214TT%Yt-> zd7BIAX|PNN+WOj#Nedx$U=nRIZOf!3ke*`FGDvNh^Z}&yOrrNfJj0}wkUBDny>ZNd zmj$>olQYuNUG0*`C8cNLVOC&m?I^Hzz#pb$to3$lt@7y^4-AM?CYD95_1wqJ8~hSV zdk5Iu16yMWD+cS}DB@ub_rMNOZm+{MP1FvJ5uKTA8SCB^({_ipa*oZUVdnLIhPKDD zDq-g*j;dV8B4~AN>#>I(&e)}GjIm-yiZ%J-sif^#<=d6q&vrUnx*tatvFCV3DT~*O zVlycAEY<6D7SYQt?T6?M@rWL_a17C-*Iq=g6_1`?k;;#spNQYiPG?IhS>2~m`P!83 z=dLs6TKD6*kG=v{w%C>wc6OL{{2>L{>SQf=uH+I<0>`*#&O_$AX9nYw^4UGp0*SKQ z>9$a|qv5qs*4M*kt^YOw&s;{p5lyRm9*sQ;dg5`FL!;Zay9%t0obDVNBanUArAM;3 zw>I2LYiLo1zs+QA1R=8u?Kh*F>y-c;+XRGJB4<5pj<LD1fnul4{d^<rC$WcOzVM9I z9KOSDI&H<t*E;BI1mN)R2LCX7-tnwDr8}U_xWS${co<>98GVc01=zMDMC`;tr^qPQ za%d|P%|q!sv9XVWvdZSpp}fL0BJ~-qrM-NRrNO%~yfy4bio6VZ>2$b#9qt0wvvl_k zU~L%ddjwF|gB7HDAn|%le%(1_-&r~godl0x=%x&65kNcNW85`Ruq}aiEP<G>KZWGR z;Am{<adR#mQNjj~$GP{KndcnG4{V{W0L3>SKg#mQ>VG?ndEq`M_74F(YYnc)6r{9h zZQX*W%yb+9dDD9LAvUhW;4p6{^|k^$58F<`;r_zz;AnfBsg$xqHteu%aL)alO!T96 z=3bZ{X5Qu(JnLX~3v1}%sZH#m2d0~|yq-NY-PdmZ{4ni1Fj+PjSu{>$Y@%LQKn!-Z zb+F7TjV-8SH`81uMa#YO?kUTxJ60^vv7RbDu30$_#=bC;^AMR5{9zX}@&*}1n}p~D zsW>->Ew3@|5OnwhaYzQ+y7O%<vaRkrmi)CX@<Fq@uUZR-Ad7#D34LJB%}1^yO_jQ} zbD<wo+O2I?lWy&th0~4Zg|ir*cIY9dIF$6KdDZ|z=k#drdWsIr@Y_nM2*57TP;^<I z#r5u`*mpP0JAY7%>=M(?%hh8;|IB=mNLg9V(*5*noIHOb${T9Cjm5((4=_bi-l7E) zdF$_!^T2mf;EabyjvVou+RQrRF%#;C7y7NY6$V97e=_g-G_TUHN-7pMddqZ{JIh!R zTR6cO8+y&0OK+y2q&{u`_y=<yWg|aw#*Pv>-6vU+u)59)D|;b>GxV!0+WObU8G0nM zeNIU8tTs4Ii^4*gj^6iuMgdh)aBP@SOxUCq8+yY$>q*p$?pM*yPxD%3EUDYQ9u^L! z`kL3{uB<ke_?oUVF%T!|aNGh%y^#)IJ8cP|Va6;x+Nm2i>!3OBJid{@c-hC`Szs>w z3|9(+)|>8#OqtR+_aTn%y$<!pkt0ToxLe{rv-4pE_wJono0v|OREh-HZn{(YRo?aK zn<w|wn_3S3)&1Mf$Jk{_;F}`5E3q6csmBo3yT97pzgYpo{sf?~Q2~*zh)BD-=k7IT zZzQRi`vkV4vV1Y!bnm-+DrXBTPFQ%}S5j{q)xE!J>1eBaNsAmr8!ZHF=oTl82JfB; z9jyp>vA0_B(w~Um{8W%zm)=MD<C9iYH{`ep_o_Y~O?11^oa31w4jZ~3uo%W*DA@ro z3~+_hnfSIiw%9zYC63E8Je`%t^WYTSc5#GC$JfGHdR9w4cWTo3l9HnDfuzADk16$> zv^ej)P`!%P%Uv0JkE%p@h3=f_&4vZL8}fD@k;e=GtJnP0&nn6nk0I5p7R#WaMvxC< zFmTeI>9Ov9|1g+A=d*`0lHr|C2TsnARc*)+Q@ErB`E|Mn20PtjEKc_&c3W`PcX!!7 z>W*u<_qtA6|98V4CyoWNGe6sL_e*icCm6K?rjObRBl(U&)<@68MH@!4*j69g+Kv%b zJ13oX$4%hxy6ImVt1+x)<F&599zeH`dcoa6#k*gw;p?BXfR7{pX*`F6j_8jwPq|mI z&x`6>?p4&T51CNGJd1k0xmTOID(Bv-<;pK!3wY^%tcCf9PHk;2{188}(K&z;o?zWr z5n!a8b}LcJAr3>4#eTf=5YtKAKdVI!zJy2vHWGORuw^N)4-C@G2M!0)R7kiNzOpg0 zck|}DAlwfUJ$EtAFTMkCVWhFZ-n#fIh6dU&k{0ex;dikgu4C9x5no`G6TJS5U^IGF zDEG3d5iIecLPtn^2+$J}?_v*z#Jkwk2J>z_J(hWAdoQFONV3WB6(kFjZbRZ-`_`!H z{Fq)JNZj5qNZj56NZbm|^l`=@NC%<!GPoeo(7<HK#%CClrr^`cq#S%c$D~>Kv@uCE zBKl06{*0Y*Z5g7Z)<(Kj4tE+a;?`{_1$r4r(_=4;(93w%R93$2oqj?Q52hmi6wc|( zB5p10hrSNVc#3$$Vv&?y=7chy73ti+|0Ybw@Do>f1H|9d^x<N<1RU%RqlpbMS0ZaV zi?KM?Nj06)Bx^d}TO(>ad(lyu>h8W*=(v`9zw4yW9mxkVgqTas9J&_^3+dZw`lj?p zD~_e-?yqhO%?h4cfLhQ&)B>7vpjtq+0drVX3rKXDexO=Fbwktw5?RrA7a{)Ux%4(8 zG!2QY%vXUlsvz1cx3pyz*7uWrQ1**UP?S*{a!Z?KQANmy0c@ahp`*KpE+4^V%!zcc z(i!UHBGLV@ZmbSmfjyYd5urxVtU|d1X_E{_lhG)D{TEV&X0XodLjojTE@wgFC7FiK zypDVUiI?f^ka(HC0*Tj=`g-Yp22uzsp<N+Sr^{rR4T)Q(b(916^I~fkpD>9Uk!}p< zh0jnX(R@7h=1pv#y*rawZ<6&TF(9zuxSEgMeIdsE3*KggZHW~p`r*NryT`)ceML_w zyt$0M_}~iM&`fjdm_oXhkkKoo`ZJ0qFFR;YCY$?_bLSPWSkohGZVyA&SZx*~cY3`F zQ_SeJ3VQLMuz|I6hr56En8FwEzOF-=b?LPsr8^x3ID=o+^#mPWt=FwV)=%shqu>=p z)+^o#>PDmn^Ls2Rr27;<;lpSyTn33*b>odDhM3Ub%(=6nLdVeCSr~_Daaa$axfb87 zig>t|oFivL$l3F`_d>IL_ea)4QVk^oyESkn%%ga<@`zV}D*{Xx@~WyUfJhBNa#ck% zzX6eob4g3hLL&$i&5~N0P)T4YACPO=cnO$ms>9vHnOw<<w-S^d#x0mM0CR~sprN{8 zo4V8OixZkO8_dt@;w4<^*g+EMlhqC{8KA@a;w4<zrr@*B%Va32?JV?fjOK+pH`%Om zVMm+~9mgA1x>sZw&hMFLCa}7Kn@2qycHFKt@9XcS(F?r@OOyj_>1)j5OYbxwtGsu` zY!f#duNZK(!&?I~7v+RD&zeVjwF$;L(zpy7$A;jCId2>)IjZ0Yd^vDZKC2nMErHMB z;sK^l<5pQ^wB|?p6o)Z56T3omVhl~w9X0ThjsUz(iYP_J^>GC|?R+TT*t>lGizDlH zV0e9WLE6LW57kz#+oDTFy7VzHfvo;)g|vz>zQyNPOrllA%}g=@!>z<Z;vK=sy7U&L zUtkkcXps06+BHa>@MkjI)TP^yf|%|eK4~|R$?zvWyD$kq3|*Oo8jKrukl*6m$@Pp= z=u~X(p4KQ980+B`WrbE&u|xrO7Wh)pN3r##Vq4YKo(gaqD!~3!fUP*eNF~^bjxbrF z-$<778;<qgl-WG@{u+}C9x=g@S&E4TG1-+_53jPqBoq$P=Hg9g4Ri4(v^qKW8)RK# zb=-=170o%T;GPQUjgpE9j49q5LlJ}BF>V~TM1t`SqaIpKMPDtzb)6D=l@i*7654>O zx6l4CmZsgg_Znn1!VgL?UR%W~>h6swMR*GoS5o7K6&7uIhK-Z?Y*?qWF@>GMGq@i* z=up=!HoA><dp$-YV+}TBJ(c?~YHCZT+m95%#w@)50d?wIt!TS~P(e!f12pBVF74PD z4U1HrP#@VV$!L6mu{V1q8D_QIyGt%M0mK)7UhK`wya@3L0&3Igjd)n<d4QKqx=}su zqiJ`9erL}0!(GIb3128IdumvJ=Ne88e@}5J;Da=eQ9L~eY~tNP)ZQavXJ9(BBdVEp zpjdf>&3}2In5r!uD8}kyCs%*{Kygogpm<IRJ5ZdBoqE)Y0Ia=7tWS#o497yx=!c1A z3@M#6N8;}3hlw5R1uckb49`uTCh@LCw5E=N>Tr;|$AJOQprM0z|AdtDTI_Jopl&Ih zANMNSjXcHrn2}Ao?ux+?$-<r{6lHVnJ1najwQv+Z0SWU*)P_(-S4RoYc`zuer!#bi zD;p&~cju|x`!SOmp&x~AR24$G7rN=oVLDOzBj6>^b~-NRQ$fnaSu&rT;to0YD@|&O ztEIcFp~o{Wm(<RA&>F9bDcxC8CFen#EN?3vV(|wd<0Xf?Q41%Z?xVA8m_PiBhWdgc z82{s7U<~@?68|<B*#TtU;Pry>?@-Q61{wpOV$uOfr<rsF(itXM@G>-HDQ29Eok}TF zG5Thui6;Ayt6@M<r9<ZwdkAUOQhzs>t#FcQ9(vQ}JTpLepc}fiG|xH#)AXV-I+xU~ zn=2SE8f({WDppMJJNE|GgpNXBMVyB6FpL>EDh2FpDOSpMm+mkA1Q3b~&VJHs1qZ`6 zUe&0*aW8=0%G6xk9_CiOT9LhQZ?|~y-tLTp#BEC4LTgbs--*=<t=qd*oLH&Q`cAis zld1~z`}i*Do^$^>*B!h2XbC14*-I8JtQn_?2Mb=ZSb}$H(pw5M{r}D%WgCABqIu?3 zJjnA(F;#(C#-qh`Q43-UFg494^eKf6kX`%@Tx{<3Ac_<<#xHoj@PZd!oClzTS4jDP z`^A-H=}E>bbQI;>_nlbNTIkrGbHCz5UkL9&m{fy1%y<{yX!<eH4Ij_BZb4@4zUP_; zjZ-J#VCxLp$KXiDkz7j$TKlk;CbYJ>-x>xjtBP#>Bf{Z+i#82lgDjRn4!UTKp#s`l zzQ(XqpZLNn7chYFGPW(EHISVcGSM1HEp3f~HT!4^u;49nZQyQp=ARB}YBR4Wv}l-b z+3`{bys#DrrE|75qCFTmoPg}jnKlFx^%HESiRe0Qqi7kju*x@sx)F}tYzNK*<m0-h z##IB$xH-6P!?JEZzDt_B7cvD#O{_rRC+YFieUB+{pb{sM@}Gkx>X+wtX3htr&d}Ry zQE^(cp1FC}%ZxU$`j_;`#x9bZ_=<72!JE&x;j1*EavDmfd+9QKZKSO~wzjSoqu2`l z(SlI+?z#~LFSZzgS%{c|7kw}W3*cn_Y6tC{KRb#3biuYA%$hyXQ84=e#QhP&(#K6m zwiaxq>57tchdYjsS>505n@xF#r})v**Jw`%|7~z1QdxL{4GBgZSX^)d1IOUeK+u|a zu&rPs7Q)8|2|DN6^4X1GTt7#_5G>D3v(S>cM`spGKa@SWm~|9$j=MK5L!=Z<E)+YF zon8hy{l_JG9<F0L8lCZdb**(N5z=~g)#&eI@K32?@b6RE;2-2`@b6VU9aIA?jB4Q) z1QV?DSLmAzK9C}j=_Z5GucE<kxX(@RBCj147!Q3sjfQWUAK^?c5tDkDCPULY-iA6U zW<!lW)eIGbun7=BV^)XE@&3A04-#h*$}@K5`RL7kVB1&4pS;-~!7QYf0>ywc$S0S` z-%!RNyCDJzvE2AS&utrU_Yr>s;&1qm;!pOq*!-Oj9-F3g89~bzx&u7MYASfXkWCtE zYoWY+No8?2R`xPf4)QTn4)kXCjCBJ9?JmCg9pe&t8Y6Qvg<1~mG-IDUH#v@SlS`DF zoI$8p1d_hWv;Bg|O%BuSQc9(N>4DoNn~OPteU@i;l1EA_=_w8HVBw^#NGX>nrBgjp zO6{P*5WqfpN;!^F$|XuEXAr7C{<Kh@?OY|L0Rl=XmHwp%ZkKEh7fAXl&u#%vsoC3L zPVqIEabL}WRoH#a@L;0PBT~yHO6@B$wSD+~)fjY@<5<mPTuLox5X!Tpm1ldANG-np zBim&6ZT#t>oOsiC6fKB=XmO^TlxdT(=W!;R)E?@g9J}u_yT)2RhFWM5YoSG~6==R$ z^#ae$89Ei-bvBnMzdquzqBaNZC<To{S2>PylS`DFoIxm>QPx6vwm(%;tl6a$OaIaX zw@WrlG^09F<$NLR;_E+(GufrNYb}%)=S|GEv8K17=9(%yeA9h~RqEiKK#WL@hHr0J z;q48VD6i=Gjr&{I%TV{Wzrp8ZO@`N4l!qKkdB`PyokghG_|rmp_V;r8m}d0(sTPZk z#vt#Up?cvALeXXbEtF^bFt-heXG|#9Ia>9=?UK#?|6uo+ZkN1kdGU94c@C1z<Nsjy zJ7%~3la&qijr9#xZ&tbBTU2RB#dNP>rVbU@-P#C$^z=Q<?i6|dp3Pp8#9vLv@1HNb zPU$<xZQ|^3bz`Q%_hzLF%w9r;4#c2obh=;C-h5JvKtq0Rk4t3l60_H|p_ifI$rlVh zdw7l4Sahd2mdXQ{$UbKg>S@^20>4iA#wD^}%<T(^W>>{<H2LCo$!5$y*uBB*8f#QC z)cC2Qp@z%LP$R`;sBx1!+ARFhS4}<DT%uV0!DB`3Ngs#^8iTHK9L0xAly=S_R7;PT zm1p~*l48v+rC9ox9=KhyIqDzm8gXyYE3E2msM-tny{O_2Q#vn2F4)!rO=R(V%q2=s zCB|$@siikmAZQG_%5juhE>UVZgHTKGr-kxtSLL>;*OO8at#egoTVttKIiJc8XA$ao zk5rduzZSO-q-Sg>6&$UmfZHXTL;k^Tecdih>G|<@c6ok~%@_W`ZWCtLh@%kRy?C8$ zKn_HpO^^KUaEW5ylE;MZj*EWdya4;;{UVN|eB=_{9nK)sD1oG}@@%(NQmNUcR7(HS z1Gh^yXOTe>%Cp;%r;?3tFvdYI#6QT};2+4xH>WfzzFX)i<`Si_D`!{tHdIHis(K%^ zWr2Pdi1ZYFh|o@Fa*3GTd3va{xhkQw@qVPnqFmxw$|WvQY2z$Hjl-W7%CjG?<d<fb z@=L~nOXQ2&C7UxfqdHRMIC+Yzc^j$)RW?)$tbEhwg7+{YMbU={9rP4)iBcTTW5il2 z`Yjpsi{mIRT%vSy2H72sKP{AJyRWqE@?|m67=LG*GYF-%<Yd1*+q99E_ai-HLb<}x zst0bDY-%mX-`P#l?Gi%Ey}z@|^MY*BY@Qa%i|<Hgm(|-qUT^a>IKDgScZN$8`*EBR z>|+Q<IW(tWY=C;8jSoC~hh20wmx!Io*<MC=l8Rh~(}xH&j^*tHmxwW$F`CxItC7(Z zR;0xs1dT;yfMcl)aEZ!3XAw&4hd~tADc7X^>D)eDM$qi47>*`i+%DPFo^ZtC*Hum) zvupINXz&fHWbnOEDV>*m{*NMwMPZYkVlGjN-8@EA_V@5^Q6GloEhEQKT)0H(<_toO z7fAXl&-Q$7+uzIJf7=_q0KRylu~e&^Pr1oigt|zEMJUhy>)bvNp0S~v;b=-9m&g~l zOE#$|tA+CH(o3%8_)N=>zq8BpgKScdLks2EeV^GivXL%IGVYXClILnPeA9M3UM{&r zsaVdL_0h}4vC#UxYTvANp+=E;N7Zz{VO0`{{0lFtB(l{MZecUCMHW8i7Ch>LHdjFm znxy6oE)ioL&joC2@CqV~I%~pll&@T(lEE2dm%Tv=-xSKTy_wsl%@hBTZL+(CS>+$) z+1@E^bA*;kx_cZ=Y2y;bp2wMNKH+iq%Cozl=b(?5!6(ow-8781U@gGZ!Ztk@xkR46 z;<2gfWvKd7Wz+#avesA>1CFKq<C4G5BGdx>X`wv(Cq!zIKG-+>NA}6~2#-{kXaBU4 zn_9f#O~jVc$a$0&o?5c$`Ukr|@Z2<4G?-^rx#_zDEfy=sIMe|<TA&yF@^Z-~^7b>2 z5$kF5zKO=5s~ksh;S%L5XAr6<{<Kh@?GkRgg}0#vo;7t(Rx<dYzIigq9%s^h;u4K6 zIg{*D-$e`M`M9O$sHa`ZQI1wq!R?aGz<;oNSGP;vwLJMdyF5?GX5>HEeZ=e<pYSz2 z@nfBv{ugQ%Ro_u9z3MQ(4!q^Td4E2^!4hqOHGapqM5!?$5*Ssno-AhQ(HHec+o$zp z;~9^CgzIcB5!;us`N)djZ;e4$Igai(m+1a*2BC&}q^&&LW^Nlu3YuNYGwEM?;C9KT zXX!4_Zf%bgV_gEZ(mx2P7Hbm|nK%9stEZStlqO6RP=3+)M)Z@KdoU7o2A7D@lricz ztz@WWtZ5MQ6=MDaYh*xBX_Ye;R{YWeoulP<j7wyX-V}i+Ak8q{<|7)7L037B@|;VQ z=bS;PmH5*_dA8e0+k5I8JQ;syn={DnD~PKW%Cp^x+XlqbE|emsst0bDY`*>vcIh2h zvPVF+Dg2#Xo)=`3_91Gay!iGIcJW2|jQpUW*;jLz^XWcv`(*n^)J-jvXW!238>@L4 zs%2Cz^4Y=HOWJ7^eD8o2e)qXVITX!f#l}OG7*=D@RgR;$af$9eXAr78{<Kh@?Vj9r zLmxxK6s(|OE~5tC@L3V_OP*{>C1+FH%B4n-IGcR5@aXT9=chmS1Ei;2D1|jOCEPCA z?EDXQ=?!F567Z}=ybXxA0qJ0C1V{@7@<&09Igeui^gOS~4>k?zp}aICGhd$V0G+ha z0<DwsJI5tTQ5t8|_BPb+RpWxWsOpX?>6M2OV-<afuuErhiI@|3x~Ol8bXD#{^GtM) zC6n$m$J5>65~Yzd$^J#y)k1kbvbYZc(P9LputxFVJo3!#lFi@$!S0JZ)gJ9-4)|I~ z(NoJM@-l-nYWo;!yYPoq!P*#K)()(3fmjFVLxhn!n@hx=!`W0nf_T&hYH)l{))`zP zMj>ZV?|V3hde)OEI)h8Zc(qKL+HxZMoUSvtL=1Yb9-bQHBaB0H_!s-6J<q(faETc2 zlwqWJF!t#TE)nBH&S+5C&;YX;4bVqw(5I520rIXvV4Vv@UPvDz?AI-Di7b4=EY$B< z)zBp62}6@UjSNkK8scBt`5WrptaHJ?sOAnnzlD_wpabwHpIQ!&x=E`yJUv_@+pD?l zwp9%E`!vQ#=?Sa})G^e&S^Yw_9e(Lmh5>@G41d&?NV_{c?9y>$ZkJ1BcLTFK@y;g? z`#H|<Pg{I$V4sqA@;kl#^6vR<d#8-qx_4UJ$fsHidp)hf=t@<tFFJJT^n;7nV(;wx zdCKlHJHLH$(4wpkeOI(?aMyd(1&ck$??l0iftQDVI4$Dbm4KVoTxTnVoIJbLHK9_q z%6C?npa0{BKjS+;y7z4HjJ1Q^uecW0EnIW>nH%4q|Kne=b&@M@=&`!d<A^n;iucZ> zjoH4g-=BW9lRA}7{^rh(p}RIDj$7?M)IR>H+{_-Iu1>MmOnK|Q0|Ra!xD!8Uc}#`p z>umP#c<NYUuT`}t4@|4|Ud5fgLr)F+ce~lcJ3N2%K;q&vI54>+s>+rtyI$B{7?l6k zNJHNk*E9Wl-!Q&hP~F~XRY`c~C2u|Qn>8yjrpUIZS?G+dW1COh-g4NY0r#@|yf|s_ z;L@R;fBPbF<1;&xe!af&OZU%>4kiU{9J8+SXY;EpZk|`-eJawpup}(BR+9<6CTG6) zM9hWI@a!)?crib)=HixqJ*T;g?~T3j^|!SXuQZH)&}Qt2rMm-%_Nuxk@yS_@|Cs&m zq4;{cS{65c{mq<3&sE4he|zNTmz#doeeuGpGly=k+h)exxl6BX3%kAY!JJJGm%o1Y z@;7g%&e}YrPU_&F@B9(*;7a0)*HUL(%I|*iomQ4lI@dq2_{Tf9ii_9QnBQXixri0R zIyWrscY51Ttr|px2G_V5yRQ1J(NDjzYFzHk&oiE`8=8Az>EQ3rzgKxwo!b|eEnE2c ziO!DT#b361d(ZhwKfm!_e%AT#H&mN7(rfas&#m|(pz4rD{niDqZ8!SovE2tWJlCiB zcZ)x~67<W1>Pa)l`2Id_`MtYIy$%exF#7r46Q*?hVe!Vz+aDYcAGquB@ZsC*R{QFY z=PFm8e16L_mCj~=({9Sh2;V97oxNuC`TEK8^^Z<!8})Ie+N;-%sM6*1_3y5>T6x^% zoLOO~*H7Q<ZS?2px6Tb-wCJr0kA8Z2`ieh4ny~cLl{q!Nj%Oz{`DNUq`vsjJIo8yE z`oN(D-G7RH|4<DthrLbUy6n*jdtM6a{M+cZIXzCaf9pb>yCIwRHCul!VEf&fFVu+d zz5ejEYqwTSbA_Ec*#BCO`Ny-)9t~*Ke!#QuKdyD{`8xr@h6O<hZzc?A-{s%FOW(U1 zS>@Ur4LkQ5So+$@UmCvn%KMW#8>gmr?DuF*!`EWwZhUw0!*(@#TDw>MV1x1P^~uSZ z3yQNfdwnY&c>Vp%)x)CC?ddmV`{`=d4>LY|a;tG)gXzb9iP|`0&?J-Bx1*klZL>1_ z=Cv;h&L6t{edez1%f88Jbzne?OW!39cz7($9kuP`*L!Q8Zu{euH=molWt*efz3=;X ztk*W@OKa0!hnf{UZuQi!$B!(U|8u+1Z+`RW$ed?-ZN6?_e`4#Eujf4V;V-qTKbf@l z-0{pwS(`pTx2SJLt1Y-%_4eDJ$S(MxLg$MgWPcy{dhDET-Xq?ezhUF@CpR}MG)-;t z==)9fr>YLBRq3J6E&tlbe#riL$;>WizMJ*_=vOS$))-5FJMsJrO&4r_eB$dbQ<r@E zUdn;~pI`6rLaTLGazFm?r~5m5HxJ&@_HjwOp~G%fU$A4xk*%kPo@||Wx7jCSL;rm| zu2-i4`A6CXE;Cm6ed)ZSnXgsq)Ta3J<TlGMF6j3t<K5<a|9$MmDYv)QSv{-b*ctIZ zjIa;izi?UY`lD)`46!ur{Cc-3GfQuOKc@f1tfzNR-~3(m<Hfs=esgr<^W9dgDlMq~ zMy<-<ZF{oakKv|oUkLr|MxSxM-rgrVFZz9XN`T$RuiK7WgI>AXqDJRBiJy<D)UA6$ z)0KzQmfx6Xi>;PbbU*6JeG|ryPMfl2eWBOvlbw4lyYgPW*@qsq`sKGrZ`kg)f3`)x z71z3LtGmbcTh-txd9khLtPNiqy7Bi9eQ(DHjJvRY#Sdeb-#^;r(_w9DcYS!WK|<Wj z7oN%L{J^xle&JiL^TT$2GUgZ8t#fTG4+<LoSj}hU*H_#3?SHA=MR%V;Z>(vX@>bd( ziNEB0TqAF7>xYw{*z{WbpG#LhN}PD~;r<(o#_#wb{ndqA3%<9feck1qk@Fhu?ecX< z;F;dxb%M_x9#rzfxOcLj{`Ox#yqsKX&zR)S&BtE-;|=%noe#$M-LT_KkMu!pes3Mv zXWr3oX5IVR`HW@5>2BTrJXZYh)4LZc9Ie%7@R=^1*1Eg=8ZvU(gg16fexlwtt`F<I zw=nvp0fn#a@R@p`%ESGQoBSB^<L3|i{G3zwnbkYfuKjqmS!wH=zpk@%`g4>|<7R_0 z8f1NP{7Q?IuGivv9_jJYmq*uqP`}p1VV19tKD_za<?esD9Ch~Y9#HbirOVSdzMpvL z;#ZGD8*SP8#^aKTyG}HF!}#)+#9zkGcNrgcd;PLu##f)(Ox{&`r7iUN_0Lz9E*zQN z)lv1mHhW4}t-Rj-(aM@xw;MM-^uZT}2YgO_GVt8Z8cUZ&_PF(|E9Klv-@1N(>b<Wo zz4GX0N|o&ew}<!s;Yg1ct8ThE>Y>l>0c+b;EPd_5yA!Kah}$~PdZ4Ift!m3(S^89s zx284PT<h|_<+(eaj`8VJY2o9f+Qye^_4leY>gCa)eqWb#Hy?TZ`}QUGmwmOYTdk-k z{Dwu(4LGs5d3r6c#D*JR>9%C<cO_9zY_4!{mSyf26K7r;+-~k=ldI|KbGe6BWZl{K z@84#=8Qgi(ms^|MzWt8>xR(|Vy!rP18(qJ>x8|oQ&ip4HEgSdx&%p_Y=3d_XU9%4w zo@_pOLx+g@C3B+M_3sxvp<qbLpx>^J>AT^~Q+?0$nscVXgYFv*?LPZ#`J3JLZwMK6 zHutU3w+z3g&)NU4j|UG)Uv%+<7N7Kbu(fUY>Jeuf<gC9m@?Y)xU0k+y<#@-_u7m@J zq9VIp`=$M7#bKrcJvt`TOqj5u__tNI?$euHp84ylsFT0%P8~h+=%AJ7g7&^T`u!Vc zdcN?rvEkEC{xE#$iy3K;uf#nw{E;PO_UB_3<ZWL3?Vv7xzSUkk*z(D<7klJX{bkgf z3tY$AFK=3N|GvmdZAWVH)9PE5ri<T<`?BJeJE?DZH9dZ`L%+I@hSlA){k4z3I{sCo zqPv&0`q!+q<yiN?$=BoOwD@uJbCnI3+*QUIA`GtKM;q39{l|Z=FrD7Crexc<i@X1t ze?4(|r?7$7=P%BBxO8Db;I1t{eAK(;-PQ?P+wNSN)7!sh@8@2baIuYXX3=kt-d*rX z%;CmY-f2{0M*F+J{l4YR8qZW6ReJu@@BXMhtma1_Z96h`+wyg1KCGC%Xz#m2+U4Jg zJGeN#{`&!w>K6>zy<)6s{etfvFX>dd_uk9z8$a&Q+_>BQ-iV{t{X=%|Op4mLJMg)V zuTJTDI_jg6#(iVvcI>hH(9r&ex>*-wCD!tf@au57<sUN~)nh;TsBh@_<DZ&bzO$a& z^m%*j{<_jmjGs6zGWl5ax{!x)k6xX${JAv$r(X&io%lk9>vxuXUbj_9=Hr}qZuD^$ zw`%{u8q)XUuL53g-oyLMYatmGH%)o%y(v$1zx>TLuih=s*_LjrmblyR)^qQD?_WBz z%B&Tuntpq6Y262-AFW-vp~<<TZ}!F()_pBv&EXf@H@W}GcdxBq6r0#TsB0bf!Lyw$ zL&9$U@V?bCZ1$Fj_a9Ds=Z9|NUz&d>xc*Oz{&jZ6))lqK&G@7K#y4Y^borrPwWUeJ zUOJ)0fBLBC3tK+=@WYSx7Hp|~D!s#vpRdo{+v3$3`%+9-cU-Q$WL@8+U-Im4#dHYz zB4I<&-JoZ~>Q>#-Y|&DUZ=1Jmhi%K2hn;_Fa%9X5!?~BjmQKqav-bYV-#b5bYm?bA zZbz-ymd}kF{_%m-xjox|`&^~ZJ3bB`Jm8VWU;k@$-%&l!wrQ6?@@DJb-~L0hr~USx z+bU#h_qecZzs)Nf7XER%SN6M$TMYcUhSgXSetF&-LDgUX=*8WCL@rozuT#&^4_1B> zc)V+rWA&=`=n%7DNuDq+y?t6r-z+cuKXvLgTSlZNx!QN=Fwbbr5t@k;#<m}qVnC<b zz%}htGE$RW6I00qX-&pwNK``ml+@u_BU|()C3VeB#<j|I`q4fkCCQb<)ijJY8T~K} zpAD(Xh22NFo<7laXMtf97F{tJeZ}>p-zps7-bkTMXcDG^!lE@Y6TPUEg-H(<{wP`6 z$e%DOi{>q*uh$nhTq9XdZpuIyl|^$eCZjeunbR(Qmt>^~7GYEtjaW=Zv$$?8dU}au zWeY7~R2JofWUX1}KS{C{3l?Ei7UhG<SX*4*)N;@Y$)YtC3WQNvRiKgS+SjPhS;_jD zC<ug6Su`hLq76DM41Felxn$iJTEeI-nv;>Ng?FYzNmex~fCz+9S=FGCclqm!gJw!r zbHO5v%A!1%tZoZdKPy>11dA{#i{@2KMv4Q4e^t!J<~Z%14-_oIsH_^$n2eN56mEX= z)+xz)QLqT3vZ!3k82ZnS%aN=%1&c5$s}^HvC90^#cUXqgVyNv&C5+0VSt1ktdkq%G zEn51nWYK{o3WQNvRF-5p40`QmtYp!7PYQ%lS@a4ulacNSg(iiG+a#-&h$>-JR$XXh z&Y$WN|EXk&rGEoqR2I#7$rvvCcJegI5*yvv+@H##nO(F|_@ppp^`OU+HBrQnFe;1Y z-enB4-mEfNvK9#zVN_N_h4ppo#UDu4I>920%Az?DdB4tev&@mKZv=}lDvQ=vWjWlp zV#9NiMf(RS5JqJ+hDNrB1$~}Plq}j`Mu9LYiw<E*)>Fn0Pe@j4!6J;x3Q$;ew(g0L zEZU1iApn0Wt0^=xUE{y4f(BP4$1p^&2&1x^F&4FW6n0E&d0Vok2o_;fR&!|NT~2OS z&7;h}Ay|Y_SuGfg+GGkhd_M8Wd3L%BTEeKTme9y@SlZqf)mlpzttC?+jLK>Sjci4; zdbsvU)^CDE7?t%TV|n3|!i*qaR2|J%C7~va%4!Xb$*8f4S{?2sSx*QxVN_Ndg*Cr! zQM6>yst^UjsH~@;kxwFD!;wLf<rFN!sI0b(rL{II?)Q8oS+qVtfiNoTX=r55@67L; zAz9M|i!dsy9b;*^<{tiFykspEEW)U)_KZ~tpA^=Abn6evqFGW3gi%?~KqGVhQ9#~s z$vPxhgi%=?7)vYj8Ska$NY(|xB8<xF$XN7*qOkMr6CX;}pMpggl@$n$$w*H_3W?FP zP*k<NX<CtM38S()K_gr2dhbW$0iv<&f<+jW6~tIt4EvrR@S0?e6fDB1tj>(3m5u0W z)gmQpu3!;HWp!aJ?FqYXym_Z&eJWUlQCVFXOUsS7r_D`~tgi)&Fe)opVf_&Q`c%pK zU9bqFvO*Y3i=p|4xA7>@^02NqE+P;{WuXIvoEMi3#nIC@NmhtZ6Gml)Dy&!c?*Ck} zdI}a{R8}{}(#ql4gnlh0D^0Knqq4d)R!w|Th}b;pOUcR;EW)TPG_^<<^?4{f{bAND z$@)aF2&1xkKqFhxqK}I_SjPp6Fe=N!SXw`-LG9oh($^KiB8<wiDy%W*X2nRBQ8WyM zQCVS(rQO$84?pl|HyR2SVN_N)V~NLrVPCa%>!mOH9}yG?qq1z!$kyh&ig=g<!Gle( z2&1y>&`8#6K?mwf)&RjGjLM2&EG>p}dVJ<lqS6J6Fe)oj@pWNB4WsmxCs>40Sq_Eu z?vTnJPrbJUi!dt7$yizp({9X12TjY3)q+JBl@+D1TAzOj6pgh{un42F@MuIHipz#> z>&!DG>x@tnMrEM@fmIcs6nu{UYl39`E?9(7S?J1urIp@Mt36v$98_b0Fe)pKu|#8J zur@q7NBVkNun5D`N-s`NfJnK=bFe2gMMA?d!=SmTXwspfvpmFrcUNk*tHrqS_`&u8 znT*FEQ4ETjymE!lRnWB=U{Q!S1c2$uN`Tg6oQ*Q#1*!QyU&I+dSa?~m63Vc8;=0MW zm_G5>CwIeg$$Cq$dX{1JVyxkURkQn>(<E!TVD&1)>djaK@kycT;O|;U7W=Qa(Dp9F z>I1FGNaH+;;g3I0xGGsi!dIU%tiFszYqOMx4<E#)N!C@t>RX1@kFn^?7d328^r+ZC zvK|UnzcQ@;j76uq0wAScK7*zNj#=>c<=_3wuo7{>WTZ1tbiax(-rONsZ3HW^4C{Hu z8iG&qa5=pZS`v~d*aYkOGOPi(YBJL4Bf{=!7=1vp`U=*7GAz1NCSwvliS<QY$6?7D zC0GN?u+W7C>jhAV753wY+a>Eo!5UPCHJGtx;geX$8eT^dNusb&um+c5Q9hWAY51fD z;QQ_So{_9i1#3td)=<Wx(nO(sSlb1XwMDRomSGJ8)?_?|PbyLO9)A5V$vP}p!^*Id z7>oL!6b^;GjSiiW|1g{ttfVq5R<n#x0!P^Dg&AlLHCBmW4KKq=2G(SpiBA+@L&HqJ zDw1Uq9h2lTtQ5xjgg)`N|6L!988u(^1S_QsE0wYG@JU!_)c0E@tG!^QmSK%xtP=Xf z-w305jbzycYeX5=NXFWXPYT1|Zsk!c2MN~5GOSU+nv7IJDCB29wN3iU60A{-Mb~qn zNkpV5UTSNc293!`drb2oT_2O^k*o8CowPFEM>7`f(<F#x^4Lz&`)7hRx(sU!W0hZ8 zwh7i4J<dm=S*6DrR6{Xg(46p8kfs7+o1kbKLbFWQcs@bK0&g--#3!O{cxbbu=_QFm zXRs)YEfeQ)(3*_R@k!VZU+jiwn8vaT*0?e(deE7Sw11G8yKjuKNmgIM8qZj`Y#0H} zO+C(}nFNgwDxys39B5h#4Qa8f5}IK;#&gCVT?crlHlD(xA$4+jouOYVz@k7Hsz=xp z2F)_vvZtMNTs0ZBG1}{A&VHtG@Z1)52&0y$7Z?i#iiKz1|K_+%`yIi0p-hftFjfvH z8C+q_n@LtBKd#Ow!^&hVH1{l6Rv+}JJB<Y^vkc3{SRDnc`3sBINnc`H9?nw+Aoo4X zPnN=ZZFD-SyHVJP627v^u&BJ5SX)QXeIw`pDOp1VYhoGJB*qe%We7@Y38dyLL$D^5 zVP!K`06r-!$sPBTWX%?=>@uv$z?zI&zop-=Z$B+r%LHq385SN7VA0r(;uZJ!e6eJ0 z60CofVZF#$Z3U|+A@QMP9Tlt>%dn;}RyBN5II{Vh1(J11u%?t@O$AoYT0iboZHZ(( z7ObgdSkoA*rjcW(4E%l(mpn_tbcUfbL8vx{qRfB+WidGnGZ&v!%ep5_L>+`tr9{nO zm?!W_!TQmJ(Pc3+am8fZ0VDp9&dj)s5!qkuz%($le~;?wjg0ocmc`6s7}^s{cCPKQ zl#{MJhRMMvd3b&E<4a}j%x0Jrf!S8|x4mUC=$a!w^jxE`vEwmh!(Zb}PaBhQAwDU8 z?rgY~TozNnFp;1VJ9)+v!^>h`Vi>J#Opf@oNm-1WVdw-B-LHAGe?X)D*Z9z#G8yTK zMpw3H&RJU)Q^+u{<CDVIyI#9k7V|Q$n2fJ71U4|g+VWmm%qt8-`);X?KKb)D3&#+t zURC<!fpP}_b*_viP}c;o+`}8<%4j0WXnK{=3@xJ>S4K0Xj3&Q~=It_?O=UFSmC^iK zMx!q=8MJiO6*qPoG$^{18$y$#Yl4Jkx~{Paja%0w3QeJ|NfDa4x+YU-3Up1b(9F^` zZwSrHx@LpWyrOIN3(ZTq=6j);qicQ_nmk=o$;^_6HFhnfjfEy(*R&Oy8M-D+XmWK; zf1#PFYsLtT0UBPSrYM?mspFE<=^?-ZVW7!Ob$M!9#KZ-53c<-fR3J7UG(bZN!!RS) z;7nIcToCo`&M6vt%HB~lfzUiwG+m*|LDa}Hv(vc?q>8xVQWFeK4fK(84f9n5Evwzk zJNcr%fUfCCzR+ke4YM3bF{GA>Fg(s(gYdS1>e$^6jfvUm+8GBYJvAM>qJKLRaV897 zbtKkYRRh**ss_nerfQJX6{-daTdQi2t#sy3`U*y*52zX>^|-1*QomO<i1TGtgE-$* zHHh;ARf9O=P^zbQ#F_qQrAK@aXL_@&hX!$`|9>epA&4{m%PCzG)D<yYi3b#EL_Q;i z^#4nBO~(*mQao85Lx35tYLJR-RfAN_R5eJ&TvdZqyryc9ie;(>saWBu3G9GWtW`CL z;WkfAP*>aw`VXmkDgrwp&e<rddfEd!!TXnrCJ3y~s7(?RgjBq*Y7oOBMbjDaxu9xb zc?KRM(oPq|@S>_gj+Lq!<j)h86c&8Zys)%G>B>|!U~N-0!N64U@ni+VR|ii`P*=p+ zR+D4ceGf(i4R<{;!AQCx*w@2OFrs6a>8S~UE5rMW2CfYI6%8`OaMx4Qk?vrZDjt?Q zcEH^kqH2(?@u~(TVFdb!X|TuZJ2fQ(@Wk@aAkuHD8bta-MH7ff?^HBYHeN;RFYQn> zx>eBx!Ok5;)0y%at+r%!M&bih4HDl~(R4xD`=}atpWvzKiliIf_S6K1z)rEJCWvmB zKU!n%9R$NdT(4bS)6mm_ZrBT+_mtV8@%wn-*?kWT0cNhJrX$_=r_ufphUYUN>|CF& zVJ-F<PfQ?{ANrSc5<?|nprWC4<trLwv*88do%!m7>@nneXky5)VF&(n%N;u)H|TBV zv!G?E=t$*oHR3}W9%u6YlcJ$?brvj+q4?0d<|K>C>Mjor_x>KVx%gu&dJwVy4NMy5 zo!u{bjO!Xomcat=I;$i3`c`TplG4Vu=o<1Zv>Jx{vOqHve>{erQ8p;YNW)V~Wz6NN zA;Si;qqFFC84?AC+oAj!r)%i?zfoFT_~xwk*>Z2;JZMcgoy0@^g;V#$vpzcgUIi8f zhB35Hm#q2F^0j^wq?r>p9FnZPg2gZfPhSfd3x$@2GaIJjNIaTS7ETKm!zjL9#dYZ` zWq{8slJ%=#F^uACA!9Y7PyEGCdp$<7Du^gBjN)sN;>&lr_X^3XCs+)l_<D`8C=bck zgSow;B&)q(F^uBtb;VcGv)3L<mQAo2M)CCqV`=Hyd)5DK$r>P745RpZQ}I<h@?d4j zqW^eKfngM1i=pMa5hz{xtA=)wtl5IaFp96Y7z<4|%Z;x-v&Bi)62W2^#TTXq#9fA9 z=)1Calb(9nSR+^rqxf2?vsliz*mgy-4hR;*D8AliEbV@sdi<$Nvd#$>!zjMqQGBJm zxU!yP-4-l{QG6|9EV@iFtaG$@h-6i%0TseB{9&fcqkg?h8n&B`SRW_WS}9r01dCx5 zU+?KG2!@=-6@Tre=V6FoF^uBteVs+V`VF6WU$S}$7Q-mMK42^@4=X%B`mSV+7A%HQ ze0`|+da~*9NXeppC<TU5eEl0*Sq{I<Z)%Y&TJNC1Fp95_pp|)O_iuMbvNj49!zjK! zW-M_#4Jk!)5BAaX@VH<xjN)s#;_LcrS-(owZ-T`zimw%nrR8Dc>pNFVR*jmth`=z4 zuTP+r>6-aQuZNNqC|C@m_*%(Wny)omYyKfwy#<S56knezzBX+1JuX=;!D1N2*Jq5S zm3iZoX8k2=kzg^5;_Gw8*Sf*RDU!8buoy=1wMtJH1jDo0AFb)D->>fki(wRBs}*0i zy!r1))^CEvFp94=x-Y6JCx6XxN|s+Os1O)N@%06?@_wbgu(N?=wH7RfQGBgsEG-W| zp0KZ#WZ49ZVH98M6ki7~tgbFu!vu?A6kqEZODh}M+j>`(tSN%UFp94Yim$kvZ$6N$ zHw24e6ki+lbU`pQ`gBB-e)|1dD_9Jp_}ZlSx_vmYxnzAKSPY~1`jWBg(I@?d^tvor ze+U-CD84o;zM38X{Fr3brA$I#7{%8XXn8-1e64uX7AsjHg2gb3udR%wJu6R5__?cO z4HPVfQG8*c5x%staWweeD9M^CSPY~1+OGIIlM;VIvfdFahEaU&P<+*EYF;c^I|Ykj z6kj_PUv;kD{amsx2^PaBzIHKI06vZQ>o)ee$o_iSs8|~+1cp(3?S@v?uiG&%nIx;3 zU@?s1YY$^J!YBEPX&7us)O|fCSPY~1+N=1Qu=c4-l9eP_45Rqk$5?tf?03JOWaSDL z!zjM?E56RJIaw-M9|;!2D83FbmR2@$hfEzHS%(FSVH95n6<?n(y6GiZHw24e6kmrJ zOWaPw#1rX92k3cNs}3$AFpT2sFtqZ1-8!_yEm`dai(wRBM;MEIQT>|mgF8X89D>C# zim$H}Ut<?9ttnY4g2gb3ucM5m<>3<nhXW-mN3a-1@%6RhYr*c+pCoIEU@?s1t4Q|+ z!7%r|N0SHXdAL!q7)J4ROz}1Pod&HX>$G4ojN<D!V`+KVdftr!$+|CC45Rouq4?_D zFnOqCHLQz^2n?h6Iti`GsFnGlTgJ7OtnPxvFp95l7)xsp_dI<#PqKyz7Q-mMzGW=! zex1G*bXl@y2o}RAzP?j@J<)g0Y{`0Guoy=1bxQFyJ1cg+WbG9!hEaT-R(y>*;yf-{ zR|Jb;6klf;%Lktna+9lV8LXELI%`0IVH96yp_TRPQo9$gOV(3@#W0Gm?-@%g8`<B# zJyx=!1dCx5U*{BGuWoDlvt*4GEQV2hoo6iVewp__-AA%s7A%HQeEp#K`gZ;^_a$qU zU@?s1>jGm@x+u&EPrf}&&%@(_bpcn@@z+Jt=;N>D<L-SUS-%Jt!zjLfWGqS-g<2<m ze=b?~g_pOpz%WX>E<rDSy*+LHD9LIpSPY~1`iZe9D%2j%TT{m_S<ea<!zjLfR($<F z`|2jiN)#-HQG8uyEbV?}EWCJ3vL*@^!zjM4D88&WE`20f3k8c|6kk_$Ul0uUdNoc< z(erSPU@?s1t61^X^8Db9l2s&F45Rq^g|W0UA5dfJYRS4TSPY~1Dp7p(zqi;SS$++0 z5rJV8U)P|O{lhP>ruUJowt~elim&U8rL~9mBEp}PtSG@^7{%AGjHTVL%{9NeC0S{L z#W0Gm8;Y;5CiHzpvhoFsVH96C6<-H~DjOy1Bf(-A#n&yxS7gv{Z%fub!D1N2*Kdra zwTJJ2eEN2(UN(LfEQV2h{jT`h=04j{vb-ANA_BuGzHUP+=S7zv`TFS*y02z}#W0Gm zKNw59UtL4KJTF;R!D1N2*B!>v(p6*a(CH&}Uqc0pVH96?6<^i%*8E7aas-QE6kqok zOKUe~23@WuS<3{AVH98Y6<>pkmmim`U4q3himwNZrIo`UpRqTVte*snVH95v6<@au zBfKQbn>y?W45Rq^6Iyw4s+Z5h_S5t{Y%N#}qxgEnSla#S_Gs)e$?73k45RpZ%vf5x z@mjmysgl)Kuoy=1RjT-UaH7!z$r>kE45Rp>;fd@=J^#@>f62-dEQV2h85v7USMlQd zFH6=^!D1N2R|Uq>?pK|V=y1teCs+)l_%bQJ*2cE}LbARREQV2h;WcjJe$n%*sBY*e z$@*Ea7)J3`QSr4aa=?1YdL&p3qxkaHeZiIC72kT_<>+Oj_7kMT3JhTsUzHSJi{>r# zlB~9Z#W0F5AI75kMIpaMh11h@Ulze)7{!;b;wz{1D|wQYC|C@m_^QlUp6!NP_ccMV z7)J3`Me+3jbLNue7A%HQeEBh!R^~6gn|WEX{w-Jxqxh<-_&OH!uAgM>7A%HQe9?Og z<g;@2g{RI+)&;?07{!-a@zv<M|2WBdBv=fi_^QrWdYQ-kyks?K%<m$@D86bazS@Si z>mXTO1&d)6U$m!@_w>l_M_mS7ovYt3ywHyYhEaUg(pgkfR*vm9RkFqi7Q-mM{25DY z=R?CgEtjkrg2gb3uiA>QD!ms>l&m)ei(wRBbrfG0=Y9HEvQ`Tg!zjM$s=l_>?I2kP z1&d)6U+h1&=yP9|*<<!d)<wZ$7{yn8#n+vgbMqzZzF;wo;;R8;QQ4sIMquMk1^WG} z(S&OmM)B29@ildF$YsfDBUlWh_-e#hTK!tE=DmMQmPN1_M)5^ED&^RrV@>}?lJ&e` zF^uA?F=J74NhPXDw{g=XD?_jtM)B1|@s%+8OtNIT1&d)6UjdAz)vt5+!atO(4+M*0 z6kkmhU&9By(n_+n3KqjCzM3h%=D#|AsAPRBSPY~1YOeTdxZ#T}l66C{7)J5cg0ZxA z{?ovI>(lhI;S<2i2E!=6S}ML;On<+sWVI74hEaUAVk{~f6iz=C+IzI_t7iaH8W=|L z^`zp<TD0}1WTgof!zjL5>%ORLeAcklD#^+bEQV2hwNZQx-8FlZWW6a^45RpZim|k^ z@#(X_I3;V1U@?s1tF7WI`DH(&WE~bPhEaUc9v9i4Klnub$z%0A{7JAFM)B27@m2SY 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%0AeEdbT@>J%&)r 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 I=u>g{KR>p_2><{9 literal 46584 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 IU%|}&AAedbP5=M^ diff --git a/win64/libs/glew32.dll b/win64/libs/glew32.dll index 1ae616cc43432e50f534ae221e5c77bc9496fc25..04f93819e9255d9f3ab0e504a836fb54032b8d5f 100644 GIT binary patch literal 422912 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 literal 457216 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 A)&Kwi diff --git a/win64/libs/glew32.lib b/win64/libs/glew32.lib index 51910658f1d96dd7751a01b64b679cad54558579..3d780d9af26b5f50f11bd58436948a51667e2f07 100644 GIT binary patch literal 701288 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 +!nJX^U+?bWhQBz;1jX7hP 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 PARS&c0GDUWLo&pqqYRgO~4f$pew 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 AdH?_b literal 701288 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≺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 diff --git a/win64/libs/libuv.dll b/win64/libs/libuv.dll index d3c41853da1e5c8583a288af32da4b0adb99595e..87afbb871a5f7620aa960e1f1a0cc05196d06720 100644 GIT binary patch literal 202240 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 V9obddHL7b|7mkPj{$I4fe*%)7I7t8i literal 196608 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℘~=>+bI|j0P}>#t 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 diff --git a/win64/libs/libuv.lib b/win64/libs/libuv.lib index 182fd72b5a040864bbe6e44dfbd14494083cd225..48c0eda3c4d6afca999f6d4af8094bab44c4ce88 100644 GIT binary patch delta 2940 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 aIpFAIvBS>FVatyiN-NIM$%t1fHU10GY-?-) delta 2940 zcmYLKZA_C_811l<jcu%GWz{i+sbw(^r&$(<WHH7NvJZ5TXy#a9Sdi9QYH3TsIuubW zpkOc7=?d~8l_8dbT5z%=2wD*;Q--Kmv2KYY3m9UIaf$5hd(WN!PR?_l^L*UrZ3jIw z20b&J?kzK>r>9BRmNP<;pk6^#${2Di>*F8}Rx0O_zq0<F$;GGJ$lR^-iBKtLs-;ws zD-1-5WNQ-(EC^Y(IeVKXRw0MQJE~MF(yG!Z7*@$C_<S3Hoq<rbl7>tSjH@##lbj9U z&Q7PyLJbVf4E&>kVe)n+-VR2pg}7LoMbn>Yp-Ibu#*+hPxel5t9YVo+6jkYEG~KJu zd^0e7j6fie2!teTV<h?Bu$Bg$2FSy60Zh55KgPfsBSMWv6q%I=#+V23Xr6+9pTvAE zHFoEt#SeENseA{Lo-vSO0@H1Rc*#xx>rU)f_#-CNFfhtMVga0;3`lk%y>J(tA2X1& z8=>~ya=z2~g<EK+#f7k$Dnu#S9)P|*YO0AZLbkmK;?TXQpkv_fUW8WfL#SaN7}0(J z<9>vE`{n$jyw5$#8tzdJe=8=7^5V$@?QB}{oEa4(51^Ui17MyWfXSv}*mf5qw4?;U zT7uBa5~M3jku_NQs`NUpv?feU)*r+@*bl-$bO>_8AvpOMNGJp2D1$~^4v=52q3utU z<NZ<&XYqs1=LY?btM+75IQgu1C5f_#sd9w{O1p)XCII;ah5RIwf3q(u@Mf+GBrQAw zU;(gLL8z^88DUJqQFPgK6jv+y2?dM{j4_aSjP@PD^{wXmj!v0PyvLGg&r!#bXJ+8Z zaa>CJ&nV(yAl3$^f`Jz{q^DN`^i`tSPpSZ_st^i30iZqspCJa~s_}{2sxfp(4JK39 zFmVmi<7?^N*VQWM5TZJ^<~m6Hby@tHzdo5kC9acjiKxdFnd_;`Wc@ZONwXu;Z>MMV z0k^O+Zeaz|xg_}%7G^(%5}^%{=Qp7GpA8ry;TIWyDS?e2;S6dbXA^nFO46yqCn0Wx ziK!9ejyJ+>!)bu-)6gt#0%L6g^OAwgGYH*0gHW6Upw@v<Xfqf?GgdI#jD{1OXt==% zji?2{*aD5e1s$$y1#q`QBRvan=&Xva@a0*}|DQ-RH@GG`oRpng8yfi0ewSN@Qy>)R z4W!FFhZN*2d-dgfaUS07=V2M;0x-MK$dn5M$=bkp+Hk3H?Wo__4j;({XbLaDXZ!;0 zDd|@*E(RhmBCGTw_Azl0hO!P;t0Qw(V2XL%6g~VDsoIR~B+M!%yE>MUNgZC+_8XQQ z<VL${H@X~i!+mupLXJ+jOD=&ax}@Y67|E3x;1<{!GlztB;q=nF(5JTx^0;m=4c%~> zbs6=I4EQc1l-PriqX$_Ly%@8!7dv^{3(cl0$m(Gr_A2J6zKT$Yhkc?Rqz^MD?piAU z{n@S==w*cWA=})C3KM-u+Hf6A$943zxS#&d2mVt276>g;F=_6{&w9`RM4ADl4G*B7 zRbH&6$qOd@1~jG{_%oln0gY@BKK+9bfBHK>H3K0x!RT&6>}O!zEp*?03nA$c#N|T> zJs-l%%0K82N;EgmG&fI%guFcxPnMc-G;4<8(K?KNCAZl@+=lDKZ8g8q)RE0}qgO`g zKgrTNId26na}j6$`fEY~$zJ~+xpoKZint5wVg{byMGe_KSbOe)i5*4N;|v7fM@V%a zr!vaGS3biVfw~L1x?=K;PeLX?nn@n}l6ZCj$Iju|jStq-h8+)d6iCO|rWklJrs9WF zJp6%5ybmE+;m3{H{OBa;5t>v#!uK@zC@m_`iI}Sy&22z$NX^wMbQ#M9Dn+{95Gz-y G1pfhu6iAE! diff --git a/win64/libs/vorbisenc.dll b/win64/libs/vorbisenc.dll deleted file mode 100644 index 729dc0966aa720ebcc1cd5176d3e8b24dc3fc167..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 561664 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 diff --git a/win64/libs/vorbisenc.lib b/win64/libs/vorbisenc.lib deleted file mode 100644 index d65375d8905a544694bee0b784933cced1a0ddc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2978 zcmcIm&rcIU6#n`HXp2gtoJfqtpr}DaV5^`pi(n$5{75NYm(s1U32jL!T)hxZ{u{(Q zS1%m6>&>G{{X^<|yEEHPJ1uP!CYha?H}CED=FRtJX8e7&oICgsdzDbj%h&2yj%Gw> z-bjkxZVbQ(5FP^tQ^3#}5KVhEb_sADp7Lt+n&ebti(ZXXfk@S|R@b*S(-~{!)An+D zbt|)(woXgsJ?A)I%)zoYc2cQU6@2q`JdMofosBhXWht{nHcsJ4{KKN3l<d6a6rBn@ z6Gf!cJ<eB7j;unqnBC9YO-AZmd+XD^veuI2IxF_iYBlo3IvdXy&B_`kbauJQVUuqx z>6rt`ItQXeg0V1=8U)UUfHVm%i5XMFz%}(3sb7t_L_q*SL=naiA{fA+(hpH=`eH-7 zW$NT^z}ii?d!U=VA*TKFqIEYkJL>a5rEr5&x`|E{X0CO}AwRpO?ZZQ&#!V-JF(Z$R z-I#qILXFBufbyG|!DZUc@15*VY<nYMnL6L)K(r>}AEzBVTggt$%BfN6{G$3#2tw4F zn7I;qNg>8P>I4W+>apBJ;wnh(C~=I-U1d>|cn~M5;<q~o`a>KS&i!>KS1uiwzE%>? z($5pA)r~bVuQYdP#IA6q!_V!-={w-|6dahjQsIdFy>J47TCLHBlqngw%4M5?>+*q= zxC``<gw8zckP&<xqb_0jWB!Q3e+S-)5jR16p>LmQ)`2iFWzk(QX4aVX?-2Vu=rZP~ z>ma+SXN>Jl`QHY{%t;|L=7$`JmKk$POz38JACenwFS4HFwjgiedZzs)0B@`HaqEz2 zh71*FDrZ__F=5I~o0oFd`y&UUWxZR7Z#S`hL@sooWv|ioNtxi64X3Mp&SzP|U1?Zz zZz>34o*o_Do||(b37YW62`@kgi}!cs$)W=GoOi|>J>nBW3~CV@-X&sT=pA)Ik2*=H vp%&DZd#!KWq&#Gr;`@Sd!)<WYYg0liVejI6Gv4Y~{FIOf+91~-fD-jT2!`Ww diff --git a/win64/libs/webp.dll b/win64/libs/webp.dll deleted file mode 100644 index ce8c02134bcd0e6ac848d05d2a8565535bd5559d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 515584 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 Spd||3OE%(gy<{z^}1LV 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�TR_3By8lZ-_`cN}<Hxp9(sSYm0&S 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�>`nvf{x8+Vzj4!}- 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 J|2;MEKLD@Xoml_? diff --git a/win64/libs/webp.lib b/win64/libs/webp.lib index 1efc95150ea9beaf69dc2cfec485afa3d80e9cd7..d0c2a16820555494eb0747887dea51fd26458df7 100644 GIT binary patch literal 954050 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�n>pgKqim|j0eU7Nx&#z1TYjB1PlQB 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∓Pbt0ywWWamV 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 literal 19162 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 Co7C9= diff --git a/win64/libs/webpdecoder.dll b/win64/libs/webpdecoder.dll deleted file mode 100644 index a748abc3243a467ac5a6263284d7fce81ba609a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246272 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 C%KENp*4-jC)^&~b z=}_w#pk9Xa|M4}o5@pA_`&9<hj_qLvUXVL%oCWeL43NU>j4%|@se9gv{l!cL%Zbv+ z7p#~}j`CM1)STimJRPwPf|dpY9fbc2H@)My>!JjyC1O(G`2u>b@VcfRhULccLGn9& z5X;LxkK<u=86ugHK`b2mAeO@MKpck%Gel9A7gKbMP{$!&A)e<Kmv&iPekg-jCHP8@ zV8O=MgaO^rEaa>+6)fhM(3ttr^`%4@AdM@dOLeafmXd?4KP_?X$<Q-7DRtQAhW$~u zYfHwR!2#3U3JD{d6ukoz6Agut`XDyoTV8fIZRxf%>yxuHc3tO!8FGd@Gsx%RO&y5H ztmQ<f0wZ2n_(f}E3-1$qZY7aVMVmexYxlby1U}{zaa5OE{sRIHQ(ZbNs=b7H+A6@) z{G=RsIRZGad#WL7+!7M%frC}1bhI3!!Ye&1cEU5klg#k=Hz9oo6gIsDzM3|NiC*M( zMLaDTftDqIr)6POYH4f4U5D);jqrtW(Bagri&_&qG?F;1IH-mO{GFnD5IeW*+LEFY zYiSD!xY2!1a>_o4-*+J%35R%FrSQ?W%wnN-Vmo%p^dgs#I9OwgN{<~-Qp5xoNp6G5 z@|&!B1%w7Bo?^R7wOG9{#WyyLVZiD&f18&NP_)$(+UsVP&D1TY%A7AJ9uc;-^?qwD zOlHE_$CI0TSB6>T+>V|H@f2N%Y#zQbaAQ~p5jZVq6d_AuL=B_Ism``p%bB`UU_NsE zBq9+OU3|E@m3P{S3c7@eDiJYWSEH#eNA0u=0w4)Kf4cf5oQu?+dZWyaSI~>Y)~^wD z3i=duC+!QmU2X#{TpM&t?Amo*J+|9f+Zi0y*1BU6|GM4?jat{bQ*KdNw0)g!YSg+~ zeAS#HS-w<3ZAPEK#B)*kkb4e(X55B-A@zW;&34gol;i(Sy+hG=MTd*?^fEYTMv}l# zKeSW5RY4biIz>jXwjJznH~lcx!(k>S1!T4dYu5z>>wZ|<&OsfifYwlD2Ue1$>3VC$ zntaM#t$}~2zugq@bx2nJ1z!g*tQKAuc~G{9fcXU<s%S`-l$=;d`GKJORUNeB(c`10 zAZkT&3ADLvWUIs$pmlc<MEK@`_J^JFNQzZxugy&x=k+eyo#b`+x(J#ng-bsq0-zSv zanZVEVCbP1=Ds7y1Q0I9tGmli^;AI|*qp3aVQagu!+To#VHeM|OR1e@_7IA8SLt2n zkS@19H)kGyGry+7EpfNG-`+PWRlD8Y)YaSivdk`Z__lfdW6A=l9|qdHIM6}`(`z+d z#1p4!x6Evt%%}9LusG^w2eev7M7pWPrDui3M^OBuY$vxUM9@h}Fj1SlHXu_x*BiD@ zMp%0)(}mLVj<V2@^@N76GPmpOA$b^e^S4Uk+>+c-m~?}`PX@4iK-v$MxSb4BSJxW` zE5L|$dsL@gi<HygM1Fh)_-S};DmaRe1p1Vg=c^QyJIv#!v+tJ#N0l7r{RV$<RD-{t z0y@7Ypq(ut6Wgr22LU~VAA&B6#SC&9SkcaK(*Li-wEJF!0OTg7-A;Mv9vI4wpgqIy zD?%RbwsCvnH@OX@xI5*TcZ*pP!mO{IVYfXjnX*4-$qtt7B9<N8U_BclsP~No40>S| zf5Zpc3#F86uPpe%vNouE_@ToVfeBa?mTw=rmToE1dFUdG!rc-0n58piuhFz#96dwI zC$WuU6cQ1dp63^dS0)=azXa<nV!VvuQf(KJn}{^l+Jo(p1`^8@)pjMO><debAtPBf zb6h`7Vr$B<cQc;C{;<>|i^AzsB>7c8igfCdE1bN2cQknui{efD`p6?}ciL{Zy`k1W zvSC!^NZXyfFPglZiAGB$R6BW}0jN=v_hD)6PX8=asndpj8^R5-2-SAkqf&O)8@2&e ztXtgnQ)oHiMjl=l0&a<dMp7cDkqPPIvG!AXo5AGOw>emwGLMPG)jly1{OmplqhxEz z)eN6{s!}ScH1hJ5+SQ-XRRKIBb5m<a!a!@NGzUNHZrX9*6+1ozFK%SyKA4g8D&oKe z39wG*+>Q`@PU{Y7kogs=hpPC)9cB)EU8hK!SqEsBG}9F3jHWGE+aVV3XpmDa{!g0k z_jqX5XK7(QtXwWulpy?nx4rNG|E#^0?1=xr7+<A7wrlT$JtlH1v(AVw{92e;c1j;6 zxc+0J$%{UD(sjxSzF}ru=UyNL`o-cx)VP$LXaN1Nmj8pU1s;i&ug%Xdau`2JD+0tM z-|hq?EaU{Y{8-+%T>`&e<X6-{LBhiacO4j^sE(Gw!zl$nkV4>10WcNx2@Fa*LbU`C z3?5^e@VoqSlqdDNzG(bfKF*h=Y1eT|F2taM#yH7u`<MT3HHS}Vl-0w3f8YQ5_sxFQ zP{egvikPJo5oQ32DBIF-^0M7wC5X2xLCnev8r({zYp~2!&`mXriX5|VLM_8?ccqyK zVOen9??TyFxR{lq(5Qypq1s8i^HebeQOixR>{pq+jG0;C+?eLWP4H)Qf~_U<RO&n) z&8pnSQg+nD?}6S&70Ru<?-4pE{bBU!+dkcI-mVeu3i~6?$#x0$PQWQMv6h}SO84?D zhYaGk&P|z~eTsHZO!$uxn%(?8<&X-(?Hc-Lw(nxCE-j_?^g-GR&Bim5h{tpL85EI^ zWpG_A)MW<1N2SxD+UdvawrMT{onLDRizuvXL3`;Pv%)%qYQV#AtKRYxB*dey(<9@d z+I67>9oH5wI{=fEUW-hu5U2MjPVZHmChVwb;UpH*!X^f5FWNV162tjF&_31|57QaZ ztd+lFy0))iJhO{EV;OGR#c-NN64TSrKj3+!&i@cu*ICuQ`480&u}2O0ADDZH(g_SD zqJew8rb?4wl&iG8A`Pe#_3ylnA}Bf~(sWZ<)J2y0Sj|HWwk+2@xC~qJ7zx`&w0S8M z+sv!+!BN{GY(wS@<%g6o*LEZ<J9z<a85{ORnzkb;o=xAy16bjC%LF%aj9;<Ydbo`( zsHv0K=%BF#Xhqju$gR|^D}VtvUl%(=Gg7hu6e|mzTL6BK1XU#ZMNh!#7DasBiNDm` z$DQNb?M5;6yd<MynW+0;TL>`c=~ixegHfnS&d9i{x9ldQEbL3QNWa`rh5Lt^2c)88 zWjsQm(RKf{lIK%(*j+8*P#sZyPj#0>#2uiB1`@wig%n-if^PZPi0}0fWW`qZfl-%( z#>yIx&GHr)>8BvJGF^r}GfRvxVCxDQuv9QHFjV)Rb+^RIb^oHunQrfgTeI}Ub_Y7i zq2IXzi4GgAXmXLCP^Px~V#KXXxf|?J>wOz-B79r`imzv1hc636ts<X6Vz?oaEFX*1 zbr~B0zn$3}bYHORUY!32J|n{y5&Hw6z1ka(%xcE@kMb%5>kaXe7n@P;4c62|la+Vs zU_~&p67?K0bQr_PEqw#&ro@Gn0HjmwEA75YCIH{qP%UwpB|bAJUGDP|VYr6Tj_ob8 z?mU5;WP=xk+eJ?-?g=5+TQS+qSf?SGvrdDG1+CNkHSW6B9RqXcue&q4Q~B+C#YHa1 zcQ=0NCGK?ha_+^i%I?Lfm=&~cEPaG*M8_IRQDSpz*feg^VRvOXz#iqs>9VEKprQzw zh=D4BOgFDI+Zx%Jyt_fRG$#Lr)x_t1f$hkC*|BWm!8)xWw@dl7@3MV~axk@2mY|?D z+FxUhroYx`dd_Y}kbF!8sa@T=1yiDdZER`c_@&Ci2mD2q>}NnVq%GD8NHjPn@F!F# z)m=e6WKa)o#zQaef{A)oJx+q#nX<8c85)@=PSuY@9x5tvhnI)qQ}9so(6b8Up#u?l zl!P<wPzFyL$|>>>kf|GaXeK4%Py)_F^AJydYH{dIGY%~deOh3%sU43`;7Kb~JQCQ> zt`^y6uP6I_K8jWSnYs1Sb_c;+#=*pTpCV+~k1UJEbGp3WjysuX-IkjR;&&cd{TCF} zKa8qN5UwY+W|1llrTQ;+xa}=F1|o`)J3h4E#Z7c6K})~bk$R)FWyi=buFHP@Zv|6& zWZw@S_WR}D_xX6s4okkD`hV=b3w%}8ned(DoC5(8Pf(&@L4zJ<f{_jgj3838A?P`H zqTrocYhqd<ia-Qgf*8QSH0j~A*vtHM#`%h!_I>NucGONsrR``=ayBHOl7K>DxFi@f zA<+;ll7obN|7WdzE(x~;?6kh`m)|dE@3r>YYp=_5ThH^XXEl#pec<q5)ebSMOQ%iE zFZ(o}Q)9k2i2mAr0oC7TYa~yI;tlm@W|#C-lw#J%R>yQr$=`kJ-*vsdXY2L7uJHFF zQ@Gpu5Q>$-&hLGmU<oM7NWf`6!u9ixyZxyP|Lr80w)W}e--gE6%8l*@udf0lH&`oc z)A0`yIU(&HoKsK9O$g_9ryjeT?Sq_?y+b_9Eqy-Jd`oxgn6GQt)pb>zTFWnZ)z}0T z?fr$8i}5;(dD5Ify7f6eBZqqj4xlBs4|WF*0p^t+=PlJ(Qk`q@aEx;o6RPWJaVRLB zJ|<hK_@5@>Q7V4Uy7SvNWTRLTyPd;3t!n84H_ipc4Tl+Gtsla&Vd?q*;gk3{bT>BW zqmiOi_oH;q%oNGeTK>USR+?lfJC7>)>Bs8bndDTU<S%>tmtG9Z#q;T^J0q%(_laZ6 z{dQ-isQYK0pv>cK(ZR1!294bw=`K;5*?L2#J-XA_HLA0v)8c92QJp4?3Y{MBRh@o{ z1YzH>Y1lVl{ylNKf8>v?PS-8XLnkJk-aw=2Z$S6%Cf(+QXn)7)oEb6wz1+&`)nA*H zO@GVjZ{_2^%$~M&sY`Zd#>!VdqOT$bOMe3_kSX(co1SH4td=tT>rRD{4R>1b*PXhK zTYOFgK)1~zEJ1XrfYX=njg-5aa?xiM4{!K6N6Wp=|4IIb<;BNk@_!XDpTqw<<b9R& zKYS}bZVG9InAVTiw+9gb1D4~V*-~ZdOu2}Qz$5qqcuMb2^!if=;u7g8eH6vqs6QQ& z+okZdadXw}lbvq=<a@ZyE=At<Pk&O~KHBW{kBQ^f>mL`wSueYEX+w7DleJ#|<iRR; z`ll^CEFI^)i$3{Bt&_~s>9?s=@^0SnmX2DYQjQTHsb{~FF8h;PRch3`D&_bsNaHOX zbCHxRoqU;kVfylR@kSUoRHa7U@TsIG4<Y3)ot~sFqmt!WY3ilwlC0h<bqrU}l1He_ zaaZZf)%xP%dwgh&T>NAH`4jo<<iA&`$<ONVjaE$>H(2?IPX3BYO<t)|(^FMy`fVN3 zmQhZX8g-ZyjTlObLB5W5dP|dss8sSKhTL1~aHy2y(l&W7x%&<^1h11~=;GyB>9_<{ zWLz=hi3`TJNO9S#N;<ywv6P&CY_60Xl}08n)Tz{%_tj<c2V5AeCUu#7P+g{fs4k;E z;z9!tt4nf+x;T!gXUU(ci{sDw@|axwj{ndevHRz!REk}wvZG3;o<@U5>eo8eq*K4t zsY^T6v+wFuvrZN2)Yo+?Pp8^GP$g&S)YtIprAOc8>s*%Wi@e8Ft&j`n%1vPazN7AO zMP$+*SNF?Y>GXOL_oA@84*+>Y-Ahd7(&-PYdt3mRtcTP+rd_`91Ma!}P%g?>pw#i7 zw@cQjEcGN++QlT^tS*jQxG-&Qx!?#h4A0UX%8T^xE>f;AyKk1~sm*dJ4!VV<iF~Jz zN)?Bf;<g-bUM{<lkNAed(q{QOaV8a-_%MvXTlyQ<Mxls@;+<<>4c{o+?{U<{e<!@c zT2H#C?SJASZ00Nq??<z1__JKyM#e5f?PfD}9yDy`&Sn;2hVvyNLX^n?ta4am*=^Q_ zIk$i0_n=74mzTpu*@4U|ENzx=iv-j4z0-VOLw9$}YY=`(%OlC0DVaYfQ}##6ns!zO z0Y+Xz`Mk~W?e0$f<829XEl=~DX3g?@U3f(4wXY!y!br<z5r~AX0CZKBM8-~{IlmMz z{C9Vw5^znz6n6EySS;1T@#Yj^&EwtvYfD7+J!RIkV^05Yz98N4C#~as@%8zoTxIi( zTUL*A+_s8`x9IJDwAJq#v3ada^c@t*V*Y(cJ=69qeZZ6Vu{&@u;o%Lwi|{t_1xnVd zl^~+!ET2h2X-IrK5sKV?{itNE>lvv9?Ra<UX85$5Gfr$>)b{uv1>{hVQ@=#{84uT5 zI_s2*VTj?1ttzSAs<k_H88v!Y_>IR~Ko-MpTP>?XqkFTsI%Tap`~=&Kvs{zh{)Ox4 ziTa%Mn9t3Taar$B`ZPVNUTcBr_C2qcj>W+o<@>^J1gx~-Y0-1rd;`=jYg$p#GESd8 zne7XD__~27Boh;4L#2P%_dFSZ>GtNvH{;`4e;vzgxL5j`e^JA$^j}eZ&HJ9bPSn(B z!+`OKJb1Hj*jGeT<9y>HG+WL$?nz)2I6xHLh1hfXXk{SeVA+nlr}GWjcJ~sht~UY# z%z;LNP&xvg4q~;S_!6ClgvkqFpEQP)6UYZWO?&(k&kG|>RQ8mpo+jLEP%s_ln9bo~ zFvq`>%e3-k_d)B9s7^Tk^;WX{4!dAmsYA{=C3UIxqx+#w4cBzAP*Od}z?-Rx3{-Pq z7-XPDF1<bC^!en)g~R!L-KxdKh4#2*iO8MQ)jFrRaF|LtB{jom;2%=ue94$J%NIb` zJpqYhgWETg#@>M-ajTov8*acGPLyN~2HR%d2MTRC;hUN0d}-z+B1Np+>6<w+e&%p@ z-po1f_?hnRnVB>vEmnJ}=@aYEg+ip<zI?Z=%zOp+xqXE>KF@Fr50jVyBhi~zi_7ml zVuzEn2Pc+^pV?~T4@zgyLtYy8J;R3;)A>@3+qM&VH%)dSzRLM_w{I;;N@ts`hs7lz zfhUbJEdi3p>SPfU@Z@>Y0R1%gu?`=5`^%2iu@o$NRP1}h@sm-62%6*TRNv0>b?DEd zue{!OsoVb@*5sa)Z0AdxJ<gYQdu<gg4?Kb9G%o~(l-v@IgQYL<6x$X&euR;P_0W-4 zX^4@b39rw61q@HX>zm8)<g4LvzT{3Ze3>#vnTf=3$m^65+Qit1qcNmEMUT@TWt?#P z{I=>0KHaol%kL<zQD<Ev8ayf*M$>o6prP~z@ZD^(3A8YRL>nRM%<UDp1x`Q^HA>Ni zPusqdb#z2~4he!z!v-J3`=%y>Z-&qQBg5w&cG~Jn?AOgIP5Kco)wl?*d{-s~)n>FJ zhJYZePYgs>UGD~%yT|ysgi%RdGw;0HxC^98@#X;~z5@UZAjEjEWUIxESJ8($dM`ST z@nW}R9%145S9yJ{G8~ECj6+^57PHty;5+U)w!eq`Z4?(?i+a*<5x=Ks2vos-#clqP zUu_+n?H_qPOE#~q-sAJ+_;x#Asy0f8U4&QfQ^xK7VOLxF4kN=zFTBWW+iCbZ*%aks z?;Q>U9+z*ofe#5|%zHLGjXgOtN{2m1ZQ>TZmF?*s2tBKp>)iyPTK^qos=d)A<4rG> za~R!_@n-$NVJhEvz(Om<@9#D4k>POr-e)+_T+47|`)a*;ht+Us^?Mku=r%)=ZoDZN zwSo1u_=Mpy^NDBLXHVT}yM=+N0{buX-A)7~**lmtJR>m6R+DY3SXZ{H-FGh#dwUL_ zAd(-n@>m@~|4N6w=&`kC`R+|ZJp}?#m_^y4G|#k8R{mBxH|^7vKNYy=T~T|{qv109 z<Bf0Xu(y#p_R6kS72iZ{npawGwI~OXAYn&n&ro#R;?9iw%b#2u>4lf8IG1*B$B6`m zSal8LX|3Ko%bA$zhM&L;@v=>tkFIsCrl=A40H2q*tRc0==7HS=*}IdFZ>$@A<&-MV zuUR*nsIbcOsge-1V;&}TJTcIj=>Pu1Y-6%j5(=`cyZZ@8AT*%0ckoN2<o0;%KKX&f zNfKIC;#lUFT{6PDUlXuj6&H8b_w&mxUqcg1Zcp%kzx5B@-PCdRFDfkeT54b3v$^rn zUAu#R5|PdD|5$oYAMY?W4<J17&M&N=w|z1FysfYOWCx|qn};jjiFoJw>x3)%*6Z!i z{zu_ZdYi1<U&KAWlG*-S2D&p)`3r$5wX@XTh6%x4s$bzeAQgjw=zLOoxom65*eOEW za(Ah&NeBbraN}5hlG2^8&H`*2fiGgPegyQ`ugMzHDPrUjqGXIP{H2L;iTE^ZH*DKD z<IO)wjuE>o@QE#pTer{dGPoyJ?WI&UrREUPdoNPZwlx;o2zb0zpsl7Acr!L<c6A3r ziE9E1=(e5}Xq3i~(7rK17w8Yrp@1{;s|4`W7X|KYXZ@m#8Y(<-3L|1w(iC4sY)63k zD(MJ)i0>BM>2o*GjrPQy^8R(h#t`<W8^s*13$nTG&b9xHu<v};NhHrJYKSeD^ffg> zJ7W7)YvgZJ{i<o9S2H(frT2M?*b<zMR@ca{h?%4QbWSQ@lKRs-_MoR@sB*q~dwgs! z!eA!tSJMMot?T0yNh_d}v_o|xl$a4<Ow=67y+g>`ixze49MIY`MmZ&AZf2HbrQ7-l zXYxG^t;CshcM}H{{PYx;fwLCo7jHrJr}1@`Z@=CkbBl_jKwP0PXAp*yBYYH#%X-&F z2&0l@WO<+dS%AgvK4#vstHD1pPmF~rD6S#A!JWqm)n{Z63eIP2&YE_jAAmjsLs(aD zNIwrQA@!W>Bb$)2-HJ7|E7st>UOI^~l+pN!S|3B6zJ3-45$@?F{p{%_Ur<jkIZaP5 zfd$jCOJo=Pc;i8}|D6*j^nnxF*4_JYMA+cwbn?bM$d}`_ywRfNjU$$%fy^NyM)&s9 z2^j?DJCl$hyd%F_gbJ+Rx9Sr>p_@2xgF695tswUZ97@DcwD+tchVXikcn~ZE35hF# zwMa`E{UZALWr~&&`c4ZreULP8M1Tz^C@>N^n{Zr)-=`&vq}f&{ZQIyeaA6(%lUCS- zJLtTy4&Hv64h{lxM969#)eBx!CStd4LPX#g-Amx`LV{K^0uh13<G;soionqx6*xZW zEpT`<P=!IzyvQU{6Y@5LW>4qm#<5!75Cd<S$Q!_;eXJ5Vi0+DHG2HN%oJHW!!iN1) z@jMmfMzu&F$Q%PK{!!D4FS-aZQ?l~Ql(Z`hS|E>rVTo)EKbx>oGW(=>3iXh1`@_ge zW{a#Lpcmme=lG%$HnM!%N(R%HomL-WS}&c6@RL6EfJNQ~^&p|YJy3E6N6t9c{t#xv z3|>*w%)t_0qeFP?qgNVeF-L1c#PO-0y@JqPbLz}g^h17<8u~jo>{Y#HmIQ&kCEjW} zMDu;CGtvc_kLcu_9kiqY;vU54o|kx`SyV~ZH3@wME%~CYhkSvBZa}Pj5k~Zgd~t77 zzR+|yR=&`o;bgHpT+0{b$QN6cd~t`w@<*2ND^`Injj`7JK-0}rh^Ar**244LT!EfU zRGd~Zh4beJQV*O~79Hng2vSzd6dwrzdo@dBioXCm(DI4J@A#;Q6c^M(ktKTfu%|5X z&9loA`tcd%2TM_5sVyw|;k<;0sK_9Ke4VA1h>8^X6_x<OcxXxR>?jr$9+ZY6Dm>)( zhf+ZO&sTOZHs5U1FmnKyi2)Z@&Y(cgUJlTx(f>|{1qiE?VFBX&I(a(z;UY_ZFgD*} z>u$X&B1EXPmORfONo2)H5+478_%MNql_UnlN)n!o%52{mB?$~|#O~@LNksIqN|fNo zZs{*BOrA)(w5G)upt>5MP^1ZNE0u0TuS#oLV|a3u<O7)J;P3zQ5=F^iA6weg-bO84 zuqO|uBdD}_Mm$kG&Qmf%+lyRrzG@ic1B9D?Nk*1jVc$H%(d}HjQOOobSJbp9{e{ex zP>ir>fgp&W5s@%j`ZGsRT}!%%?OlIphSVSmjQ;dbqzg0{^Z|-mV@ZDWs+JY^H8M{T zsiVJrVWto>w#A4UTl=oXkS@$X%+Oj4VI=2(aOt~U+U&reEJm4uu+c-A5vBzZVdI8= z3mer+*!U^56$NRGz!A$x7{MwH{$)xIu@-KT#b_US3B8(lLev=ND{@E$T^t7210>F_ zc$8O8GLjSV<Pbe~<LQ}5&mLaieV#oGt43l(4?27vq6f{sr2jp=M0$D&Jr(VS7CB<o z7x;Uy7a(dXxy#UzPVmZ(QDAuS|M<PDjB(2LwTKLYaR?1Y_d8+^5ohljP7YMIk&Ps@ zX=F%kRKoE4L`lSXL32fQfjr9M-bZlRkdp4TAduyM+7hQ^R}QBvihX1NqW^%_)10+v ztsSj_%-_<FB})Dlq0wu~MIL4v)M0hn7IR!|F+ESLlSRDR5D{42cmhj)S)<KZ-O$Og zNygx^!FbdTghj_^3mCQ1b;fLfmR>Dr@h8pJx{Ti4l~L$Sv^xE_)MH2`os&M|w=lSj zZi@qrgb|?c(qqwe$G4*1(7E2c54Anzmr5wnn$&E+o1=7gc`&PFXS528rFpP@T3$5B z8y<`-QiH&YTWl+SH_lnwbA|f^E4(!@wO#?3M{7D#vazyIOl>eAn4Fi*9J&f@33~s9 zs6Gg9x^Nte2{E`FL;=FNIa&ddjsk?>%Nd5>Z|OcxV{3`3KD6coR(=CVf_;^hXqJXm zYjQ;gf@HF$Oabok#4OxA&IPzy=Mf<Q{n2_L6(~WyGtr^ea&pSz83DJ~G{XCK%6N;? zk117CIkUtL=diorkcozmjRcHgw2vadSpEFl?xese;2MV2ELV!^oxAu?%Cv{AK)T7U zC+Vki?SI6}l0hp^Mt&_k!vmuo|8h<)lWLUUV54z#5c4UL%_+U=|5Pe93cgO-PSbY@ zr<awf=B&V43C+P(O6JjZ!Wdjx)?ky(10MEx7?@`uAIf%P(E`G&L}&-*n^~Mig$J4P z&kI{{j>@Sh@T?NxJxs&h6k1K%o%a*P%RUpu3SQM1ZY~x_kG#%U#R_^A3ld;iieHH+ z9K*0Kkb+~z>j%@KbU(P3LjE2M3&K6P40-dWlZX*Fbt{G?4rGKs%KAq%F5edh?N6Gg zyBua&^jJcUq|A!AFvJkNzEHcKY#IXAuP!Tc*GER(i{ABSTXcP(bba7igB|~M?K#o~ zWyC>L6meDr&{K6xr*#>Ls$`TL9aYIN0sR_sWlNGk(|t4viYri`?Kx`YUnM$8tA`qe zbRW;9a|)|ttPY0NG3VJq(Z_@Zz_6*}{~CKvHISvWF3O%0IK*^VP9wdw7HVB8Jmc)M z6V|@OuIu{)ciNt#gqw&J>Fi(BDi^WmXo{@V_A#xehdb4JzRx}Q0_-_GS>8Fu%zZ|C zj*>}OJ#o?_whwLRifCL8^`}=5yf4O{qns|H`jNBGO^iL~)E<awr@vje5POblxhPt+ zJx6f<91|mh_BUkDxd5U`PcGD+qxgZ;a~jWy({dsy+edrO1@!DRN|p1q=Y)HBZr_kT z*>lcMpMqaVFMSFGETT|}I-5pSDp)<f>^c>s{lkHfef3r+5<lnC8722>P09xdrlLu) zEIXDMjw(glcTQ0qU7#fXm(w0uJ*0bKZHaWY1h2<Ar_-Q3d8!7*jRwX0g=kRRmIg(F ze4kl^qWx7N(r4D6;CT?EKRKPV>gg0Hh#IFTQ2v(nC!*O@9#XMDDpG}L5ky&HcSRT1 zGfIXj6$8?HL?0B@p8%eHSu6cdX@*2}O6h@n5mkxw%~F*NLsjyxtc|07CK0hD+V8Nc z1V@udzt69?=dl*%lYP*GMNv>B4~2f7Zlh$Vp&d?6=}Z4R(o;dwPe;~>Ol3Q(f+Wys zmyU>zO9+U8USw{6^db>s&?t;SebS5UK9gQVj6l5<BVVXqq+e>0erZMEHF^*$8ARk1 z(S_V)=|Y-&>q0PASjvzH(*gUxEZPvEUZS#(LO)$DxocoI8jzEig3fr{)0zEQK_A&T zqpd<=f7T23M`29GjEFflD%#{%C}W=Gwj>L<v#&S8$`9=q|5wm`oYNmAwwDoql>T;7 zD?q}X{0rzm{%`h25g@euQIx0amro-S^+!RqBRgxf;y`>+L~M!Cjr3>vT{2tyqr~n- z>yHvw`=j(rvvW>=6!9IROG-ncH`7G4BibLOk2)V%fTbNd-wicV!zmkT&Z%Aq`=ii@ zY75Rz@kN2!M)%Vw>FVq>P+Fq>Q7&LtP1GNyk7|;?Eq@g8@nKBygciS84gOkEi9kHU z>A8JFls`%=z@Oi?nu%Sfs+iBHGU=N?N=y%NlRdv4MpY-OivZ3gQGb;4>**!^=;=BA zQFOe6#}e4S?MwYfxkxae-yzHp*WjIZRrHnH2b1kjo^wp4@>R+)L!Zg_6`lIlTk6>; zQeMB~!wN|y57f^R)#;1LV^u17HnDVwoN$ShEOne9#1$pGxRAP3ij*c_CKn<n$kBW{ zfQspi9L@Kmc<X4sxi^TvRO-{DiKg&tx%7^vK>PyTzjgA|mwJy}V)}QHL);-8yE(9v z-j*SQlalj4iO+Ktfei_UQ=wAHzfX`<vZ+#ze`0uO?wjhp<XTlr@+OsX{ELnS@t;z% zH1+rDlKfxl;&@exlqSC>mmdB5cC>%L!!oFX#ym4s_3!7T>0gChPSZbj$fw-v&0}x2 z$JZ&RNBKGki{Si06HO!#mQ6(&ATFvq<B05!mGf6F<7e2VzFLT0LjDffOk(XT+H9~n zvd?lL_F}e2_ShYH9`H;p;ufTrmgQ&Oh*%O&)H^!F@g5Q!eUgf2qT&${;vl*yU4?&V zJnmBCp$3EamZIU}-Gm;4v6@VrR_tu>y&O6=@-mC9=|zq(0a={-OO*3R*l2ZHiXtPS z+(@I0tzXM3tj!{whKEA&Q(M{D#zLKP$B{4+3uxVxGmM2eo}GR?Wcl@f+ISe7jreX2 zATlU;8xmFE6aWzjNK}I&fhLH3LYxr^$Q;HUx8Tk}hDW2!2Emt0`ANDAY#FTCTf{mK zeDuSkOz)71xOP-2LvdfW;3_9)%Pt>EJiF$?C$1f?6F7I^)4_7I6Tc48_RbXaF-nFI zOq0{g1%s}#1_%w51m%(aF9f7IJ-nO?f506<BE2)s0_F(*oO?xS;ZF}zavmD0F#c$1 z>WjjkQ{km2u<VZjOPIb!;N|i!5?=bL>FOiA^wM-`D48oE6fH2xI4zh&d|FQrFXy5! zUq*Q88+}pnn=;|U1Xm`0sD%4@8L@(}r9@Z$U)&W>&k4oLIbF|5wmKX}qG0-N^C#&O zMYD<KQ@m1%A}d{UB;fLR3Amg_z-1K4{3f~JHK)d19{0?@#K&d(XWJ$6@=v*!BV;7p zaz6Je3iBu@ckV3#bdufjBzYBSkFOq2EKkPPa1`c-a9rk2foDQz5;@(Ih}S!@)CLjT zlPIB!i669>SkLvu{oJvee>rVtC;x<Ko|3sseoW#qR}+|dN+wa6Pu6h9kMqF0N1RK_ zYd>`^sjPk2xuk}l`qZgxKYQ3Ye+OlX=Kh%v-b(D!FZL6=*uWS0M5lY&7U%k_83dv` zC%O1xTqVYHn#6b>FO+Z&A>@eBPi&v3JhOaB#VVRJTC*w~Qnwh)n-$%;D!=CHH6(eG zUp0)7F~*v*xYa3fVt=qzqU=V)&xy2URJ8Inq_@nT!L`7m?7V8C90MmscS=YoLV(Js zN6!OrzUt<nyiA+*VUj2EYvfDZb>&yd*ZJ6*fP7Vdk`NLj5UGenx{_m(`cQv&&-zdH zt9}LH;)<;T8{I=>BhiLrdVC!!Xqea6;gyg+?u^6Uj3eT`G~VmKFM-f+1V5TJvB`L| z8*w@2JRrmQ=CCWU!X?adzUjS!J?U@S_`e&u^|h=kPNF5oD9IUVTMhq6j(tnC)uA7s zi^t&Sc6#rhOZ53+ci3tI$L+T2!U3Ft@NR3OF>N=Xbvr+$cb=pk`xUkd^(-jQw#YMn zN^Nf6Ubv%OV#Mk5CuC13LDHr9Dij6M#1!%AkBxb(@Liq5la5hYqWMZ6J$WHb0t_D^ zojCq69eghCPIEqeB{u}mBmDWTe*3MQ&3CJH;3i0K;~7Xc+sfJMEbdSPOBf6pM51Cz zbg9xCU2?MUl{gmbW3L<J*z0WH){H<lHpjeXxBu1@IU>rpQ^&~h`j>Dz#_}|;KS#yK z^$@nzKDc<ZI>yhQM0AccIXvoNXGk3qHTdO+on4im&TuZaa~L+qMS+oWAe4Fv7V(VZ z|FSMBlZX5)mZPAoSGltuJJsWAdE5|r%pH$;jq{;Q=lUg}pw}0Pnne%wIOo0N^>K(K z<ER3b$>CAg$uXY{7)KU+dz>FdDE$QHl#@(}(*1D8(1+vaoK%NIeF(a7B#V;x@15A4 zomT~(5mPVAx0}-wi|*x^OvSqh;r@oepcM~{S+O}^OB(KcEiQvVaIeML0)-CeYg<|e zOxygh^LAp*m&W-5&oO8TavC0iD7}OSlM@Gtb)w{`Z@7jt`r#Fc+Ujw4WS2)GfHY^; zM1q*Q2o`pP<7~4z72QW@wHi;&aS4C?gHb?%w0cUmZ?Cj4Gdp9S0F^tN;}AHN%BM~Y z3CEi^d_#%tLQG8`+s2%}(3q3F?tJw~fUOnn1J`^YNgJxWDqs1Uk0cRj9;nLLI{o&G z@~h(-S^aG(Weu27onLWmj9k~0$HgTi1dd;f4>41;toJ4jd9m_Y7cW+<Ucw83{Oyyz zDOc9Pyw`d0=}zcg_wh0Z=O?zxd3uT69Mx{CsX0yt2O1|0w*_iC@f#nG*paACSQH6< zG~X6qWJQtPGP;=}&`&Ww3$mBN<#Mi-P=gpuZ(<gF_V075p{Sz>cN%COV6164!K@Mh zijDte(m(V!(%QhGi`E>FM;Vp*<*L7xP)})h=wf0h=>GPMN0ProUZfh;OLT|<@5Ox? zCr{p%+x+(NaQ1Y1f3b2z7z$V>>Vsw<s1V~$cbToSCd4!UY=T+78n07>Vv9wDEp9UJ z<uqD$i7Be`3ybc8-X1$qI92?&*XErBZb$Gx_XG<|>3aS)HBWu+FkDN58%THa%dIKi zruux=DQ2%qj|mj~R!gujGSGfYACr6-NyL}Bxt)vXV_uY=_#JP2rgTFueMUC=7}-fz z>Ud74uG0~OpVX<KjuQNBo%&Et^euJF*QrGPo}p7;Kdzo-=#*F2k}4@QFykx@)8OVG zXT--ffA!jknkj>(DK*SBGijPH^()fU($u@;5~GH(`ZHOweW{-jJ3UsvbVZWjvg6oM zvi%M#K5~eZ#D5;D^h+P8RPx#ZO22ear5rbdsOXpWtM`)cyGUwDu2U(;@kCYUPAOTM z`mVYpzo#yaT~eepdAD48=$9PyZWBNs*PVI?ZB!k5VTS713~6&|>QcGHbj$)e;y2!- z&f+d^BY3UeoHdb<iX9$bGt7OK9P|FP0>hOAd<utPfm<#2=KaF8QJ!#|0~?W6bL-9f zjdJpEmlDWU$G60A`YU<j+fGnJveVqY_dLFLx__eVsa_ib*=H5;%LaICAA4*^Imo%Y z!kD&yB@RATm9XdK!Yh{0cy)sFH^ZS8RSz=nL>w8P?W-<sIH~Bp93%rHAa*&cep`o^ z!&=sgD6Z52oL7rZ%=zjizD}0=ww}r{9T%;yF$F!u+RNXfHmhDhNI_5EL+yENy6tzy zpRVzSy?>fL#~0H20Vn~^t=TgMa;89nCLI;1DP&I8Emenfqm=lJ`6ECeyw$lD#w5bF z%n&Crei2jDbL;o{=`T++N7}dDW4pg15@sMAVL&o1<kIvoQ6Lm?(SlH-kkt9@nLub5 zJb$RbQ&d^Veso_Z`Ud`oTj~Y1!7{A3?TfZ@P!F|j|NQa7no1n{MX|#KpWRZ1QYL}6 z&J^Z$L5=p<zJONS1t66|>TIfJ!y#%i0CIrnoV&{uKo%>2loRQgi3m^*cdnJdtaQ!> zI9|+uIB=M?d(cv+_i<VfGGa(Ze=NV&77vE|G&7T=LSJ}L>2QYLsSv626;Q&@dc&il zn8YrQz@sLYUuJmRY}klj{zU+#{R;p}LYDUhC<h2oqJ<jRtt}xUDJ#e<JQHMA{p~~M zPzy5Y7cpjffTzleP)!R)d+F~Xov80?g>?Gfx0T6>icvWI9duK+bvR#@z|famm@-yb zZ!csYaep?}vBy?6n4-RCgDGB!vJV^|L{GeIGW}xu)6<QzpZiSvs9ZjiF~YF9*+(jz z!QEW}nYDYmD-<N(1|&mT(>dT`JFxquojjR2nZUti)&^lUdBQn*T3cApDfu+Y{Zmfi z{_DfSsoHPP<O}<kRrC!OK=;#qPmXbmwc7TN{VQ2RGZ|rN{bK(T;v#Gk+0s9EJiaLG zKPpf6%f4z^bW1qFtxxjknc06YdGrq!ft4A7^(TBWGXg8`*CtXc{J1dw-g9Efp$Vsx zL&+3-Ul04%S?TG|zKrw~RFqvW7(taQ_gpY>(3gvf_A=42L0=Kixwc-!GdD^+%`YSI z?BOrYEa7v{x~~_>JcVAKBAx#8m!Dq7il-MwG(|kUP@<{CQ?-6M>ze5t;%P6+8T?zP zoZ35^wW~}<4EgLOmBy~+WdW6Ww?w0Mo5vTA%Y7<7&g>NXt(bYqnS7JZ!O}SKGt$$q zl=N~j>%#TT6^k7wvHN1d(FfPKiw_>=X_AX4$u5cp11lCcD#fpak`T(BBU-BkVjNl` z>b4TH#YjYeV$L%2av-J^X&qbUEMJFM7JUfHo89X^E_&F@!BHG~!{N}krisp7ohxOR zZy1N=*V7O@P#Cu>c%UH8ROuA6rL|V>;)CS{an<g;?HGnLrO<Ys)R>K}?-y@LF^{hr zIn->dZ&Fs6m&Js7MGyPlt4YNeMYFE1vFxHBXWRCBZ12i(vd(o6pfVP-8y0lw2Fg8@ zigZ!vK#tid_E}@iR!(+eWW{1@E>CClf`NI<0^BlGq1~0n)mzt~<&BHWbpB*Bo#mvp zZ$1!KxuAxfC(ET$#|<CG$5p&#h87to%;SqwKX{S>rY~FRz#z#T8BTf9Bza>bnJLL{ zM3Om@Tp3Q5u4WF%S@S&CNajW>Q;zqJWR_W(dtx&itjrU!nZzkqb&lj3c|Fa_yfHR2 z)5`otY-Wy?32;SUUu|VRADg++%KTGoW|@__CpNQzgp4WUxk-=bBTX`%nRnlb5jY&y z%>NtL>l}gUUeo4A`OLXmch>^o6NB#3bsMO_>-+DQ6YxY6=d0ho&K(B?xqbgu#vLa< z`Tnbtn{2TlXSv+Q>)Uxl%xP2H{_HYsO6I5#j`EYET}z)>EumfKH0R!l=L4Hr-Tu3` zb2fy#_`qQ#vursSXJD2b_Z^T!-#H_xrkU_PvVAz+>%SvS&eC2o!+#_4d6sL+&HhR8 zHSI>tCvxUYeys`wpTAk$>W#qX+AYwhDB@Y&0!xMv7AS`N8u^?1A=l+A5xL~nc(&#C zNz+zxE1K>4>~&4fwUs~*gJ75Aj4qpH6HV!?xLMNmLs|Kix;rY`i;M!^+K9!Rhth{0 zaVQ%R@GH+F24l(1bfi=|Vri<*xpW|Ez06FO@3++g5LM99-@C>GN4^lZe{!X93w>Pc zO3^p#U2)uG`3vL8{fX-^FLCp{t3luV!X?#^^Bb1{7&pIn3G{LEC)Y-9jN-1Voa>JR zWf0uyAADC%ET0Wzc`?8HAI~)W4{{!$7w~Yq^R@&>uUPDglizQ|VU0wC8#Godo)jm) z3w6$%pfRH1y<lK;!^xmwv~M+EY}g+(hPDTTfkEx9!NA<svS6UFwJI1WsNZcib{-+C zK44b0Z#O$yD|K#F!$)Ra=W+A7hL5CXz8IKV9|#6K4e#?qosp7_orlcQhWE@D8s3(Y zR;%ta>v95S-GVBpT7qsNce7K>XBxI!O*LC6(XxPMtXMTb9?r3vERC0TtLDZu{*-pp z<So+nsz__3ZRKWc<7sw}#|`h(<3rL~X`y^OL7FKyx^=2ER?}!zym~Uno5z_zxaMrn z=IApUw4nJbY0!vuP0L2eB&2zKyC}kQuk9U=?XBi6+$6+?oNg3v!L-Cw7FXnWVJ4Zd zDo!yREf8kljPQf2p<)xOfPr}D4=w|a3|tWMj@1yO>Vf#0&ogS>{-;-iRZ^KcNOFO@ zxOuf0vU0*V%iVZV&=hapr<m&9&RLw##u<uy6M|LJTz(s*Pnom**&BI6ndbi>?{(~e zSO>F9GAcZ_cksn>=hfr?;C%J2QQvF+F$LuAXB61TV;(fGA`b|CpoE`qm-6%2Mt+`n zfuHH)o{*2AK?w#%G;{@x(G9z-IUL&Frsr@_dqtmMPeEE_4qs^ah&X|nJ%LWap_<3% z^gJ?AaZF=?Yi0^FxE(lqPXQP+C_{lQ|1P|%=nNni(4!!Q=QRI&wjLf%FU&5nhUbUm z_3r%|EAM+!&Ki-&)VtqsEt!?k&L}(}<MC}7kH=(;o+y=%;#-155i=|SMkEF=&wE(T zJtQ`3NM`mPl9`z@3ZA?!4p7a`JI3UCY`YkanRA+d;>DQ{u)dVcTm8fSPNX0Jczg4c zJZN>Oq!)Nz!12=3y>vN))j3L7s2pj#u6x-q1#Djb%*<>bfkU@9cZ?M9^|~^N$oLpA zr=W2GN5KMfcu}lEbIQluws)E@vp#;Y+n2ps=Yd$wabzQ9X==$$n0}^*DQbF{#-@j< zZhDvwr)%oWTNb_Uq#i}VJE=#gy4&X$nZP~qt>(Y~8nCb?C^Ca~l`uG&^nNA7okPAj zijd&`i^>=Ax1PUzfmosC3j~dLq>GyN9`c3S0}zofl$Gk-@&!Ug#A0+Fsyr=U2<JaH zKkk=&fnZ_nDv8J!edy7J$`{g+Xxz@TTPFXy@<s9D|6jiNGRPNCe&uZP#REK5<oB;H zUp$1<kRtiQT`dNB8+m7yFD6o;H;28FJmI3JlP}(0C?EMU$`><d>EVf$FaCkN-n}1f z<;BVu$?DzzqvVT8S!a+hzQThu$rp=<pH04)%hSHe7q89KAMYh!Y$W@CM84QE8CW>I ze1SgWIlawwhKLe=M+V2Aqb<rJW$8P{Dm{eb=kKWJLqw1&b^L;qJXhz-h{A$Hp}nre zd&Kh>h2Wel>jb!LUkwM|dwqw{_`M-QSaCyx^9K_9U-TGwvf-7yP*xb|z&yT?_WSlV zYIR4(foxPI8OOUT1I>=^GT-6AhYnw}+At9I2hR4}uf&-Sx9E`^DBs+LqblYC)+iNe z?&6Q*pV%+^k(Hhh&%4!pRu)4`BA)I@$$VJcu-&3^TW)a1@YU|Tcl`G6;If{T@tM~a z$U?)ImTlWQ+dpiq$F{AxbTcDV9Gqi((|DkVZ@lP3|Hj7Sx2b>m@z{ip<Ba3Met|V@ z)r`CEc~=~OggymGFvO6kLE(0UUZv?MBZn;xXg$$SyiB6I5>>@o*G6t3&yEB01zX1I z817^w=jsd{5uPW^E5F}z<tSj`7T0rraiga6<e8MlhmH*V?1M&pI|s=faBMJ-FE%y? z%M0TU%iYUz*DQBsa@Qbt)pA#D);+`m|Dm_dj)k3O$78i--6NzQk#u!1ke~ArKMT+b z6dq-9Kkq0D``ny%eirNw28^6z{4CgSc0AfiF)1<kDB6KX8z^uzU>dnirjg&q!b;^< z%U2sBZ8{uoQ@lAZcZWGI|NThQQhGM6U}4!go0cnWQLUnpx(TX5`qQYpr{;9i*rPSv zEuaH)X<y5umF9Ct9fpi|V{V7pm>)7<JeoXI(j6x&&1a4}#>oA=TvplzCwI}tZRQI{ zM;(4xUZB9HqYk?isC)dt#kxe*(c~TKDLH1{qpfD(=%|2XNPVvyb-c&DE-CLv-{Z4e zrPzwasgHkKYS-^qm~-bJmNrh8%oU5r{L-pR>eykuKl<n%9*w%3BEi7WqZQIL{oJYr z9o5vMbip{fN9N)!X^bim3{23)BQ4nx{c_Fx%60Wm3^E5bTu0%CM81){`CF<Pj<2fb zth$c8$>rpUQYVqU6e;fFmeriB!nGMIz<1FZ!w3LOeg$5arz_Y^2bj56fX&KswP3<> zR+by|&038cva%F>!9t)9(U>)@=BZ0OdF8V*wnAgmppC`N-+D*X(m}z*9wr>OFDMwg zk$iXQa(pr02mh8d<1EZ|d9AUD2ZDB)f{gCh`I+-8e(rmgEls{H#SMp@KR|IPCBB8S zqd1TzqklbJRoJ@_i^Yn?<Nh~kEHB+<6vMAoM&mBBI8~608^zu;z3CyAnSn+-DxCKE z82gFae+MQO@Ikih2)O@QQVLJo<WAvfliVpheK(4y;Hcm#cp5Zv7i^0nYi`b`K_fq> zf}aID1v@`5t8#;ay8Fycx$iKEN8bZB%E>vo->iB3gA}tW|1HV>(A<>2Sqi>q)}2I8 zSitj;Jg<2a6Oysu^I%|XF4!#vUdi1quk52HU6N<{qWhF*`HE6}NG;{+1Nu`Px~dwp zYJNFdkr{_IbcE2<G3|_#07nYHGOWu1j`3N(EweHLS<|*V(b_>=)vikn0<z`G!@h|; zPTl&A0uFcS@0Ex7Z2zRo-E6;{?Z0+}*FWsX?rDd=JIFKbkh3^RDp=D%6o}PN4K}(f zjpE8qECvki^y_mKI457Juc-s&ipB4x9F;%n?@6Oc@!w`QGRoXr%4Nf)H?Pc-u~Y4> zGz%A%soj>?i5RC9i?1^4c5F67^>1TX%dCT5?x;3f>P<{NncEq!I<uz!T`Bhv1TH_b zJdCLIX5#_ubNO+}H%kLTMV=FVsp#}o*mM=_@bn}aY{Owt24|xj^-L>suD@69<gi8# zNk(FwG2*CEy}sStpwr{mtFSW*wj(IGTFM9t3U<oQfHJP0ynts~`BQg9&pW%o-Ic?! zB2pu}E7t@!@_`=6EcU52ZNr&JOi%CsH}aaOhD2ps`n)TJY|tCis7C56-%g|W0K(W2 zF$x@CJgP%RL~IVirxh1I%m={GwXOzzv)(22gB*Rp0eG7_Qb1t&*yl9`T0Zs{u8mRz zBJex?MDKtgV_dGz_`PejE;0G=H`Ti<89*q&&-uK<{vPrjPX^Jr0wDs0LQIVD+~sES zlRqbTz!SGEcwk;!eXx8&+!oaF5CH>|rkH1suNvkGmQN+Sk!(tiN|P@fm=Nc<MQ+OH z>Vm-oMqKg}57Lz5tL_55ROxwfqmIzr;DM=ejuA30)EGQ4H!j&5E|?anwoVnK+PFwT zYMdD^I6hM2%i$V#a}%lY@^HaSDQGoaDUI)PWg227jNLEF2+Szs=Z*$`218SFglpw| zYSx4)S4}=7Z0v$hVOmhOx?GIeg>XKLpzYHXC?KS!F2C0^Q&FJ6qaog1Anz(-w<l;! zT>xA3<O(;8(nhNC<d<3GP(E64v`OfqMbQdQ?gRQ2{kCXiHF%a{2Ig-KzOZ6d5}V(I z_sM>HCUewM83q7q8-z^6z**C_I@g~JGsY#Ln*}(_QNId`kz)bda@4Oc>l_O(g-L2q zMg7_!j|4*x>l+Q=Uf)jkNV*YA1u@t?{L~D!8~K9vAIowuM>M*3vjG+i6;zZ}QuHs1 zpEvxWkNBw!dyLRrL6`pG=gM#J(rNMYVg{NgQTz<(qEY;ubH6HK;b#J$|I6a%YFec5 z^MA`t5Bz*jn$i<L?@*<|&qC=)7(ag#E*Qnnso`pKA_c+Ee-9Uo;%7>@#_J;m!T1&7 zf)|FLRk?2qhP;a`!A%4|YqaFCw+DW{YbyM#$yZWI^jR<bw4|233O~c5%e#@9!orGt zQi(4I`;VRDEbLU{4|b0GdJJ~PX~9I`<1de$S%RGpZy*f71?=CC;OBq2&WxYpOfZWz zYVik$u^jyyDK_#|vr&Dnds?Nl_-SF6f`*FZ$YOOPCBP&d&>0%$xNM$6ob|5N`U$QU zJQt515t9)eSej<?i+2yjC;#d`3(thVP5(MW9F2znX~g}gFivQsfjDF>RMX^czvPXV zyK1wM<!RudcUb>5Blb3c4;8G(4zd*c*sN;B!j3ph>C8x7b0T%+m~(S?nsf7EqJ?qo zQfi5=vnEn!19jG#xw%2=HO<`ow`6%YRC=lFu9mgeXi2j`3rTmZbz!pP)#V<6*Bl4@ zSsPmG!9Po(=(>*eV0rj8mVdkCKD;WEwc#(xh`t|vPnCJ`XzG8-3&7{}d!^b(D@;~p z&<hykh@<5^81oY;(4yCKyP^w1SqMhtOB!b_N7eFAR)gi?HDLH1)`nE)n9O%zlBaoB zeL7~HCu=;`dO*(8<HPup2ENGLizE*mAjtz0NSD9|q9w2b`_iBT``REdB<yRWzR`d; zYg*k?iL)}cHP@G`g`EJc(%1Qd7K>pbQ*V>uKv4gVx)vpvjqUZo?h;XPOdc(nvdAMb zz3Cnjr&;Eams4Wq<}}cyBIYEgjA6y`z&u_QPl`b<nvux!YI&ZSNbz4S7n-qr?8^)E zRmg+9*3oo8y^8!+WF&^)O)(3aj`KdE1@EUsK9DJ;B&ohIoKi<9Ri;V}=Z+o}8N=1{ zf~NPW*yTc5(G)a8ds(;FF<k{a21t%9<MsmoWHpjy*3GX_%}9}lvR2y*(!`Xfe~ZWc zue)V>3-@kQj~J`}B16Al)iul&sU*h?G%*-b6<_VDRLSvXO9=JJ+$OwLy6BguYd@_y zFu-gK)tD<*5p9K<NY0zjdU0-374YPBWlFhS^1}qBFKPDrhqIz=3aDDCPt_pB8IQ%| zZdUCxnoRXr>QyzWzAYZJKpI=ubQcg-*MvKU>MsMj*zPhzA^pzr#aXHyjRRCx3vF*H zAdx%&fLR(sE}YkdE6+SyC*5k4M=$W|@x=>)QYkGJq=<8#BgBGJy&OCcAD8^7d^~sl z5haWt7!j9zjbya6)~Tm^Da#zL8o~Q)s0$v*MZT5-BDzb$D+zg)8I+gD>6ekcsXC5? zygWB0Qu)VHA9A^4nQDXx>A7*qAKhgYOw$Di#U=kjvZUazxzW-B1#h#OGk1KX;2*;U z%VP_!lU(_9W~AWb;V(+|oM2#i`jfRmV|n__O8LF@b@{#XSMq!Rv+|o)BEP>D?2w!P z)aZfIXNkx6K}1M&_rTvD$Tyhpd-QdTPFr}aanTOk3uY>;4rBABQvPh%4EDsJZwJUF zwVfV$1>eWZM?h~7T@bGq`s$Ws2@oqJ2A!o;N^kUSR?h`}%j9_!eXBIYX&e$@6VNL+ z*MxAU2}5S1Qi>>So7Yqw2GUdDbKIf1GQr`uYMOA8Z3L)~uM*t}sH~n>b+ObF1PewG ztOit}n+D$%kUzc(<=bhIcg12BW-%xn!CNYSn~y8hKOOQKO=V_h`tn-AZ6E+Z0iWNN z`Q0ULR*2REl^OU<v!+SVcCVM#*FbE5RH&7t=O`K%rEK%&e;^eqg4dI#S$L}{njmhP zLfp(b^3^(2Dj?T?s+KQLU)oI9ppyzA!N5nQY4hfP8bRU9d5d|pP?(y)+Iv*{Efg-5 zL==S|k)#sO`O0(>@^TCcUnBJiX1;QJxFDG63Kxu`aAUY&v$R{)NI@TOsT!jw+!-#| z9b2$ma^=%e6n-iEMajl}@jTELi`k|_aNttMA+}$V8uF1!y{l8nM^x%noqAA*g59W7 z&m2|HeoiWa{^DO;=n!43<9E80WpDevRZ6U8!|#Q~%kmbJRvar#l(iG9FrE?h0R>NS zXPR^Ua63Z7@x^1ZrH3M{mQmb4H;sEsSuFDEMlwPA_11bCwa#kEL5_0Bdod;z?t55M z#^~pwu|}kb(bocFi)@1Ta+6>d<hCdx(2*-Xa&QdrKJs{`9if2riY`2Zlo%JF9pTbx zl%AOwF2G$u(}{2jsiPw|q>57rF(S7y{Agwp1<`m|^(IkJw}OI561i3Ctpadg>4*Y@ z;G?0vqNT0FRv^G%+9aBfy`sS-OX0)3`JyY<`63pi9>57tl@_E^#c6n5>Nd$fzSxl` zS9z0)6p}l{lg|u+!muyJKpi(pj^Gxn`#V*65iW$=hnn7zN^T3klBW2-dhfX=$MurE z21!9Uf1oM(m^i8_3E+jU)WPylKA@xqDp#^cO;d7>l!Dj{k^-+ZIXWc0scTf7Ty=|} zG!bC}@$pLa`Ow>DOQh9x^FQZHNCQHfS*@Iqm)D386s5UBZa4Axg%B&<c#Fhpsy?A< zi<Ao<7#rsZ;8|wL4W78<iSn(+`G+*&nHQIQgql^kkbFW35EOe}UQ)D)B2L~>MJ|<> z0o&VjQKSHh>i({}l3Bi&As6bzJAb5t;DJGLju}!DC~{5Y9V0IJx00ZInl4W<@jq0W zzlUPWrK*=#-D?pY)C9$<94~xd%B@&DIU%<EEJ;vrrmmOr6Qu@-nB>k0o2=RKp5nnQ zgdL^0JWWt*TD9{Bze1nRn&68v53v;S+l6eD{zmD>y#8AfG6G^CXa@TUbCXvUU4QEB zw-a%$4{yI!+XDI%eZzgySDwE;;zFPQPG1ATmSlG8pc{H?K;T@VH$3?2mn0T95Y4m9 z=C##&ZPl`6usa~00M2z2ki6U|^QD(^R&Rs4KCje*mTBxk6+f*H^mV93UqALRi~Xgq zny#)`JnBt(TbZma`nqEAxJPxKvI2^!`b_lIB9bEh3859TDWugRb&?q+uU1(lI~6X1 z(CX3<REvbF;=Rdhfklli@)`&eR7GB!!l@Y$+g#Qk>idw_FbywYMWhsVSiFT6Kx0KH zt5Yk9ChTAFArxEWY-)16<`!I#C-dgBmRmgLW-?e_hggD)fcyw?s%mm<kYbAXNKKH( z?pwm|g+$CFXOt8PS?eOwd!<A!RHd$q<%S||A-yD8?C6kZHL?;5L6zhiG-Z!uuIXwr z>maSAP07zoT9MZ0x>8?~M1-`;n>CQb6^k90%4cce|04xn=^FJ<a(%HW`J3SvHi-}? zq*V)Yn-sxR)xt8Kr4%#3Diwn2lUM2#*%sbWP{&pYy>1mnzh*R|%_CngamO~5$;(y2 z1Eb>{kKHU)@laVc_Dfw+X^!W=l}{mTCI3W!<^xSwp?ouWQxhkOZ4MWc^0aDHs$7-G zMbYJwINpP>4vljhnPpWyPij(SA;RC#Wy1s&0(?0+!2`T7I#MU)g1jxH&?2amyDnUA zs+0pW=Em0hXGuf}D&-HT8WxZFx>Zb`o`bNy^u-g_&xNR*nXsb23`aAX7>;Jt-^c(L zMo-0KSa0q6AEBpe`(`pK)4Nry)Z(@&kW2ij3||X3D+%!HI|AZPA11T5e5{>tLm|Pa zCT3IZ_!N(@1+v+5H6!aSUC5?~i61NXFi+lLcH(^2{kGwI+v9t0*1FH0c)a+e-ML=E zB!>ON+?b$>%k9M6;4Aj;nV|)rn4ug@SGlca=I2W)-!zXesd>|Ec@JSqsM6flO0vnR zE2tjGv+_61(0dT7CiZ+5)C>eO#WZjKp5L%f+g$WQ>mt6mGC#^M&-J}{`Cj}f-;0lY zFaE6Gb5Gml^sl3T*{Z|FA8j%!zIP1gPYHnfzWdltkADUMbnP45wk?cEwsY2ALWz1a zwp#H%VdP$0H~U3-Z`ov`?5<f2!1{*`mzeJt8_t)A;(HnK5HBWbrIjj4MCncx7WJrv z@Vv!k97;e0(ElVn-MWvRKU{%c)AFcedSnypg6RHLmK;bfDabF(t(*)d$DBsjI|@Gj zj5Kn$aW8&@IG|wq#6wKxe*C6HTB%$E1qxEUdEau~Cm=vj*hwx=UbD~i<{iQZg}uIB zVmb$!l!8;j-c1S5|HS%<W!dYxixy_%62ZxyvI97}`}g4u?!0ZtT)`J|bCO2zyI|M| zI9P?O6YbwO{GJo;yc$m)N``!$_an0<=BZr_nv^hG!jHwK`NXfYd~auEY@4>%>6Z<# zMsX;``LsG=ByXob8_$S<cwyY?#{}vh_M=<<BcFCptNHFA_q2V^VxPRQrqOA6VX#4~ z>M*-EeQz5XReVW}h#6Yc$mXO(9DBYmoZD_=IX^+IxUy_^v*XCSfau(Ym`oVG&O98G z$+}2o4pn)QU}jmMu{alJ8{#^ye8D}<d@4;0^5O9mFc}_bOf*W9o>m*0&6RE0w!PW5 zcU9B$uIBG4fS5$YSD7o|A;ogDWMTv|#sdh$jRyq`!u!XCDCm9TLKS4cc<es$0W+Wm zG5f?jc?!eF)9QHxx&akn#ukSZFdb7cbB?{@ctOaKsjDf=wsEyrd@c8aSCx@1;}5Z? zw%Z*zMBs^XQ0hH-F5kfp6DX{&mfLu}D?F`uOCm<?qH9N(H95Ha<i7(0Y*eMp##~9@ z<+5VcyaxHrJ&b<~9+QXSpLj*Ki=R5aMoH4@=!S8|cYn4msE76&2(jnbFb=A*#$>U| z9&y3FG%^^h$WC#3k?H*DDLcirjatt~BE)i>ktr;8@tCR`<5l4HiJvhAf||t#JN1rz zp6*p+{x)?A#-<6frVFx;7i4wI=6u396Y^O0=A$;#8}noI1=+rBk@3F8+M;g*K{2<P z;qi`_k@lqEF!Zk3Q6IF19JfTgCFXBs=*`fsq@g^jSLpYa4C>`kdUxji_fM?x`gAzv zDFUTz)}!?TplN2~GIRprz4dCutiAP#vDE7=WZcDLel<-E)VL)K)WotZzx}7UEig+U zZ)fJphkE$4;F1NPEVd7lU+<tur*txnPSwh7)*u8Sx*Mv0i!8)z<YKEydawTzj}@0? zvO&?9R$26G{~Y#oR<F8|c(`Y(KRjAyhw50_bO{*nM7pn>btdl?vH7#olUIhFYE{aN z)i)06ej*7k3_Izf!xPIYUWY;}EfxJuEup_e{w_YAvhqsaF<X`;F$KE=y3Vf}P!S?P zq)aO>YLqJTc0fv=8m8l)uD&s``-vfna+I$;5?ix|KM5u=u}tDVuPb|^P{|78m7tKu zm#4omU61rGeVzPO8Tq>QrsCrXD>I!}W&wqHm4vDWV2bReFnY8=7(YK>5)eLLZSnao zRuoP6pUua~tZ>(`QolQ4+SVcyWD%pBLYa)}bvue6?HpB*R0_3nx8%KjQoNkqQP!mz zOnawDduzahCmz(Y4K1DglN)qPua%b4LUGMoIaT-#?E}4v>_eI7BEUA3161c=S$z+1 z?h;W0<?Z}n@P)!%_MuRDnPK*V)3&s%j53Lwe=(J~iNbB$Dh#z{>^rJuQ&h`D9|`qE ze|W<$ls@u)S@o7WTsrlb4mf<9POUnwo{iV30v%%ba-I70bM?%wQx09{JO8fg90+_< z=j)_;4F~Zh+RMz)XLB3O(2}hQESAdg(<`IPMD=mL!J|c$QbeL`RBE3<!cV|%@YaWO z9>F%Z*zqiQq@DrKup`8o$m6%1udaC$SaiPn%ziGmYSKRo->eGXJQ%*YDSUHf_(tR& z_16CI&70wypIJA?Dk)$*sD5u!zgMc?Zn|NsCf2_54SLnPBO1PGZ)|t|y6v@9pJ_T$ zq#usc_M>+XqP|OV2jqH~TPC^VGiI^~XtoDBZPwK4X%(q0EH6NsdyI$7@9W@(atxLE z4edH*e&u!Mw?Fg3@dxnfQ~Dz<>D_{!{SkPQLej1NebgG<j?Wn6qUv6t5gmwLpLf1t zboYQA8E!JKluY#&8J;w9Zt9VfNzQ{ka&pL76`NDKnvOW%SR-)UBY&gLSN)9nN@<zS zmx1n4zCq`A_s$nv1N93o^(ddF^99*@<Rd>w`3HOF=ji-Zz4KS={GavC->CE7?44hx z^Y{18Zy+N~m)zJ>OYb9+@B%g{ElG=pYFX2!-2ulgsr32_PQVEkT?+YL{<@b1D5le2 z8NLp#?q>~OGuJsK{5)&9Hf$8zttAlR8sxX%VJqV?iyyX@-|oNmI=}s5(y}o<uNHBD zfke!#Bn#s|CoW6~evp4vN__C&^RF5<F+p9f=is`vt~6SHyWchS(ei;_dGijusQvaI z3BAuNXIuPOcPUP-FCg-d5B_`MRrU$-!D24s6Vzp*jnD(={TGx;Z|;thuUxFZlA*uy z527GE%xb1tRg$hM8LKNv*Og>MDxqjKMXB(SMziIiI<~(c6D{0n7C!d5dVPv|eX4$a zihg~X4fs{I)xt%W1uN*FOSfQ}Zoy49<%nOfu*ocVtS#JL<rXpicK@UsdbIEKom5j5 zET(F@-(v_P)kRuPtEKhQ^1{dJ%|cqQH|?CjBZ_bcgJk6}v=-aX*jgMTS`VXetTiR; zT{B;Tl8mU`Ezel}jjr8l7N9gxjt}OVT3K(^iqA0{R`wy@$JYi~kW8<i48w0BvvFSy zs?U85W=-vWGeGT)WWG>~j=`widAonugiPlf7<pES3sBv@7WGcezB)~@7h%H4kE=Et zrD+ArK9PoCe;Um<2uek`snj3KchCUFn^k)@Qx$PV_S9N0S2^EU@5%(0G(l;st&&Qx z8ZVN#D6%4`smC2_!ahtQ@L{t>7x+xJMg3WR4$99V`Qf8OoA(eBr5TpjhT*Gir`gih zYF6#vf^hntnctTD+yq*Z-!|%nNnESyb-oe<a`1pTIQco1-<4b-*U$p$IXG^e+}CtD z9#DB*2N4wZnW2J)fo4ZR<3O_jsd7!b)>k((&;{*VXgFy!#;m3aJ{V}C2OcO3Ki+B@ zXtv~aVyh?Y%Ztrhf<|FG%F!+q&Qf7x-T~1q58*k1Um6P<hLBax<h3CjwuvgWoqbLo zc8G*aRYXde&otMnhKx5Go8Jl=1?`vw3)@8btd>{>d?=LjKD|1?w6<;Lp+vLEdC%-v zVEzFc0S8pwa)Kow{uTKsp+Ts+{K_of*2sPU-Y6RHg?v;k-KVuGAIrj22!WSk8{~Pq zJg-^0H}bqZs&A6#cgJ~c&1TEe_bGr7)#mltS$d=KK^~UpiSmBO(mLyX8viXuvMxuw z3+fgq-=hgRJAj7;@1x$Jru+t)%%X#XKYTJ$MgQQnby_Xp1GKO_%-`iHN4wY>%(|s} zBHu6X(Z5T*w!_ipeJrmeV4E>ROKUlOh-L7{tWY7AUcWZRczpLy@%SEPKj>1o_|+^0 zEAg&r2pTv|RLk$JW%7IH%kq2wM)}R#Ais~UrY2}C9yO6b8evYL`Tkk>!Fa|T6d4K^ zSW?MR^okpBpb=zSxPfp5xWOBuapU$>hCt@8?t?LKec7$AuTP0G3iq>a|45Ev%yOYi zfMF;Cf3ad87K7-7>?@M#j8~Vz3F<P$2Jh&_3uvc3J@^5%AL?Df1?nxAu~F(BT6Bqe z{YqWg<+`%3L^yy{F<ezKLRT?dS1}@5#VKTz{f<IP3l_c$^=^XdZ1?)@ne6Wg2{B_o zkqn@sKC2l_)QY02ByZuTX6Uicg*qvMlTGjaBQrs1FV2Cy;eNDspx2+YI`~k0Tqm1_ z-ToxC`uF%J4bILu<hC7k`#$$%9On=Y(J&->G7fospBsOY%@Jg0XB?316mLc&ZV+TB zouS*;Y25-%$KA*FyG#G%$`QmGyH;O)Tf7`;B<hK=!(8a%I4@Pgqxp8ru}e(U9MJ`! zyV~u^sF8qa<JoB}MegI^DJjL%L~jP98X_vs)98`*+>~v=IkNB<kK?p#|FB8!;>~v0 zz%KK}+WkV!70U_2Q7~=6MucO877d%ArcBO%SZ_5^Jbqr;hc3yeEf<D9Y(j$DhdKvt z0wReZAoC6<RL^W`La!sX)V>fAa@-kSmjaV`PWvKyRD?nDsp}Q*{Hl8K(ggMTS9<`* z1bHP>RVdZ-6=W6pSX9o4iU_fcc438Lw!&x&7PbK?e-_R~bEno;XdXMX7E(E=7Vj>) z9oUBgb>D|lX0LEw$S=8d<O;k5@?oEi%OLMlYlAXycv-YINMR_`*jl&|g*)m~i@yp- zsoN8TcEb}J_mEkOK*rdy(yz5<g$}trz8zArS+Gpm5Hom>fowl4Y=b?4h3!r9vqNol zfG;#R@tNi_^OgP7*!C{WPuK>TbC*@X0k@lV^)$b2+>fu}`z>wB|2mHA3t>+40xU_` zisC|5%|U4I<V{i{)GoYVoVw~x$kv$#D(g%w;t@TrN1VuQgHg7#<FFZ~+kTQNksyS5 zy|4g(3|(cIi%DIJ#l5XA2S?EbNNPD-%&G;LEOHy5=FMg!?l+D3HEd!xUKg$u<sW9K z=qfj~I6}QYLCm~NmlF8p`8D!fvmc26Cmwe6t4b7q;dz2Q7h0~kkG$^;7f|nCEYBm{ z=@W@tHpl2DL=%W4A)Ru9#)`#+Mp?1=Lo61~A68+N6ILMf_(E8LFoge<GnwS(k2&0& zhAo_hA2bN*5?<i-=bjK;!#7732yXu)C!q0}zv4U~uF!Q%Si%rAk5G#Q;!9=1bj7yM znxK{>3xL`ge!C)w5Pc=TUKP(`;3`UqQ?0BQa06$FkeThj_8L{-YArNhtriC<jK}T% z8?Q4SEn{_1DW7oXRdZR*`T#{+w%>l8lFQSSTs|7%7-YRl%jKh^R6Qh1gNppC?vB%( zfwh6q4g`N|Z2%#PG8e)7YffP<5zcUir9nh;mnK}Nn=nC^1}t9~$xG$?m$7i*yVe2- zqM`{#&xJvVRav-M;yaxtZ?bgaSKj<UE;ecK_*g>47llwwKqIhT!BK?pMH=3NV9A=M zzQ@YooQndzbm+A*z{r2bg+V!SG!(Hq>%xE`TId>oJ_~}UrT*}OKo$eSo*^M+jE-W- zQ-Gf{EC_Hd?bCultp)U|;4BM*k}<S|1;K`NuBTZLl&Ji!<Q%zL3xZ{G&w{|K^3J#* zNCA3c7X&GPtp!2aDGLJe#5wnR08-q0EzrY0K>vy`oFPv~76i!i>#g0pJJfn$tk+g) z5o8gbWt|X_x1q;($GIcR0j#t=pG*DOYP}Fy5Xe4yOmu2N0OYYC7|&YZj0*w;m%^g2 zibx;3BnjJ><>BAUYC$uUQ@&68E_L&+<_A1xX<JxCg8<W>%Yiw<1B3=&2oF%p0TvQx zS`NIW=|5um5_Ck%hZDSJO`F<rV=V-TgwP>Wzm_uyA<mhV29XhZMnWK&QxYNg3&l=t z5&Y^X!9Ofio05}UigaD1DOjw8e+oT6GgXUFvyi1@`I@fo2FM-+5gkmJWI`CHD8h)A zMku+I;4(GJ4Nf75N@^4NevhT_X+?Jb6d@I7EOa12(S|6owWfBnCAQvUm+#*7k9O6J zyRNgVcHA`)!*sw?TQ2e|VlQ@4CFEv}w@X{HCQw|is<=uMIC5Vo(z$RSaQ*owmr#mD z_v-I_&HBy_)_11ag#%<w(bZ11s#Q;^b}9#)!Uf8Nn_KF!vxu$4f?xnT5L-JQW8<^Z z4<U0Z=~HA^G%_X{9b_^kx$Z)8MOd4Qy68C`XuVIPMRhG5PMy}_oRs0KmWnDUhXgx9 zOR#KukZs@fse!BMq>^5h7`vxIRrAWeUCuYQg=u&tz0fqguC@hXx&5#_(K({UF$$Kw zBQbXoUsd2;OL7%yb+csEi$wcDtRNdB!;aa16)k9Ko4(~ruBF(dN*BDPh0d@H%f5^g zvX8Zaj(4VRr@V-(RVJb>c-(%JM{OdNwjV@r6|GbI$5bM|GswWDNTsp*7aEh>F7a@~ zLaT|;ig2q{5bD$iC1|pAN|@!VgmfyMgxj~P2fd4tPlcYaj{8Tf_?G<_dJ`kx%5#=; z>hW5J5|9XCPK(H=*85-UQGYM_))WKb5+P1PCm>E7KD?A8aGy-GbQMUOGtaH1z<~v- zbV~dv3=z2)B8-n9hkFvtP_PoDXsBTc0G!k(PrpKDs1~i}(mkwl8V*P?T!xB_G`R!u z)mueI4tb;b_hk0ee^9@%pZc$KzB;!%a3FDrn7VG_wN86D^`N=|uGk3E+MsLfXuwFR zoA8HGJ)3Zd5ARh?$do&2!d@EA{-RJ(zBI#=7Sn`Y^wx_`UOD~{LxXLJXyQQ=OA}vf z_{7g6Q}pIm<QZ??4ifi0i=uVZ<LJmpxLm<CEQ7Cu)G7xJqPjv!@9@|@vz2Md8y$;C z-j<T3ObMOi;|-K8NYmqc%AjneZbvgC!u1_mxEAF*=Nq$xKZ8sgrYT6OLIqK{3k{CS zreQL6Mj7=~suU|!KZa}?(OS!5x(V__gbSsvZZKbHN0A%RCRmi@yMn(lYvG1iQBV_$ z(SmrjRpu+r$H3BM%@8Mu20uZwrCC<GAb1-TyKOU~A<DhB)ZcwYDs3D02LZuNIprFa zH!Ywo)@l?5F{+K+_HE{iIS~8>9p<L+T6I%+^@{41Z`P_}d^jh_&w_WAsucBTGwRV= zwyP6bD|c&_uUzXtV}uP$`xwPfkshuTd82V@y<UKdb~5@L_`68t4K3}+`c>ZOt$q~i zI_k%7$X>iCK4<%urpwy#%-F1Gfz~!!Fdl*L1;`UihR52QWXBGU0%}RA7LwX~PeA-v z0^-l|Gp7VY4_8`ZINzv5vsQ<OP3gkOm2gli7LQpD26`Xu6mcTDDMuEL<I$mIQeyIV z1V=GOoE#A!hkx0iZ2#<&{v?F~?!1uOe=X;(C*dMr<@HZeD^h=wLLP5kjo0tWbo<`+ z`mbH>M$474Q^obm&Zy>;T6adP%KOw^n&k3iG<$s8@npM<Ja@+DQZCJ#@wvzM7DqFy zavw<E@a&Ak9^c#9R$i;*rDSI`xP6t`8O`ov%Hk1xXmnhyFsP4F{k<)O*<HHcHJlZT zG?YT}Ryy`#(QV5KYO>HBHi(dXgG5y(1tD0-1I0);mO(2?r<^v0;+DiUR<EcB#R@=T z5Nq)Gs%SHn3{}MwAzzE^=;3IrXe<)dVtSBXvL-6|W~kDs4c8A)%F%s&A6s|Wf`)xZ zS<r$AQ-aak%;(yVBWpm_7ajzwi72J8Ita~eHb;Pln*=i_Xc++qL>(btZDNi$YxbZF z+JjV5AXcILWe1@F?Z_b`h(h1k3w`VA1)ay(1bx@E)tJwOQTLhCpzd2d4w{Ndzmn5p zz5)(EgA5SC@J$+Z#cGlRpD$RjgTON^Mg(hf!P@)-mVzm49{~Rb3xAE`A9L1IKXkb~ zkD#yUj|TV9ANAtDynj)T=P~?U@LMJ#-RRynYhAtbhi~JlqKpff!mtGcLGbYy7f=Z= z%{(vT0&mBxCcM5qxBx9@2_<#|sEDteD<+6zfb;UPGb?Rksu-)b1CLePfydr2i0%^a z#WDW@elpqbyPpjj6WV1b_^?D@`LS9!5OhG?-bPCFqZ<>&5D3k$P#k##ddk4)=EKO; zn4{1OldB}iRZ^WukOB#afU*Hu^8qbPLQ={AYs=37^3Mz|YXK6sXhL=h=~r|y%m7|V zrFIy=Ca}$X1t@wY0zffFHR-n6+M3%Alo01<5ar&cyeSWEecgg3>kab-0E&FJNW(bZ zVyYMzaiJ*=E>{#4dK!*T$G9$OHq@!!+!D5+r))q{3kLI~eX=Ht@ce2SQ?eGKp=UL5 z9|e?hPE@8)%i3Yk)4W=%kd8<9?q%X}TB}B^a1r`VRM8KOl~aHi*AeYaVfe-g%jm|c zx_IOefdQGa8|7}&;2u*pnxiX5%d|~sZdUsKKrLQg8mHe=Q)bPR!f6<B{<0=``+oj6 zTNsV9ybbTLHWQ6=rCACluW4&Ep9^F2bCJo=#!by)8Ox+0=5wI%bK+vA7<G8)!)#c_ zTf8`bI9?g8V1+4yEE_?V^FWXrMXrrTC1WTIk!Oj+8W52aDY6QaX(M`{x`#8Woo}M$ zUIb9)^1q}EBHo1ySr>3VpN;0LhB{yMT#3ti=KhB>DxGfz&Qz9BTd~TWMoITgeJ-9U z#UJc*@f<0>s;|XMRx^AQE)j2>KEJdvTv*-|f1N&byQECNR3d&neg0B|^^!RG^!cSY z*sQb+@v`qPA*QRBZtBlVnbu1W_UEM>>!nrwd1<xv($D(y(njm0H~aHaS-7wa;eHZ* zncN1-#VnujCse2eA_!W|?FNTrhaf1m^E9{wa?MAkDdGgkv*M8|CxY?0aVT0eQ^5^C z?gvlblW5VLNEgEGXBpb}_V4Oz`*-!d{kz=K{<GqLxc$4_Ia2g&xF0FnSG<qDu+hRq zL3cHxXCKU6VSLZrPickp=X#-mn!^)-u(AN|DW)b7Q!?R-VqsoB7U`8=Jh%8ADZ<I9 z(L>>*Y^n}nctUM}AX1bop3B5;I9^mR98ctB@M_UKbS%V_T4bb~bwr-xX1v+55b|AQ zOfjn#9yas42xAjsojUK}HuO&ikyk=k97A~WbhVgOUC0UZ4kGP%4zdZW3rVJ{(G0L> zw5Dr2`^aHixiGVNUF`N^AAeOo&S*HL)jiZ<);#n%@m&LE%_EqB2~gGYSc7Riw%H6U zgt>O59(L03{4N}OLZ4cnn0gS+9UtEmLa6ORgEsGA1$*FW!PJ9z*jpd3>B1yCk5;4T z!YoDHn;N;n<;Z3Raz8a+;ce7jxE_&FgHulp4XS$N5DL=+X5%AhsU8ZLa~GDIa~~rb zA}X*t8dvvNrwmyt<C4Jt>@<Gv$mHkooYqUg=LG)A3@suvwCM31P#Sl;t`Bf0k{z)7 zQ4^pa%R&2A*o7LgfaW!V+;#KYKyvy%|A4MOwCfstPNk+@4^h*uudC{d$dqq}iX^k> z>p4h#3J6eU0R-$A0SM9+5Tq+0NFOQNwHAcoChRq<__=b<j`%zG@ZY6Bx%)*Gg$qK1 zh)qgu^-n{Xi5RsN(697Ezz(V_X^>%&2;Mgulyk6Ee=q;w$ohIoibTP98PHa8VOUKM z^u{WTNGhT53T|>(TZ;}K`<ja43KFEbef!Cg{b?%}CtdHi|2OrCEa>(HJQ)?)89S8< zm`)ED$?jSa>fZC)Z$dTX=2)(b3SPUB=+3K@(CA83rwZXaBro&m+VP^BVaA5yw^x9S zUZZrsmF9~m#L*Xv;&>00Upqmm#^>z|NKtTPwASv(`cFjtT09I|J0*p>WCU6pOWyxs zGQ-+iV=R^KK1I^UF3IN#mVKsl)SLF<Qz1?z@wI$%f_PZ8R`L!4ma-S(7bxC`;+81N zCNv3lKIMEv2h)^#cA1`fW-+{$cyZru=2xvJK6`Wv2XV!>cgPRE6!GmJ%TGOeG#}27 zqnmN^7}1PVM%0@S)Zbqgb|;)YNU*jo^^PP_E_>?r1Jy3=Pw3$RR3mw`TrKnAWVy$D zn5^=Y`4D%<9{z+K1qTLdXTgrVPLO{yBiAsHA!xT>hqs_|s!-m7AXuA-;rRApubv<X ze5_WKiIvAtZy9aO0bYI#Gfp0e*UTLfHOZ)}2ehnE$?DJ*s*z{dP3BsnI;ZJL#SqD` z-i$?%GAF8Umg2!EAE3;oQvXDAO*?kw<)CYt$mIg^qNVCBo1fVyj_R<P%Cb!82Hg@L zIoaqp>^iNw{@}p~n)kx520jLWj!-zJUEj{Q^wLW%(YB&IRp>H=6_m%%dWhMJEXH<# zJXASsh(g62DL84cg1s0I2oztP;kB25o%lYG*ARSYL>xaX#6UWBY|)8pVM5B|SbWFG z#SKeoaV`20R+ef<s|pYp%_g=Ru}O&qtE!eo6=`7I&4wEPz@R~chDfueX*UiA`bP*Z z<9VZ(+p-8hEbH!lf~}jQj!ZS$k;yE@pG&ILp2FhD^n&&l*2{N^!^Q$nc?CluE$1&> zn96|sppm<*42Z&qNn3%`g7A>p(!N7nnV8C2*>mPtCRkF~E_U0(b{ta*mH}af?Vr+8 z@dEA!bDEpP8@7kzlER{85Q0LMka#g!&P&N3CQ=(tOz$|P1yi8`o5CJUo1$QSAZ+H@ z#)zXAgGZi#SQRvYqMfPb)IqoE>&!qiL@T#V=!Q&&G)v%4;_iv&*o>-$1#@tXQurcq z6`4`qM1icM!v#<uBy_`zS1d+tD^5b>j1)JLN%9k(`E@uA4P%3n!jV|Baf*O<Z#+4( zHdj!@@*vG*5v!2G!Uy3sWr7Q$gAh}&HVKO<IJ1&qp<H8w<CDxOi5h=l7I1{}Y_$bo zp%S`er<pJwkpdDGFCk1lhf<J?L!PQ7mI-f=Vrw0n#Zt&?7UqLt0=<OhKC%;C#=t5w z1#i1%ZAI2BNWDH>UYAD=0<91v{M+G0wE(}^A#q6u5uVY!NMpkBqJbu?i1&u@8YE*y z5qqQgwNE82l3vo~{Mc_Gby!ja^OI+^P-+Jb$HMNElb)r%jIb{tZ)lW#RSy8_VnDqC z>=l&^PztpKPhnFK0X*X@HY1eau*`y`x;h4`MU1Y($H2%zwa7&ppQR$bI9gOKuXggP zW^51zAadDmKyLaq(h6Z_FYJR-$G0oyg(Wq<o&5pv?MEVC7Y1i`ECZGY2@f-x;g+Z8 zVX6O=K%IEN{6O&ObUbVw4}^z3AXkfr705k2%p+Ij4-X%U@~{rbrs4!4Fl!CY@hL$= z{Nh8+VuASpx>eAQ)lhrGi^><&7ZYqDK-C!Lc9g+mG0g1LzG;uJrMv?)6Ah9=$S_~x z-L}2Las=}6UtnayPS>DG*moYjX!y!_JqO~dI3d3D8tIe{6bEgTZER*75oLI#Fg#&s z<Bemr=sp95OKTG~gF;{hltR019F7pVKT+y=vOzMZ$WBx2i-}QADQql_XV+4e0{kFH zFMXfAsJj@A!d(Kjg-h#H&2Yy6ZJ0_!T$gM1S-5nMdX%?;7wk7^jE}+hjr1DGmURys z8Ij;mhx<{)&(0GS<9*L&`*tey=LdbG!XDuyMfOW#aQG`c6+K&C83=nni5p#(vjGJm zte_m>cosH*>X4Ctqb1Umq`~|syyMW+N&#unXuEB7Zd*uD51~YMp>(w3tZ!j=AXd^; zObP53mZY(pQQ=cxQSF-+!FFgS&6q-a8z>jXc7{N_7ZiS%2@eDfAtC#)Nx+lDA42&; z%&XmjVwzPO843YuL1<A}qLkOC$|jijS{8b^K^Wq(AQVH<4iIwObAmjUg!@~$S0p09 zcVhe^w6MBJ4MHu05OIp=fv!^fKEqcbfH+iyQSppG`UKhcS3-;6lVri|nm+<zBF?>L zspgSY7JnSGIi6;;v`zkxlgxuSMkqWf&DpFxBrJS6WaTc99V*J@7Xi6#Ka~r^Z9j?# z`K)nFIXxVNzQy=ae2?mdb%HhpTD*J@kQ^o`prBcRzamyAd+J_@@Gc16bIE&q1Pc^S zOeD2WA=1*r<PAh9fVwF}4ivOQ$O?CjR2V_Iddh(%H^_6v356WX(Ia7Y_!jyD;VAi- z@5GWh$%W+x>wirH9{$Si->{Qe-^Mw*2Ozz&rHZ9#J0e%TV@(%>*I3W8q86WlqU+=Z zJ2#NgrTgN|&U7jZ70t-x=aDq=B8ca1c23FcnSqwXlG%AIM~7Fizj>-Yq3pW(YA<qY zhuVwW^lg<&u2iXabn2!~y-!)EhQ6y(Ki8>Cbo9mbI(6`E_3S%3bxiMl&e5s5I`wR} zP7V1`rGBDQ<Myjmkxt#NV?Qp?sg6eV><*op*``u!b?UvtvG2{_r&6o+vlhYWQpXCN zYTc`zEz_x|^girGI`y*(^{i5-o@rL8a-F(Uf8kF$wa!$}Ue&4BBxZD}<7J)l=+ytK zQ%~yDFLY{eP?h{Uow`Z)Ax)>|>MzK7O3cbkU2>#Oy{B7tsZI^l&r(Q578;g90a%)c zKgwL}12tJF2d{L#R?gMa{cxZm(fKBPY-xQwjxLSHkSc=+@P7LY!&Vk(Mq9G<a{we5 z5T)5{Hp}896T-HDlgw~}F!A_AJirV*872JN@WYp7bVEI%38=;R|JXYh_^7Ho@h6!H z1PD&hpi!|#8@jQnyJ@2>HoBb)6TJg78hjP%D=`Ym`T$DO5(<Ghre?g1Vr#d$+wN+& zyQ}-}{<Z(MzSg#xBtsr3Btemwq6tzvAu2&d5?=HF{?55Gd4N1x``G>e;gdV}oO|xM z=kYtg*ZG~_PrXk)s!R!GO62Z*xqK~qq?O{;0_#Am`oygaXGkGAD#Bg1>zQOv=<9ft zLyf{2QE%CBk+s1LU7uV(frCCSGZv1n!Pee%>?6i@O+oBsWiOBaCtv7t_LaAop?S$> z-fKnHrq8C}V5ELRG+!a}H+e&au6sqhO2LQ9Ecpn#@~ena7ii8NZ8c=K4|$GIdR}YD zusU(kA@OS9C3e3X*fCUdYiM@Nm)8`I^5tt{Y;qGxk29;vs9?P~A;1+ucxBDpWVyd> zS~5{^Kpt|2jXgVgAks3yl*EJs)mi`I?SyFGh}F$jU&gRHzx9Ioh`)?LHw~-3CZF)- z^{}OjNq{e}!S&2!T*f%h$_q0~$&T=oNo+DzP7M#8J2RQPRM~%^fbXp2&$ib4zMRZR zsAB{z(s>wTIyN#Hz>I8EJrF_~l#b)5FYu12aow>Zt5asFm>~cy!CBx56~CxTpQCs{ z;dS0BJ%1bScy<iA9uOZ<GNTI&Mn??zMH`xJ=IxPT$_qo0VX%mP6!$Z8(Lr1zc7#5s zMs1Y;k_ZI(6fV9~gms5=DcQ<MZHQD1Lsi(v8eWVl@*s@m$|dM6dpJ8X@ZNL8SmJ>E zTCM`80>&lKz-6L+T#U`l!4|A%50Xpq&Vd0r(+B0P-uk&TTymtzR{2CV>;X`7x@ZPy zD(F+%51cIEmj0V%5eaKpOpp_AVR-d5X6UO-48X<2yy?qpWs#*|Pr=}&pT@;=T5?{P z-`1l~5v3{NNoinyJoPEc{Zq3{Q3(L)9#J2><g>a=rs&>g>EbiVDJf=XezFm3GwPGX z?NVrNa{ndZu(&$$r9WtWohxvl*H?aGeNB-yXj)CO8uMB{n^u2{thDF{G{|%$7T0Sh zvbboa?oXw|^$dFuDJeLZ6n{?1t_L1f9c*}>Ccv%iZfkyP+4-&VY|<)o6nx+hOy&$I zL9RK79pCc($p8dLMwcG|haKD^IZkpKv1r-qObX#!d(ZNYSw>;FrpZ^<O%yL*;p?ma z+MmbyZ|7-*)Kcc+343p*%$F2PNyB9jSlEqoE=<CAjVu}BFN!lQV1s~dtO;wg9ec5_ zx271m(-)fOGV>s-#mT;qdrt^oQxa;ENQn|2QS7g9y#pd$HY7-5iFc3OdIy_p5zWQr z(V9%6X4&pJwy1Dqjh@2ST%orZ7IA;$x~H2vd~azSTGpY~TUpd!)^0km1rnSZN<T|G z#B!c#7KX(U)?QcO5ndDbLAge4?^i~}Bx@ihnZz2K7bDh~7YnAch8JWGyu^j49~|5Z z;i4?Gbeb6|KhGCh`uWKICG)3o@iOj1;&w+&68eYmC&YvE5TVmgktBlnlKB)~lYW6D z(L+!W(DAyBK%?6vIvDtE)&G%j^SQFHz_-$N&IZyG&{Vcb2%(vR`a*OguhU-Nu4mFd zYsQ!zM`Cu~8QC4j|J5}_#8mSG{swc)E|3Jqthvrd<U6m`YUZ_jAr^UC;z3Y{!oN!$ zv2UY4OVUr3NjX(+eWwn}{oFz6r*E42$($x}&6Ix?VzIX6Z8i#rT_NEz0vy}Cr<WTw zIgnRoNjg<F=qr0o4L+Uu6vy&Y2p2a2!`ica5-!e^aB=^@YktQT{4{+^WvUo*b!67| zsp*;+YYVhB#KLqBztnkQuZ5A=MyWb)%c%9is9!rxrUKb!&(LHwJ*P4Ob0zQEY1uLj zzEd+KM`q~S$!cPJr)En|zUt+vxD#u12U;MIjRFFN8&*AOPY%<hC#-C<nj?vc$29$o zJxx$WHB;`S(d#MQ@!7G<X<*cZ!RhpC?r=YGT1fS%;Y<Bcrw(b4I`8S!xw_<_PMxPq z?$W7$(NTAIk{Vg9#BVzmzX6*e9V_-gv*0&yoj8`?aB*_Z#)p4p<3kt?I1Km<AL!89 z7+oi>dq&V8Y`nN*`*<D${1JEu+|dp0fJFnhS55UWm9QZ<^uI}OS$1F-cRZkLjThr; zZ)jcyM`Ss5>&-h5huaQ?Ph_TDpgUQSJ{OjE2SFw>$CK0#=6rE%@~X8luf1@KEA%_Y zO+o4#Y5>{33C&S}ItyrGOGg0J6ga#xbkRfs)GI^j=h`sY?+OT__B!@c;B*^$ce?^& z{5=j(ttNN}fzx)cf>W9feUwFY?W7FBed&`}S_ip+7%o9vJLt{OPqP&mx+p}RKrC<M zt4>`)iaa}!kKv*lP*u7;1*eb8bi&=KEh%~-K<YLHp=>b=H?ICGHlS$tnSL8iJ>XR6 zb;>w&KcHqqLy_`D71-}w^#!f}#*z#VJ)r9)Gww$@v?WcPUOpyHC?5-%&Pe~k9zo?Z z>T!VeN?~K=spu8*I{YDLy*L-_|JDA(vC+^8eBz%A^}gn@BAjN;gRt@uZ^(U?pJPdi zjUxZDPm>Sh@y**vhz;99RG9dN=wIHEMkJ?<z%J-q50bKSleaY+!B9VhFrt=$+i_1I zPYU!)syv+s+x3G}y@7@-i8U%8<s0Al0nWNoqdz@(IHq|Yn;8;sU9=a5=mK%4EKL)o zs|Tgg$|b4ac^|?}2mV9<Ue?HOV1JrxT>#j?MT0lo?*Mu2+ZM_kZBI;Zr2X=F7(F^w zp2p5B2KnXa9ZPy6edWk3cQ&)#i#*b^n=$W7r32{O`<K1%Kpy@rY~UMStAS3y5{N=; z&$12&d?BYGa3!&S4T14Ehw%5RPnX5}MDt<rWRI5SGv5pBX`z3!RR07!Ui{u3)u#(L z@JnA-m5=YodYO&mv>yTeF1F~GbvT)!?eUiObLPLlXM@tM4x?0~^QeL)nk|ieQZ+Us z-dJg%c1I?A6&IQ;TxreXajjA3i^Xt~fR14Jo`}HaPl3(upC+2v`DPcNY?Rf6+Se|^ zyyGUlfi6=t()lJa1O`MIo}?P{le#X~gC8EykZY=VDspTlu%EaHDR^&SxCnrB%xx^) z&{Tj0ZM^~lZegm!y^;s9cd-Ao<gz8()o`E3#9<WCT~5Rk03BE^Da{8Ey!k-JAdnHI zFkvTPpGqj&O-X^34vI8jD!;IpZG9qj-L)gK@XlRWO3q)Z&cQ50<@jW|QH=ehcPZru zDc?H^*7W;rCGSK!?|MDb$*XPH`H9Z1wg+uma?i%dGOXxodzvJ{>@6N5fk>C!!@>N; z4S?n=ET{@W3jK@G4RHg8BNOYpUXrh>r?1LWyrA@m(yj*|IE$ksUgB?qWOPI-79*Wh zEbB@mi<4oCQTr`>O<o$}W~-{QL#m9bFR%>wK>y-id0Dkg8Z*eds{T%@Qym~f9(1sF zRJ$r@4$q|3uc<marA}$JR3{H<rPQgqzDb%XsRp@p@nS0#Ht{D<M4GbuzE$3%Wc9KR zRV%&NqZ%%QLhIu#4NE=PVMv2kuF0UH2!FC+z%cJw+$y=IWH<AMPG!re$QV{Hqpk7W ze0#)YcoUg!zQvH~zSyr91K~(l{c8oNU3Cv@OJ-mX8~`YCRXa(!zen&ewOVHrR~WbV zvNT4ac+{u(habLsva(yTwE)Qf9rA#1yRtDkT(X@MsupwveK`2*Th_sDrP$dl6W7Lg zNXF&g2!28xdH1acJyr_tcexF-<@pjizy_r<Rw_hs<FiMcGFRUnMRQFMXM0;`57M;K z3-%4~pweE~uW3i5IT^)}1N0hcPD$K3)LmUyk?TtKBXIhRvJm-=52n~%kw(*nc*}<| ztLZzmLpgdMX|paPyRE||Xeq@iNBsM!-hzqfEsmklcis+$7ti#=t@OH&ULQiVC$!i| z&$Wmv^*Kj1K#!V?Z=x<ytaLNLO3gjK4&5I0ePvFg6kK15f_M6d7=fCOQFA9>)J>M= zjucP(_~KH2u8avg93wBh2FvyF^-q>IK^sQO|NAk@<1ci@KvGgc7t)|})tQ*J2O6F5 z9qF~QWYTLxvz<m^L(T7SLRxtSPd#~!1zrA7dM#pMtr?qX`NuHGiXSZ&NGUy7RM4fh zJW{o5-8V%W054c#gub3EOli3{RGp@X;}OJv@7tn*fuABwx*1xNfsE&jyQ>kVPWC*O zTzXdM^20DhX4!_o1}Dv3a*+js?9B{t-R<P6$oddQX}iHXlIZS5f5XJ|qx$ab-C<`+ z#zCy2YHk6%Md>YPyLk!pr#9l%Y07S;FYoMqYvd(WOuZ0Z{-zAtn`2+1LR_c~9p%kL zd5VA|<#T;%zU)uROR8eg(U1D394zEZeFt}hF6U5f&EgN49M=O|_3pZGPMQr76_Zj( zmJ0_<u-=Z!PpOFW9F$A1MN$kfeE}9>@eR!389qcMxo>*OEh@VbW)3>)!=Od9bi>U? z_1)fsdKT|ivnVIALJLv6R_3f=I-P13$CxbI^0k`38;+R2i_U`DvQyS}D;6Gqw>5P6 z0cMb?lu5kQB2wntI4S*2B>Z<Um>)rm?}$czD$z4PYK{yq!pxweCmiX2Gj5`PP@l$+ z{8Z+yn{vZ7WzmQl<1in<6D9z$h-m=(_r0m@OS&0zHbwEe#fBFr+bMC7*}oObK^fuj zt<B1V=AK0Wj4&|J6WKBA#*3DIfsfqrj(&@sP-kSAS37TojDIAPBon#_MEfQym{-{@ zqbQ$=R2*!JRM*V=P+lK23I|;ebjK$zUrnBHlE{!UZ!1LlTM8v%CXPOZ_c3iHw=jh_ z&Q()bGD_8_5ZuUmG!8OJu&8=&g-gXOBFyG<bxDh!+CE5)tjiKVQ>)jd5nAaS<Ntv9 z^oR6(vI0LB;F5U{Ob<th%U=s!aUjql(?~AjOdsco_YC*K79lze4`Pl&439mFAutCy zEWs<bC{c4wl>PJ$C{w%aRyh$mWf|1Wc?aaq20AX~_AF+vj}wGE0s>0dNae9wIPe4N zRnge}hCx5bT&wY2Mz;#lB+r#o6N&XuqB(TEOva5V2<D#A%Ob;@SQeUCaK(nx^?>LU zMDEToEaRX*H2<Jd5V2PLdEJZ~M~Cy;@T4v7@61rO8o>B@l*_I3Gt`0D(@^?2!PIbL zCGY7R?%sgTvR`YHG3eyXBsB0JOU|UL4TkGkC~AizT)QKN_8t`yDmmOo$7=gjy0(ux zVvf!tM{7ajOm35mg0K-xF#`keEqCbQxro3Hq9hA6XN=OOyo5bU_1y~(;-g>fTW|)X zN7RPSRrs=A%P5FwY0Iza7BetRm$Vj@c{vFDAM8PlRU$0n?b4o@cuU?0&Z>mcwBj!r zbaX%Cem~-@1sE3*OJoei6nU9YzkG3~q6fI<iGT0A&5tiTnEoBR{`7~W>fW(c2S-)? zJ`pTz{FYr*(1VeXs@4#VPX2#6>5Bk58@WcH$%(79I_X|$&LL9TA};;=vf9%pE8Xg3 zqi|bIm(tD@6>byc+Ej!=s-laT_bJ*KXwH_Ec@N)ZShMxYRQUB|zJK5k{r==J-v?^b zu!K-x+%EH%*DeE~ch691I?-pE!Ao<*CpH*<$cyh)VEAAherH>mXIPC2Dg`u92v*<i zv|%~!C|k^*tM8tTcv13FL~~7tI_;aqYGsFuT+gC;Z1Xr8G>}@21XU2275I$R?obfh z>T$Gt09BxwbWuV0@}TGRgI)!;m4K~jT?*7HEwA(-(45BnUc<ukTivRIe@_QNMd$oG z0<P*8yH)h@pfB(B__~z-aFAJlBWAU$#ge2OAgeO{H0eu<TCAF*0(~J;z}@kn28C@{ zHJP5U4#SRCyC1Zh){iv(ilFl}S#VVk$T}NYW2&A1MmufABG077dy!n}g@i$%t=6!a zw_odvJeKned@aaV)LL)V4dz2KWYSjOX^LMo1-%@l#a#x|C+~V_E1S8};vF*bo`SX_ zM~AMM!EP@KQj==3C19SW+TG;72KwQ(m*hN}I&&^fH4^K`2+cX57Ld5SY819jv1|9! z6zIgB-OhU$K5YAiDT2pDDUcpu0oAk!E<Q`MD4ddpJyE#0R@jsBImt<Jq;%x>+kZ3e z`-eX1?+?x%`9AAs0o&loU?tfBUlbln^|+qJNkeix`AE1o!!xBr(@%<~6tu-3X#y+- z;I4#OL(NqPF^LS{JtR|yE!)x<sihxjB<o+aUhPjgg`VEi94_sNqJoJ$hF%37;hx{Z z$sFuK;Q1ge(*0X#?bk()KM1oT!hYX?><+JS))ERwIQU<HA1hC%K95rN+o<ZE=&lcK zwVW^>N2svSpm*ySnRA&1Qd2%q76%@kx=^S7R;RAgsaZO;OsBq}Q**Q($mevbPNzPj zQ~Pu(Tc^&{-#bgEZqT*-m^dPQ{jOp4^?%Z-H+AX}ojOnJ_P?W3-_@ygI+dz5{omH9 z*K}&FPF0Im9(xX*I$IR*!PH8f3hC6{I(4pYOSw*UeyB>`s#D+9p8IdqsaN&x!Sy;d zQAZ#(-Kr1I>pH)nQwOxo#tfahOQ$C2)UOBB7Y4tg-s{x0yslHH=~OeR(F9ZUX~6|q zM03I-_A&5^$1*Nbwi{0wEa7FSu&WoC*1{5Cap^WLE5v=rf_lry@|H!lQ^m6L&R>|3 z)U19|;CJe_P)~tG%Ru{D!#&`5@ikhvcG(U5#y3%y<On}_XCMPk;1$#>!ylr1c}0wi z-fRwce~9$`3jF-?&TN2l2W4IzDbpP8j6d(;D2*=jx(XFPEJ~%V&V06B1&(p}5hm=7 zD^!MeQQ3}LYdjB+BwIwti&kd9u;yl%uBSRp$7=+KA$mrq>zQ`LbyZt^dcGYJr@Q|% zylj?vv-fQ)=)yx_xHsF}C*A_Fa4u-$_fC<0TGdfv<@UhpAXBWZRxY`C0T^fB>&<0n zp1&ihdCs)+`xz_lQ`CKm9;Q6RB;N1{`;H(5+j+sYImKKdt!O4^QiW=7V(4bb(0Ld- zH1HV64}VCIpe3IBGGr7FvE{slvD)(?CUX5Bf<9H5z7LxzGvmI*Q_ds3(hMSb1#5-= z5BI8JY!3H*_^u?yu<aF8g4I30!@BJi5s8?Z;pJUw64X<Ba=Hh0AsM|ARyEm`jC<dB zrTtj%H%2<|*rxR@iHUPPkRhz5SgUbSgMnP5`EdpbnJ0rQ<Ia^?APSRDW_dMJ>m&AM z1HV^>X58n)Nv!C^u#zaUhDXgmyKU?TLC?=NtSQJSPQ#j=;dMQ=mA}mb3yw|!2Oy(k zG-Naa8CVTC^D%$mgR6e!v-Agigrby>#_jsVF~N9S^&1`&!@JQDXY~4mohr{#0oC*( zwC1x0yIoJsX9+GeebzFTU`2`L%_3^oJZwWoEk*Zp0Ezho9yQALyY7u@Fk(~)=)waA zN!y`f7WuBg+Z~w-1n<a9X)c>|{vIHaYl_+@!Qp8VuM|JRWkEd`MwP1uz=zrP*ZgjS zL2LwpwL0NEZmi>g0h>|Zmg{ZbR^a!xhBsgcVI9azz}tHQTyG#SZ(&8Vnt`SdxC|hk zp*s3@<aw|Fc^?5`)gl0M_(N*^yp;dx0XV_o4__8A;%rjS%u{Jm<naS&nG?Bv0B59o zU;z75sp-iBfN$a<ue^z6DdwUF8b)Q??=%5{ty<XJ>deBXEUmE7^}s2kAW)4)?v3hn zorcB)1ac6-SGd^~!h#Xldr^VGRUzjC9&uj$-md_PwK~AkqV<NAW>}fI{*W7Zo0AEw zDWn4vO*}T!vB?bggMr#z&tSZBRU>eACh<;<VDUjdu&PmDO<=755SJorUM90_Se#YF z7^=xD(<#>!<$OZT=>wEwmM(i0`zYZaw)3k|2&20s=i73<^V>H5?Hm3O$@vwO;1xaF zn)|w$zTsC8)NKUJ49g@bG@K~f*QrbCcPQbbwxglrEYL9#gziz;xMlTMMvaQVRa{<R zaK6o;fQ+|lWZb2ZaeIAwR#DLTZH16qRuOYudo*B`<>LP1h?N#U6~cOx2z3dPr{yW1 zWt6bMEH9HW=OTaEHJ@WJb6ih_%||#Wv=%1aP{Vg86Kd2BC#?neL$}EK5ZiIiX9tFz zRjZL#IE=0K&PsvSYEgxY&x8KGAj_4qmDYfi(dhIQwzvYgYoU`#M&6v<YO%OY;cYP% zdL1J$QJ|J~8V(V0@>;`v8B>t*k5(Hsef^hOI8<UNVrfv!2}6H3B&s#H*MW|^WD7M; zG_8HQNvbtCji)tE;{`EQ^X3iWg3V!u-%FuF({;rMX5B}XcPsj$+J}kEuH?#z%;W1R z1Nmm*tKZCww^*vywG5mg7J%4~F$AyEo951B;{`gIr29dn-qBqd-3kKZef|5kjRLZ? zh-7ZvDKRP$(YL?uy~En34E~u-Pj4>asjAbQ+T9Y`F2xzU!A>4<RQ26PdJ*0vq`%li z;VUg%3gHlaBrrd<`xWL*G0L(`jB1%8q*Yg)$g_-ixNo9y$=n>*gJSalGjLJ3FU2ft z^M_{C`wN>~f&WGJh&_p8b`A?_D`A_?5xBJ`8(0@IS!x!=TCo4n&bo#*zeCBgXkWMM z*Y*}k!XL(~?S!XgJGPV)#DuBseidYf$DKX<!CHMEHZbNwxvO8{y`_Cqg%E?Sbh4Y| z$~CzHR%k6bB7Mi((!hHpddWZ<h7Qr288)pBRJ=I@#P%{sToi%~ET@0riH9}+`Xd5P zkore$fxJ$q-qlvr-_WUBG{0OzD!zc+*Ifghy4JYPxE?=mp`YZm3U^xj&MY=!O)K@{ z3#qgKma=XwpkP`*d@Mx-(;?IP<rCcbtQ|h<7f*A?`Cgy(pU-iJ(m#j~edD>!@<z~? zv%n1bpH|>4YO-Q62U#Kh*WJ;gC%}5HXK*cl-LGBGoZ=1a7{rkAT>hq@tP+pyxrEEi zHah#oEq}Rbd2-yYXEHpF*NqJmVn*jcXm)Z%XWd+Z(WcI*>zP3@9tK`Jhp3~WV#CRX zZoM+uYOmO!LSYZ3<+U0W4JsD4+}DPk=fn1elNw^Ns?_lCgaKE0_}tn)v68I~3j<2& zvugRNzcM9szl3o;ZU9$`I{bAzUH5L5*D=G*aXoXI>ls(9(QtGc8;X$9!=1Yf$3}Y7 zsKe2A_H*B6RD@5qYyM=k92ISeFyBT+>j}sCF0wmh_wWSz<#$-WXb@l^GTH?{XFnd! ze3;u8b24Oye+3@?ll0BHoI%QYLe<ISKAh7_f*X86>6;(tNHygABuBuEo1f<h407{g z&U$VFhtGGdb4U(s^{-x%h#s>sJSlc#%j%Y30NDbAvy9L!4q4yg(A?yNZ}WMO%QU&( zn1(PfK6MTDkCNqjXEHx$_Oi`zUhm;%!@xJtlf7?>7yxrUX*Uad{(vmvfi{?zp4Zq= zdY>$IB-$jnh;|zE8Ye7%haL9*$fLdR+uq%cTzX$;>i}<@i86gdyCT6}qHp(#o6RtW z2UNLoO^RHwuzRQ%YE5=OXFMg&8qIX8N5ynDCz;EQ$tqXU7fD*0u3Ihbm!_*0k81x3 zG+i1=XU4XlP%(DTR7dFau6VPhNuXfeb~f3i+0v_#rmGH_#lA9Z&bqv1oBc3G4lqOX z-D{Yzx}BA0iw`$;B(5bKC55EK%U;Jz(U*BHA!l=qK#O{u9T->}Xd!;#73awW%VZaB za6K>+tXI$$IE>+Mmcm@u62;@@WW#FdJkU9mx6Lfu=MCMnmSyHE!#kcQXO<s(yFhfU z+?T{}mYNu?&>YiM1n;(004E#dwKn?q{~{RfT4-Cy{|HZbIeHIy&rPF7DUsLYrAuWT z`|9yoEv{#-ov|jmm;&6L^L=@V$2^E$Lmty~(^@XK*K)Z_d}UTW%H^_T=$D|lTv*y( z&hnktyVah-X}jOiGdM}MBu{z<AMgDg;b?&zFOYoXEIw)jpPc>`%a{FY+!@T@X68}P zp@1Gk0b#!u!cJ$zm`aa=6fTZ_^GAAkie)J5;VC0;eDAN*c{A2XIeSD5^)8#i48ct@ z7`Mw{+$954RcrlFR==2tE;aJdAtc6yqhXx>Osve`dt8n`CY;7oV{*m#F}cF6hN0{O z94~q?#|54oL`+~rt|*S){<wzgEV6khEK#=C!HJPg(YZVtNL4w4cV+<=GO%#Ho1$+N z>)w_K1DB~F&KJ7E?Z-ltrwu$69I(PZaVXERu@vX2zXT2u1mKpMOvmQv+mGqbyYSBV zH{^M(t<f&>;2bp8<R*?sbK{sbH;!v_<JdPhj*oLSmgX%RZx2zA!sJ8LBiP-vLW)Bu zcquyk9g?-p!a*d0{M>wl9aH)Ue&adKZ<wl%)Ci8GO~r4lhkNi@zZ9g8-KWi4z;D2V z2uz^0v3}9YjUUEiEWZK!>~ByJ$R!r_0^vL$1XXK==O~VL{<9*roB_ISGo;pp=YR$A zD?S93xCf@avmYyaqce&nyAC*mdA2YkOJ|2JMSur+Tpqe8xpTMC`JU^UBu~XQ#ewLc z?MC=O8uZZ!S;7H0T93sr)K4+2jTJ4U*o_S*!ERKv2n$d@FPU#G;#l2rsdD|i6ra_j z_zh8@D1L*kpHbxK;HN05NV>kuQ_-rs)2NskMj<?`dlWo@9-ShhRz>S5E~EVfxs3YD z=}1sI0+*qfo1wJh4BwS0Z02NptpDr~fY6*qK5%4n8UmKE3HQcXj&+LVNN^g1yu@RC z*z21g$61b_#95A?$61aS70Y1+4#8^d2QI-)mtE5gU@8^^BH;^t-3^D4vS_`~u>^mS zr1*;@_zSpp#a}4p%AGo=_!DL_;9PQ&6z#TIjnU{{(QBL4ke1x2+pr+cc7V1}Gr&b8 zai>`iNz&9f85b%)K^_*LEQbMKgjQ$%D8@(7F5XB-a~PxfBGvx!90m@HG>2g`Mq@b) z*dACW;V}F-{t^CRqi`6rqEq}D6`rX$3=pB_FMN(o!e6}W6V#R9FPO?eQ;Co5F3u|` zCPN_1Ko9xArxk|*48UTXA*c<sUAC`t$Ozq(+<5>FL$eoBnW?3f@!Z7<o4bGm5$0no zk5M1}!awS!2#@iYO+-IMUYy6MKZ3_N=f0?e0zzf~SzfX!>TZsH0HHV4bGbdp<*vuL zR6Wk+vLA-!BY)vMhOiNjjps2=qgOJxB2CuY!xQ7|!1&(pvGdr2_t)DavYk9-N>h}# zn^Cw)#^ZJwkGo`ys)Cx3LZeswSy&7_$SW3O&UhAMj$$#qWrv{t{<3{=3SP%nmf)P? zsFN-U<9s@qc;x+zw%)KdM+Z2VCF}*p9Kv3d3r8RTE(}D>n_w?u3HD-+W-m5J`*^BE z4ETw=AP{P}%MC{az5*`@YvgPYK=0TTy^n9m$4@ma|5}|V9L7?z6^Ee(G&lpH-sHqF zDjbHOYI5RO7Y;+?VK@ve5W->DjKzzJu|V<h^BlqIrWF#Nz=Xs2{{8&cHVe-%p2IkT zzZk2}xP3;PzZj*@@LGdM=rhE0QK>Wh*6=v~LRjDtea3=>KBG8V^?gNFC&F8ZK0|m5 zq;(g6jyP*EY_k>)4wW%0okN0PL~+6H0~zIveR5}%H&C%CZN~_I(V__QN$?j&J>+=f z7=1>|$uJm7eS(hSggFdReHa@qcf=HvA-*qA?!?tGt&9Rk!&T?-+l#WpQ_-MVjV9f* zA<bvhAD_=K>ir<#hOzpLjVH)y81+T;s9v)gT90x(R)g=+u_8z8PpZ{8V6z(0{{q}$ zH4t`TWJP3v;msC}hVUDI;ra~FRf=#8N7ZH&%aifSj0NE2Kd&<57_5fUbsWKKC~by2 zdM+4L@Z!g5Gh!wa8Rs?>KQf}tkO>xCAli(-8mrB)6&XW{%_!Sva~h(^5N1Po2~lXo zl^Dm@X0(cc#;c>X89yg4&S@M~oAD?G#>?|{<S|)C)n*htFCY1Dz-b(z&3N)5Jv_o` z#I+gUBX4}~@6&l>v>D6QyZ>Xf8E)1m+Klh7*KmClZN@4deVjHU<MIT%aTIOF`$aO$ zC!)>BvOhmso8cr+@fzzjL-9w`X5`&NGe1t7!TIp<`zPD9J|kCgEU9}>i}M>xg?F*) zgf;S7+u%2(;Yy$Ji$~PmFgq!-r-Eif6czUV37oJfFlNct3CO=v3m3V<bd-xiBR`t- zpn&ESU+Au<WW8~S^|x`Z<8+Us4Q&QW3V-OPY!B9bqSx4E#2RN4bfj}&b|^gqN<1;X zwJ>^D!4tYiD5Tgm?rTt+9uti4(1d|gxt@!;q3nAYwGFcIQ4tn--)ct#k=I($bTTZ4 zqWrau@!gV+eU0}1%6{2j*?(^B4z<71D4(&y;r$L{ZSN2^cWe6&8j~9Yh2}Q&IVQJ@ z+lP8HS@9h`l(jcg*wQ?Ot(3S<!_nT^ulvX#gq2#OC{%mG-Bg<=C^&dCFI;h=ij9hP z#odG+Qk@)5b95fFldbVi4yPKETXPQTKK42$V?1z*ftEz?x7q3rVU=xlhrOSI2R?uZ z#l||N*hr{5I&?11;`Ggr<I0Vn#P?HvuJ%*Z#>!gCsEw6FHVbn5&qUjC4G_qNiZ|pJ zZAWr^KLs7+k^3ob(S2N`c3AFA`^5KC*q}I$k|VCz5L#V?T4d!K|4~^GEDd<1c#t$` z8M{G(luY44BrR<}$qkiHM%^Joq1p_>KImgMROaaol~*~}jmAUN9mRgDDf%dASGbU~ zw8kTJojbmzqEsF$c`VdlO{0P?K@PIN5@?ERJ%kB4e}oB{s*oAV<|DRL>XHBudrM`( z*e#W#?4%G)JUUNgH$E>?R9ue#5_vZBL6IZ$95a?g&!&XX-_cV2MDk?DFtHQQq|3P4 z@;rB!{p@M|oqSp~N~+geVt@FCifFKov6-TwPUL!ZH%72mIZCoucf}|(WGtee59$`1 zW{6R+RU9+O9N+O%bl!|5s-Ugo7_Qg6SUsIrS|16ny>dxq&NAzVPqUn56Q$(OvWcR4 zi5-_c7Wt$1mejM7qiv+1Wn|$ljh;=v1e%Y+dnED5<~{tO&|1*G*Lu|-D$16vl<&^b zeO@42DW|c6!h;eoi$N42-{7Gv^W2d0Y~=&_d-66)j<1Nigl#<bP=0iu{_ts1P^nQI zn?=iUKlzID5G2V>9BrcI5aLcw9JQk5(8v}ohep3>IeK*&8%+<fkD?H_XgLI#n^s71 z3TQcgT1~RHSvZODT8_kVq$Bx{vHK}iICeMxsQW3k-&WN2_u5Zk8%6J@u(6WNZc69w zG5aa93ox>uB4qkF8v?SQVvN#vRGgH$L+MxaeoCAlIrjF=N$sbwk)roCM)p%qphth` zeu{L&s8Cxu$KN0Nv+k!jFw6S?`za@6vGK_;7{^d@MA-2c^n0}Zl>fR!qs61|r~Hto zLfvh9jX&pp%8pvyl+pVso5+i6IgYxY@-qquxgEWq^3UW!Nsqdp;(tOu^4~zq@!0tN zlqM*i%+%=pl&8oW-}}eyywRMO(AxiD`zb$Pqrv)!{gi*?!N={VJoQDJuQKb7vY+x0 zPlb1IA9p|HOZLad?WbgutvC&vulS?wr(Cg&mY(2#%2@rzbVr=O_@n7JvN>_||Ac-6 z)y80W*ooA?w%w%!Gov0ycg0$((Uqk5EHM%N@2AyJT^pinT4h83jQR;i{q=uZWk!;) z-iU^e{OG9443L^EXZBZ)uFnwbh(DHn=pRL&kxXZ815u^Vko50iAo|I$8^6CkV|bQE z%^#!Bc%8?8Mt#P&L`oZ{&sa>}vGp1AC^25F{}OpJV@KC#y!FreJO6$38Ko<9i^u3Q zd}NOA_}}WhvHFY)$YeA|xUT;p`iyzs)X;nseMUZyK31Rc!NteWXKdx+@$?y8-_Rc( zug`da{6C34qpzGsp0qw=to_En?xzl=&-i25Z~UT4(b!|zZ)nrdA&eTd{YF%oAY!gD z#(-l8iw+SB+@tjw%3kwi^cmWI!x&{DT5(baq8rr4gSOu|A&thz+HZ(K$~N16Lyp$q zIbw|chSt=??Kh6E*GSlJY#e1N+IDjG8(OsymOdU=wejb*-^dlywf}Fw@uxeCatzgm zs5R7X&=}o@ZNK6A8;v4A&VFO}UkjSGwHs=8<<DZjktX6A%@}RJ@!`@0%W?G6DBTng z!aMpjN`yS2v1_@EKaH{+TeklenvEmuH~N?8;Tdhe@hW-ad*7n-#@KKCOuhR*&3@yx zyFZrac#%gRXTOp3xrBP-DE1pW@?@A##C~Ie{rS=M8y@l$*Rfvjhy2m(H|{8*nICVz z!HL<nSCyBQ{lgRtP5qYk+>$AbMkw`%I-1Z1^(^%(Ito#%PK9;UoOVeCQwMbBJKI%d z5uN(gdn)ymF4CcXrgHwA7pDFPKkEGMql^F*>>rXZPTe>`r81>ZX!=cvq%`C2aZko8 zEm9<y`kX46IzL&ZUeKvB**pqPeMQ$&m8zcoO1&`s-__65Cv+;TQ;qyIy(Bgy9B%RC zWQo;D+Vye}m^0eN9=u<y=i~T&Gpr3hYZu4s<%qw;K5#woJ!uwZDJuwyASc$bc*i`& zE2gry$%&>uef%bG2S<f{dHdro<_E)Xr&>`l8%UhL_J^G3`mD{kf180*_2~AqsW`BE ztr=*_RzY@%JM?f4`+NxI_vWlszX(V^%$xIl7T*#>XSbX^H$@@2!YKS`^<SA~n?lZC zP*%LtdGbE;Il><7WwQN__PL?V3%rhv(d%~OTo;d*#?8h}BhCcaR{IMZ5C04qkCu`@ zWIR5t#^W0wI~EH+ZY*S%@h@yVetGU+7JOWHto5P}<sD_cC?l>DSufG>Z&R(oW389} z%u(>+*6{IOa@7g07iofCFYn2EdD*u3S1_{oIP1ke$*1?A|H9zo90ebL-1Sm%66@v9 z4IjUp`KN)8+eeMbUow1L_~}0l{-_!?9%JYW{&;KO>3}p@Kgbc=Da;9>tai*NA+6Uy z$Cb~71_}|yLL9ZdsDg^eTGeUB$H<3YPfb}T9291LLZ-QSIA^WCQ7(gV_Ee%GMe&3v zV_b2{!fO}zSmG0|gA7P$GXZpCDv(s%Ur&Ts507CxxA18UcDzrMoZr9+z*4;Pme23N zrSBfx`Sw!)-)!ZLi6{we<@j1B9)bi)=)SX&2o<;xt1iK1O=&s)hf2j`?=o?tGryc; z-1AFtiBMg>yE$C37dP{F;QX+3Zv*~;_u@F^j^2n-x-()_;9S|OUQuN_A`45qA`2^s zz_FyXS6VnIEgU2{O&W-oqH=;foKOSr+9i#Y28zebavGyrNn=Jg)!5r1O{EVsns!C) z_Rv&P+oZV+4PK@m-J2R=R3m+*3{J&x<jK8LzbENEhg%~L?M;1>dwPF(Yh-?DQ)GU{ z#>nG)=|P@wzkJ0v_5PoLkLS|hn_d#7F>fBmO>Q~yqtq!iBZ1|s3T=UhUDexq;9 z`+W9FDZ6sX^pCI*i}dMt_#|N%Xk%D1S1y@(fnB-O(Pe-CyuA|M`<#EG2w_+EHbtmf zKeuba>BS{`aXw(|{f!I*aV+ctxbxD*6FtEVfBegxi(Bh@swPDy^?rfcdc~kJb*^g0 znlEsF@s;X(3D-*fYw@~+i=`-jiI-zXjer1<auwJW-*CWjE`ZHd0XcS68s@R9(yM^e zV~@!y5WA|U^^Nx8R#e!z`ZVQUv>m<`+sE`kbntx@VL?`7+`Z^arqwJfRBAJWD^SwD z&ia#(;^NqO#Wv%49>{8Q%VIReS6lHDToyb+_%^F0(2GCsa+Wn&w~33MaJG#26?9Xr zUgBMmzHlE5Z8+*w;R^|>%0Sd%ROZ30Yq-y;d@v^XW8AokTegpfc!_{^Jg66_KG1BG zmT%DubOiq2!hcdZ(>lN8gJxrX`Nl|FX){Y=?{-`+;Y4uRUYv;@mX&h&jY#L$-^z%z zRp1hO+1}qq!WA2&Ah940iz`5$56kn;I|lLAR*Kmp&w!0m0VAsGvrF-?LfodPhZPM{ z42*FYhk?AUzq3cz(-~<aQpNr?vvF=E0KsGlKrmhc2^k6!IQ-pGlo$4hv$mTAn~ICd zd#>S*h;|Z8jNkx4?DEuX{ygUiekGEf8FE?#qB;{V&)+pAVwwt$mM#_4_D&oX%uckr zjQ(X?>zGnpPyI^&PX9OgC34P{I(^OtemNQ$y3$F|JF}$`k4!NF-w_S)xio>7>bo1B z%aEJlyBVI9OU{pUcj1h!=jG<cW$tb;Nf-E)&@Vfx-J2OIeE;__cq^COn$g@?;Rem> z#nuz)+p$$5q)+{=e0aFVOT>@kS9J6$ex$3AfL>_^F%TIPLIqx(O&C4by06j!)3Qen zQBX!stvaNx*SNucmn#OxTs<sE@f^EU9o1Y*NfWnrviiIdbhL5xwWH$6d8~9Cbhd^2 zGjL<%sR*|iLIX*sk*?_cbS+7_Ys)-SW}_i#ZAOyEfj^{HUYU*4I2^`N=c;Fs>1B~7 z7OrMTUt;a1F^{;eTDgNC*(#uYW>8aGmNPDu^&<9ITYTadZU;nnktiX=QPCh(DuUZ9 zH{v{?L*J~+Y0x(hYrL}J0`0GkGC$V1hjo674C#ssev-3R%CgW;(HXcekwyMk0PJd< zw;NxZE0<)+qAbbhTE3L)$|dC)tiTetTgZ)ES1wtR4Zba3P|UT&EQaJop?E_?5ei4V zC2f(;lEKLH_?&yb{H@4*A{B+9$8D5pD<33C(Mu7dq>JanJeRWJNGHEPE&mM>jkd6? zd@P~;Yn(Y0Z|Ai}LK(fKvh%reypZY$g+M56DO#-Z+-8U^jTacJ5&4~dxf{3?_i{;N zb(aXGDET1Lsqx3Fk<JPb$pz&ffDB6BigcIamAD#e6Gtn83to+cWzBb2jC+PhW3t0{ z4D&9n>n`1(-fcE65uD}KxP=%uHijZgW0Y5^N@1^^f}L#C0*dmMwGrhJ?}!@1bO82L zzqnoE!=;}op*dZ3c|g9G$Ua3lZCrPa#yK*7a*A0^tJwDn<dG8x0qD@vIwuY$&>;ml zLWg?gk=XYRa^ojnsI}3wxj#QtX)caON8&{S{B9!rx*ZiAYH5%>SkbB$1Gk4N8f1ky zI#Xp`I2yyzj5+nrv%IlJYFfoXZyc)10qJkx^ne8-D<SUa?TGd9wKq?EecblRtdFnU zGj4snM`u_t_WD@6_Wz;v(N-$1PobY}72G7&M`xV=jsUe3QtP9$!lupfXXDmKoOY}A z5qbUy0{(oQWG9IDNw1CzN3V|S{sgPT$LbITNL)UV^${DpJ`SJ!`nZ1XG1f;b%d|*5 z+`l!5<=ziTp-1c>&f|Quu+<fq8(#}*$%}CI7$p>~Sg&u^<*d~=xC|nnAk17<7%)UJ zw}SV4p$ElSwvob91F6gISp!;KAKAa;%t&b|k?Q&?s=?4p=4azia#?<)zoIl>xHIMz zCv$g2mAF+}`rAlp#k&++=mwB@Sg~2&E|#~8Dbj(=(S^(*Qq%krscEUyL;$<-HC4Qv zs6bvrnCO(|b(X#l2H#Jm5fNK{Ngk(Z_Tp?_vm{$>wtpH~HkYzhB$$Wg<+$u1QcFO+ zdC8G)etz_u>WwG&POp>K5oD&W=C}I}y!jF!ZvUFe^6f?*%)Cts^p9-=LW~G633iD< zDz?}p!V6sNc;RKM2rsI5LU>8Mqdo~0PPlzVE<rv40`6I$;a=uVM3a23YF-gdgdbA# z4TmH&BMu7C0|gvH4;~ZX5PBd0R8-i#I;|*gWAtZHC5#C0jYipW<P+6A-_m+{;05Ab zRPYfukZ@7CTlymsBz?sNnK_2FRYvYDz=_|~0e+SLVC|Qjb9}<!AW#)iZV2Eb5;-Bi z!~^sUgUB;?Ue0m-C98~-Ncd3Z<#<1RnLj-0NGyj8FcuNnh7aL^d|97^2R)ItWp5E~ z?GUcVM{?hcbV_bph2;9Kkk@u~And=_2i!?s`W1;RxL@L%8gjkO$Oz3AAMeOe;2FhK z=5y83U#2kr!nFv;iBFymSLlD!8Cp*So)p=QDDj0BrVt`tb|lKZdBeYqp-UlNnV(n^ zcz>N^Slia)S9acE!}V*&Y}c<dKXtk5*Pc%umJ_0mhLH1~(A+c_%}}PnNuc`herL#O z%yvENJL7P8$ms}IPas~#hJgu%kwvbnB8!aR?87{Dp5bUb;t2uRoA@JUnS}fxeg+K^ zeQSxheOoGf7B~Zv-3Q`nNWiT$6;xwLMcV@L45zKSa3p>f1240aZV*f<b2h_x$my2h za&ib$hAUk2y1_0@UKcX1D};j+6-x6SP97t|-pNo&+~~4aKatb`CUtap7R>%UB%mwI z&_!1fmUoU>7!@h#BUj*M#?;GGqDqg-eU@C=+sXF@FU_glajwWn6Jzax_FjCI63s7k zRYqPT&gKlWEb6sziAUh(4+!rrfpUp$99l};l@++jf@LMr_aKpbhBMCtemv92SYt>o zf{1f6eZ{@_a3=Wf5E9m!WGOE2Gn{#f6rT)ATmy0>H(TYpRBkpLTedvO7I9eIxIf~v zF3pi0BD@yTX_<j+IRZC}aNvFsOIlZ7=vBeMukz)+>B|ep$2*kna6OxOCVXPbqP%H~ zl8X;}5kISb$9$#Tas$DXB@_z7sw3ve<N>0rr|g1v)pBA<4$-{Jmah`|2dB8Nvnrj$ zsp<AuugZe_G7m7R{78Zh1`emK`dhuW5>uSR6fZoK?vCu)g)8Cr-iWl_4%ugoFzM9; ztup74?!82;JN$0phMLCax2jK%CiAGKA0IO+l@h-ZuQSx{v$hg+d-YZHm+dw;{r$D9 z3}0TyqV)u=r@!f0u4j|*cgqzxPjx*T0nA$f^A^CIgV&ETz9|Kbd5yr4&(Y?UAodXf zX!iWV_U@bV;>=pjR_j)lDZLIf=Z}p@W?IdNXiA(Ey^1%lgHc<t&6_9sl(<p_N&DxE z86~A$0hj&N3YAzO?jg@<$4ZVTCH2p-DJm##W~<I&hDlv`zfOrWcWCU3I;EZ7?<N6r zw0ji4?GFJ+kFTt865_|5hP;F>a%GKsh`V0N_aw`$C^2^KiaffrIr8|SS0fMYgai}I ztbbU-8ts@6spY{>7bD`#AI9T4PxdcK{gHfmcqenXo%oT<`X)q%yQlgkvu|1Fgh=;d zQN~D2SOgT&m#kc4^g?R&ovrh@S<s+R7naTsln|~W5Jctrt!>T5irhKGs92FZ?>V_% z^MqV)ctoyc^}MGY+FzQ3)ATq^(c_;5ZlI0RH;L^ZdW?_MuXcsbd=P$j|B{Ozm&}h1 z!&_Q{26SZ&y(wv6<snG!uSq6B-)n%-(h?9p1DO`tvvY@<E-p{3Q2n{!X@%Z}^I2-Y zE&}KN8Y3-UK}KX5ua(NcQ%OdmRKApwr20%2mBX5pG^kQp+_Cg(j4bth+0OTA*KGt$ z2+!Y1=#lN{EW2S>mUT^#9N2+sJBx5RG9OJ8M^_*Z@c_P^DIQgvJ}$ZNZ>og*sou^U z^N1n(TQZnVUT-^eEdaN0@c@;uwa3HDJ}(c$JDoXFBY{u=i||hAC}1O593MVJ|GY#d z?G_;F1DYU$@DNf=I7HF1DEL~q_$_$@&%yGBv9m>9dqXZ=3JB$WDIkD%VOu5N)j;T> zO~b<xRkdAF4@G9aEk(L_UQ1)Tcc$kgN*C+W0<8T4-*VHv6E72yQl#YYLZBH=HS0Fs zev)eCBYjdPNFwn<-{Kv7L%5*Yo{bWKH=^SN+u?-K{*6RCZst(~L#l%9+JTNGDUpsV z2+P|Xk9RD=iB(+UBO)E66R@Kk^F4_mEMbZ9x39twtFXsML^>Yisfr)0Lj3kh1x<1} zGSaaxltqo3_>-1)j5LimE5-*qjxt~pPdS+v;;ogGyc(4odO9}Pv3!taq=Fr*MJv6g z3hsZV)(CN*<uS33$zrWD99`=EnkNWu0j`opAJLgG&uHt)HPa$Qf##1bm{D<%y%}UR zgCAu5*>R7BoT_NZeCL13GL_FV{v_u;mnf7kg_s+1Z+L|7N^e)>E~n#+xP(Zy5fh(A zD?K_~vbR_xp%cdcrNCGM|9@R2H2$Bf6Ql6|5cY7Cwef$uPTBbXpiXK0{~(DI$Nz9C z<M99EIQSplE^>P}dT&|w!JUBL{9*Ll8tG4!fI42^&ad`>ckcM^n@0^O{P+Cvn! z=?2O_qG5KIbfDK`{1Q|ECnYj_hD`+)e1cS99R6QQ>p&TQuYYH5QolAGh$D7Eu1T6I z9E%!&c}L-YLCm@W!FWQhkB<Kp=1voGA(%TYj@dQ-k5>TLDJlRxkWv}(QiA{APkg3W zl@cldvK~zZ!eFOIhjHh=&_=_8vn16xg0xB(?~k+*u$tTsxhPaSg4`IRFJKxtQod8r zX6fQx3f&7odf9BA3vO=G*mR9ZEs%(_<uy$mgk9(ao3hjl2^n!z>|dga<nw7rg1qO3 zs(}3sh?2liypm#>x4)IjHS#xhHmK*Fir_#U<l}FMm7PG_@OF`$Iu-d*H46cgO!=G; zn}v%dkQ@*lf8bURifM<=1Rp^67B1d6Qp~2Ckh~@5IB%BTm-evFTN+3BrGiyU?a20h z64|~KAFv68FSvxD>JXHcn`CG;suRqAM2veCpZy5TKQ_iaIBg`lz0^$%ydyBbkP(IX z6)ou%wD>WYU!h1%Ogf+ff(|uNIvVC5l#1d=e{`(-qhfv`C(_j8VE*XwF~6oa3IpqY zEmmC`ga2*ZUn^0Fb?Ev}4*x6qd4iZ<E1-{p|AEsl-U$F4RSx)^Jc-kR-FK*jrUU2e zC!^@V)B3SZ2mX&v*>s>%r!*ay$g7$TtcU;47{mWF>NfwsZ5;mZi#)y)U|Bc}&&5Iv z3*++;%RRUg+XpggcY<aP5dd1PH;H`83YO*6x0vk^Sw`W-(2t&ThVG&p(1s5A9R_at zmvyG9ka(SonWSYM4tY9T*6yC3bLPtLaF60QPmx{>FMHoXX~;>5Ql2cd$;9VBK{8?Q z7Q7_;;U^@oIlo5B;`8*)zf%c4PhZxFQS(%;bL@FqsZ;hmeNLzJJiS>FpQprr_%Y<Q zBj~kI<}C<q8`OL$5$qu?kFm14H_0I1#21(-<T0CGuab-rdi@sknji>&ZhC!udHG=t z-^EXWPp5x#!Km@yRjv}F#{UVOV~_vqI%SXlojRq*e+h{r`K7Vz1s>F1FVS)9<pWj+ zINv+Wl3;l-+Pg)l7m--ag{&9*!8hcq!*EwY=$58eo8s$d`kC^u8_7!O4KxHMs<XVA zDTJ7G5_6d8bAs;)S;C^AHEX=~f++qYEC`ITyS0h;KeVG?3#I10u1vh|)u|uuRH;Qe zwWLp_igoJo->KBqq~g*z>noIcNxCTNQg79z?l@JYZq%uB(9`hjdY$^pB$cx3Ger9t zOr1NvzJ>3q?{u~Cn0Qb+hUkkr^`HIf*}sv}Z4iA{Ry<ZHCe|HNsnv~pInghdpkMY| z9iqfSCzE|Wszr$bS|aKL*)CsC>Ck+M75`$+TJCvCN4%7PdH~|xc<><)JrSvMGIR=^ z9I2V7>XZ$IuiUOm+E6$_Khscn2?+&-vJb?x-|f&E8NxCXc8mRO#T7cZ@B2MfHT&e_ z<5e|3lFXy2YGC;$ilT<!D>5+7#>}UQXlzYRQTSp=fw~su^aEFG=%WvDMT~S+?3ePn z%8-Z|MKM<yGT9hVBPbgKGOXk?{%kjdk{NBWVtJZeqJcQ_IC}W=oaabcQD0dbJ7Ot> zjj{&0DXi!ckIJ^Ap$+asvGD%1@K9Rl{u4QqXCAg1D>fxg<W+1w;RAW@n2vZ=p?oOu z!DBmWLTQL=gFtVxml$?F$2Om%gYa?$Mii5OSKVhBITNE3>7p2+NXKQzyg`0zn;+vR zp;S!3ZwI-+uh>*7_)S1=U?|(QZU9{&7-;79GJXYe8z>%PZ%rUq>IX_~)3IZkR0`m> zNgX0?3W#6$EuB((6ezS{+;{hkvUkz&ioQy2QX<PryOr>=r&Pd4)HC~QAm;k<94GP& z_)Mo}J1N~ZrgS!?=cL68aJOvd!FURtn=A%imO{u+VvK0ln@+)zdebS`A1|0iK@cZz z?b-PuP0Gw+i%qG^#Hy<sOA3W_&)kVbTD@JYILT9tKe{fFN(2#aN0rq*ec7#yOI*Fy zjC3JtvgtQSF1Y`LQdV)e8VL+caJpnZj^L4@I42&z!sB?o*r6;r=Pi|Sh+QA3ue{i% zUdWEW@GtUQi$0}?-qb`xiQJbxud9Ojdh*cpACQn{Y5`mbxkx&lJExXOskTGsd@Ej0 z<ay|i@Nvj;8zgi85|o;8QC$%r0O(G6GCYiFOrrH#si*W{wa_}`nSI3+O6bE-ogrGj zg2oKfxp+&o2r5Ebq8xfN5hGA9Xq8b1VgmFtxrfMri-$-s)X5_P)GKKs<R}hY^jWWx zTqd&3p2b>MCQpwpH;vJl@i`?b+0v6#LKJb)o~f_)%NIn^L%nge+2USl$g$<7O~^ML zOxrPpCf!V!Un=hxVTf+aMP7}{O@myz(6hl?Cp3Gu&?F1dT_STU3NzkE1XFr4+K=Fe zZj4roz$OYZ)ro%HY$Y23=x0#pSk)MrS7ngfOl?5Hnya#<a=Ond|K2U~Dba|<ALh$L zhFgt|{eqhmf+b*5MR`7}22s^j96!Yap~!$xWCX(5veyN+5MuEv5y`>$pOm%hXtL1@ zc7trBXtEI{rO1Z8-zA5-UC$Ko_hsz`Scfr+lMOj!eQaEg+g%|Wn@7mTrjsHYLYQ<Y zqmv>Vjw8v2$Uj0hq>Dl}q~k(12IaT5SqQ`}YX9y;`JH^f&F?HqW;RcR->DHrMuOjY zOs8yq=W3m@`JEh{viY6sbxQL){Wk(@vP*SberL}JzjJ)m<kzVdkVI&;MV*HvV?@+B zj%tzxK>*p~ay`CJitABUoHo~EhQ4ZpZ-VQI+XIb)Upt&cJPudf8^Q5GxPI<of=T>7 zAY4B?W=E1ZaS*Pb4CAw5c5=*yV6hSy#r%l<;fXRoNa+dwN1z=3CmT>b3jdRo%3On& zwu_i9klai0IR7InL-9Wi`et36BYHUJF`e@Rn<c&A$2n_tj`qfK;Z0iX$F(e2^5O?| ziXg9o*Ieg%6w-uWSNw%yd1N<C7$M0K*2iW=By)uQAy>0UVBqSzVT5#PVR$r0q>2ms zvr`_aLh?-WR*L<xc_CF$*q;$TiBu`uwwg~ugRJ=^iZlb_*UENb#qg^rb+m9Qk}4rI zh5b3xR`Z8<rvBSPMog`xg^Sr`Tr%@wGB7d{C3EtyRtL51OkE?z6k}k^x$lW!Zm&V~ z$M8MrQe>EqY0e|{B`G0#<?cf_!W}7DSX9PRwpX5Ys;$0iw82PZ|0FrQiB{^+&Pcbd zra)&g{m1e|b`$eC{viz2g+J0c2p(8H!G=A5=$tjGLYwUo-bn33w$U2O?~sS+=Kg_S z3>0mRxTu$H3H@U<%K1uhEL!UkjWW}~ekz>N_A96~u2LS+CO;{Pg6i!sp`tDmRT=WW z&~B`FljG`So8>^8ptvE$8jVvYk8lDfsz#Rjh0#*FWLOQ@i(|1vHYX&k%gL*e>Eal6 zNO&z63dL(_?n<=Mnx#|hkm~)%>>f%x=`O48%&#)0wTf+uGe`ZxKple}QsdMseILyZ zMW|(Dr|?+p&>}Pe@`0nVLy99+JkJO_B<1PZ39~~R;_Q%!$AVnM24X4KIR3%(dc8tK zxp5qo8^>C?_bTB|Nz@9niA3E?VPT36@+-1*5@>RSDH2+vn4(4NH9h&V@I*F0q}=wz z`JodQqknIHNXV7VgPn{ReGGm`pNG(W7Jev0NJMS35R8-KhqA%vO8;}h{LtOkGVcj~ zC|{>+e&|-6viYG(owE6%&*+rqhq{RYe6sw|38;Q=rCM;!i0ZdiGDi5J<EVcBqWK{O zzj1!Z_B$2lhmH@ze<(k6av=Q4@<Z1A?7;rCRbTX3-VC2*Wcdrj%P%m)7o?e%kv7}) zOlFc9-Z9IZG>w9omIoS#d_f~CsNP!L6{yZhs&Y{@!@R`EsyZ#O-(7P`i$PG@q@)%j zo9igmt=c0ogYz>m4afe}$nvr{zCMX4kHe(05jEz^1$#lU63m7xi~cngydagC)<$b6 ziWy~6T|;HczBk2|E}s)*f#&RlYRj%4HsJb#kF3`@tW?+Kdf<KD@mLGfJeD`zv<S?+ zDkmehv8b-C`kQ{MIKy99oV}b_!l&X(d!jdJW|&s18Sa~9y4ua~E=HlzoD%j1IVl&O zHBdz9tmVXh;Ph9xH?1gWri1t<ONr3jWO<vC1Lqon6}d@O)1`=hGtFpm=SnvQ97P3f z9N#L46=CRUb#Rn;q9LEzvdbv!a=X6YVo=dHPP00T@-R|uGq>z8^BSd6hX)IL*Dp5) z_DuBTwHaI9GUx=~x414y+w!|9`|5gJ4}MxP!}L(bC(GJ!a}$QLEk@d5zU>Q6^I2`4 z;QZVcBYj8;s;Nj%@dmwFX2=+p=~(Wd$6jW`EbLhRDbt#4hGtJRU2P@@&dAO%csHNQ zyunFLMZx*$W?|=YmkdE@HvKo~|D-0$sLuL>)9}{<O!1*KpeBQpa^E~tfy`;#R!s<0 zXS>&=0WMUS)MSIrh^k-Br@*8aOGC5J$XE_c7>xV{*#RTFcea&@;jP;Vd}afm0#Hr; z7jg<#y%)bIcw*4y`^F1tY8)o{3mbhwFSP+A-G0~Q9hl_$>$)n>WXJ(|IWs3C&ouj{ zv~zmy>$|+c8-N8s(;uAT4_=d%XeE%ED_t_JaMhOs`?J<u?6C~252tRqnjyC`468NJ z_Z9D!U1nK((Wf(m1|fukCZBGN)^h660KNjvx$({yG}x;~WlA6De}=En$dbvJ7BJG& z061BaY37s;dJjCa_890uH6WK^hR;irLiP+$Eqf(n)}UIetRa_~JU`2HH1d-zb;LVl z*0oj6xW-<8rZp*gU^=U>#Ua(mYCGcmpw(zRr&s7S%S`uf={2o1Z@4$5|2s32lC-=P zU(ds;pw(`@zNPmC6wKJ7w??O&!EbP)S=UfCMXhSRrk~H|dGMC>yp4A4toPtmY5HM& za`~0{&A#sXuNv2iXA$G8X6VkGK6YSxrFtv%U!UYh4mB2mrK;8xG?*612KhiP`NprL z<yL!;Qvh4uX5*%a0@!@J#r=)bu)2BgL65bIpYJn~{QNV2|IXi2{5{LxulZ{Mnbgd* z^+P7M(q)<V1opdJ5AI{sVxI3k7z-C}T=lkT6+Kwk<hr+yTu-oQi^6N`F~_&seWCO^ z8j_^CdbxGu)CafpdJ4C>9{dGmXIs9ho3R>qY@8kRP2EDxtJ)2#qpqhW-*qk~(<yZg zH8Ti^ve{RbUTcQZYq4KX4kk+&kJLr8gPB*x8fBxUaLcMKfz?xztMcW^r(MsUvWOv= z;HmfII5`IA^p<TE{fQZC52k<Ltm|5{7e7Y*U!(!5p)w*fJV8%Rx)HiE#+$Q@U#HMy z5BN0qIj~8LXIVwo+aBw6>-8dQpQmt_Yu#CluhcqnUeD2GmNj`Culqu)AM}SVz0bq^ zWfocI8hKlS2$R0x>ib;vzoKSbguCv2kuMa1*dCB$7(TH{56z2-Gb6W}Ie!_E<PUnV zT2J5d_LZT`5T(X_&s)}P#G30_xfpAwUm<;-Y+9SqUziRKAZMy^$Ma;G*YT>f)SK7k z&1(y$unyLIU~Mw$1}i5L-@LB1YM7NViK79YPd7-=bD<$UYaa7itM9XDxX1b&HtQTa z@nH3zE=`(I6g<}h%E*j06*)dK3b(r+h;a}`jg=ldBeXi10Ld;_NG4u9DRcI~FM~Tn zLniYp<F$|RQsd;YuKmS>99)o*a@9Y=Oa8hx*S#g&6bY^SDmP{s!0aIWEuL+58NVhc z$=LF{xuF?9l)+hFWVL!e&Fp#L?(bboj+}waw_anM1a|adqXqefwTZPHIP6-TMFf~U zPv}A5Y-+60jD;NyW?<O0Y9Nm<y(k|L=ayExv1MmUqg0peNxm(|$?1k*J;9+o94W~2 zu;Ri)DT@papHq9*qM*ShTzbxc!}UzNugsT|j_c2s&$4!2ks91UWg2tDd69H4LD<x^ zd99btEm7585SLVwE=`un8-Xt~ZzHG31^m0#d|+6ci|U4sK7qWJWyIR8%p6aUQI+v~ z@J;52ug{PPRnwv7&%?ClN^#<u##$7>8?g<6n9KFR&GJIgl#sJXRsc)3Y61nF11W-N z{4P0KdiH5D#y`lJC392T+{<u{M5nol^DKhAt_Nee!HA}n`oWL+5sY<jPChx_vTm;x zwchtxdjQF*X&w&4((~-71Ch_#HgI+A0ddp4=5#r0oUfiT*3sYYS5Gg3Z&K%vqpwVp z+J`{1mFKBafU3`mSX(9b&$E<fQCQoeQ!~JaoQqwjJ}&LQLH5^co27Ne&9~fq(>MY^ zqg-{bxe_$SENgpV77gkz<AXMSR_8z90yyh1f~V=QjEI$*GOEMmc+f<zS5Jmz*aXO* z=MT8vWxa1Y-n~3@>0OeR`DeLYkz8c;x}It@L*F}0D|}^xe#b{deU83GPvk6nt}t|U z4X%5o7Be_6SHgeJ<5+%#pIHT6hU=*o^AP~aAni8uUgpP)_Iyg(CU1vW3tq>DBG*$e zOmhe`D59|Gh<Ji`WSeDo(uRH8)pwptN^&MW8Z0pO#R|GS!7^uXPEPO+`u;5l^tZAo zpB}xJYB`JcTueF?oO2_Ktf+2h&DDPEH#YsK`=|yEV$O}G^_s_;SHe*gwyQbfwR(cb zYLGWLzQk>7a88LCYuw;*=Cdix>5^{KamXu&r+&p-yr0+V6MzWLyUloBV3SjBO21e% zE5CAjY|a8`){4o{?!0he*yU^WSnZIBSVQf8>E5btL1noir$VS^ZOh?_5aW5b(T{RZ zXoef7yeXcL8~F2<ePD1Zs4QxzNn(_m;Guk>uO5!m!@^B#Qem$KGR(r4SIe4ybl-si z2eburpjNi?s-nE6Mf<jaSU5bxDX?8BM(wa1xT$Ge<OzOBqa=Yy8F(PFP3AfDgB*b$ zuXRJd*SdpaHOoy5rV}eG&d$6vvc8^{F}M1QtUc5vy)>*L>;1s+ZLa(NHy<<W-gVvk zuiOYC{UN_a0L=pra}!Ee!|>d>bp!MF^;@rp52RX6;pn-JZ6W7P)RV-qqSVmMvCaeW zbW6<yBeZ}FAzgn<6~w3nj@+Km?4{AQGx!*D!-2w03UKhrVQm#Q#<X6Jz64V!(0Vp+ z1zyZ~gz8gV4-B%RJb<Ie7kp9e&j?QP6%`J-LN5!g<k5nH9zl)8W*Phol=3!^Sc%{- zQ;u=1@CARI(@SMO>&H23<rk%nZ2b6GZuR_1OJ*si$m4nzM-Lm}5^8Rcqe}Vyymx?4 z!ovCU-dGR&>AYZGD4p|w&t_i08K9I!#L2`IVUgkJay{D!hIb!c6ij9+ix2w>H?7(v zZBa;DH;7KCR{5>>%+RG@^oK6`hQIJbpUcBRzoNR>icAB*@)QoOp5iTQG955oEI?1; ze%HE2#@c5AY_HdKttd9}bGTj_PDrvVL(XjEBwuJ=vft{45y(#1zd`jqryj;D47A5V zSWow1*R!pzr(VW8#-iX{&Z_k%SM^BC7(%x`uf++|ugM`%sU1=EY;P#j<85gK)yMdl zBBRKboCcFm`|?`-c`y0%nvf)fe{el3M9z7td~xJUM$k7+pNmue=A>p{;Tx+<%)A3s zauZXS<jp(4uzt;N!SZiVwYIa3bC{a>{<UNJQ%QfkDT^S(p{oz`HP58Oi}Ggkxdzu$ z5nLQVT=mDgWD={z@$M`?TqaZhgnZfBIzlg*&x}H?6I}geZhk<4n$I(8$)WV`ai3)7 zg*pD|#HYxUNsK^Ms_U7CfvLnaohgw<Qw5U|Ow=0)r+_{bD*8zR#>xcxl8MGD16<If zAXtHd5o;0PUAG=_O(0N1VjMy>h)cop=&DIJTMP}76>QTW=<AqtLLxw16kOKoFtQ)r zSIx0kT7OkIfew_s5SK@~3u5c7IkPUA<6eDg;9FTqYfunujDGoR%yi2D{QA*U3`(99 zQU+3AB@8d;7YDs%XPRaEVIiu{sq3oY9v@{}e6FW}kSibtUc{_@`+UN)Q=qNpOrHn| zU8d`)*AU@iFf)|dH)vYhsG{avIQz3b!P6DqGlFL-u~QCZBGmImh%?Nr@E3`kMCV7- zTYcVg<Ro-<LCjyahsGk#Slxo;)-jy%{!ftp*Q^eF%b8TkcjhfHtvMx7s0C2N5|i_g z3{2+@hhtKp%5BZL2$9<L)SNVU!Y?2+jlh$<$0~E0)-?+xdamV5IygJomvWGI<OTT7 zRXx_6Y_H>^3+80ST4Hl9Ej;8}S0#(f9&mbT3gW?6DX2^&KF<Bd`#3WGN=YQBq_}|N zx;N%5FbcQuLb=uA`auKYy%|g{LRzp|g7ZJ;DQxlt4TyfHC%Et;o(C7s3K~v%gA;5) zquAr}w})m!;j1q-T>hruvb3O)>j`>uR-KNJ3i^h+CkfF=GWYG_By&17hUT!DX~rnd zE3IT^yZm8(vW(!|8LMV`Tu-&}BHUECH(NZZ?Arq;0=4xF8NrpA-m<yb0}k?G7F<ug zG3EmT`b()P0~F{D&c!ivW-Ujo&-MndF2PL_(1L&+{nF{QM#fCWiE!qq!uk(ge|Vh! zBQ*W_*>LE&-L8xjU#M2$`p|dQ(i7J-Bh8g@^?KK|`B|=v*^iOVCH*w%S)?0Co34zx z9j<BK1*CgPm-CC=+%)%~D`PUhyg!?W$kW^z6wKzv%qAyaa`MS>yT01s`WuF4n&~#J z*~Q+VyV#n&zzDh*w8&VZBXo*R?;Dc}8iKVuxodL$%{j>s$Zt$(QE3_SrVm^T&*`8O zADFJsHQD9j@E`)aC_&(}L=hs&CL^1_TpMBpUNUTbB1>u5tm~<q4K&B5Pd*b0yCyAV z)n{cnBTKL4`$>k9&&<#~_{J@<>C<(gWX>})$c!{Ec4z5vpH<Ls$rZV-hmnRxw2(G@ zjydmK@U9ZWSa!jR+)Jv{T%qssrO;QuWNnV7PoT0OTDL)A%~!IP1ZG-e(^-$uwkvaE z(`(iDHpQkd;6^BO@XnlEUntdpY;c=h&{fbDn|=o^HG`KU-8WP@twRH+Sg)yi%6KXG ztu$n~*z|L`uZvZctHk-b+UQwu_GU1zpkd(Znk!A~5*TBmb6tu&5S#us%9+5o7^Cyz z_5<<pxr*_5EjE3xE}+JT^1mW!&B?86unxIh54WJ81wNU2<!+b*&y3W#^Ue5oRJvX! z4|NMekZGc6HZ5;ftfQa{PUzvrN!R4c2y4OPX!E&PP0N?1DQnV_S6!v%v+`4l-;KA| zp3fq?kj&@CmMhYP^2Vl5Bv((lnqvtcE>mj8W=@qSGU+?*#ipMm(2=4i<KWA6@59u} zTdEzg>5ucOYS^sGv(}Gm&oAs}@%Hc{?fIsB3=oV>4{<jzNwwfs$+VW|i;l|L#I6_r zrmrTG38w_po3BdH*emo+^ec2v!)*%;yxhmTmgvAZcpXJA0EL2gnG{c`3Mrn+?M4%5 z&B1}fhN_$qe#BlcHaz?`QKs^@fuR)H8=yTC|6b&^<!J*G>KY7}=RH;3cSNxmx{6Ld z!Cl?EmH(iSne;A!`xPl*Dn<wZ7TS+~FClHB|3fQtl^M7ssnTl(s?(BK+=1$hq{>2m zvXUw<;wL+)@<M)clPW*s%1BmZ)io{k8ftN6cr#qnrY=yoMmD)ON!<kviQz$hxZWl- zvx`k@CBRvX4%%7>tFR0;Yzm0j;18O8rL0T01e!O+n|HClYzVo?SN6VAfW_C3$elt? zH^(+cmuA5BiL@F+lk~QzwTgvTH)Q}6-Mi)HanklniS{s)<#<jotv!5tj{3Anqa~xi zKg`ERe=q6x_#SJZKT}Ea8siGQWGR(}@zv+@c@o`)q+;gvBFWDJ?oF+_$mR(SR?u2N zoI~q!viUT!_H&5HN!FXuRfuqY>w44LU1Zgy7g;IBz7ClGnl=8io6~S_?x$0?sr5U@ za^8>lTX`koZ$-l||NY`mg`=mtXT9i@8Y|CTk2>oT&${f&zYdwnwS6KrT45fi%j2pY zAW{fF&o|twa+1-OKvC9IAh7sR%0BKbySz9S5r-#6;qFy+q8iPy-dy|QrSg7KWxC~i zF+0{2JjD!b!0M>Qtc^(zR=uHhB&wH4q+g;=QC2LKUe`9uu!tmzwxsDfu|^;0ij%9C zG@Yl8BwXWs!vUx<!fVhG*(H2z2msPZnia^D_bVS_5{wXpo2dBy1R@S5$glI?zw z=a|=EDSac~5Iq#%ko^k3Wx!jtd#%psR2rfMY}tk2x%-+TD~pX0ygA`srOo&#$qCm~ zd75Fl)BI({&VAc_4sjFd`*bJF$y_TFygetwG9fT?(mwJeJ6x4hT+i@}Yfqn})mOl0 z+HUBd&UX@H@X|}8_{GAh$=^vzdcW#aGaSxXv@aZsy<e5`K1@?vM*n@Oy3Inv1({-q z7<eaxO_J2@4<Q#*XF*#_>dV|S$Vsjrd8}|j4DFUtJ9u~H?ROfrd#<?s?kbPfWepaz ziK=KytLsNb?fVsX-|h`MbBd;jZ&N2bYsi>sC{@#|pioomsV_Ej@GCLbWepROlPYsB zE18gzRC(TIOXcUR)Tf6J#xRoqW{!!@L;f?Du73$H&-7TS-{V~)(3<QCrryu(z(n$D zxp_|TZ{gso&%ieSh)-Jw<je8Tx?Xr|(()<1m%@8jOBLi~E??S`x@W!aXG`h;ckl}8 z(b>zdlM*wQUrBYz9cl+`N{0kk$`(~XcFu%LCscjGO8qb13ACoQr2YptERCdK>J!|# zKWfRYJT1_g-IDqcNd}n*4{|36I9H1n`B1=&#MbJl`C<Zm!OR>V?N9R;^!P&8=42rY z`(3lQ-0rhx%*>!Rf8mz*m!Gl7sNIn?=nws4(jfY$4M^W)SMBzpa`o{c*~`gzUtmsP zlHIpU&|_8R%H{OH{^ZKZBXAjgfSwPeMsMK<@sk&Gn`9;M+Ycr|3*O-R9)}@FiaQ^h zrr9!@b_B)1C~VXgJxnF{HdJLvKNHOJC_)om#(><v4Gpy0{cLjJvW1X@Bv;+fxwfQw zNyvmpU!>5z4V70#&z?-`BbI6O9I^;OF`E$}E=2)9(f`9k$nyo!g}Qh)&rj9Q9rAn~ z&s$PId{|Gi`wOxAH%32|#thvXbJg7dfsdAuLNGJ~vyz|;>>8E<Nqjg9ErHVPqQ5mQ zhtHb&AB=<%>x`vNf6!jj{by6d^8$I%3#ewjEWpIrsI`>szJHIEy7K`RQcqpOno~!O zi6%fzvDRQ}GtZ+p&_(zCLk!ETz-2|!;;M_IchjxtB<XxHa(eKbza~E#B-4HW=IC{N zxuDB^|EA~?)n?cCnyjXQf6@(lge+;0$$81(f^1*VofRx*k(+5s9UgcGmENGW9|D3@ z?Yd;Tn>MVOSkTZvNOzFb0z=8)EQ01Vf06NFh$pw8?Ub1r$c#<@=Tjg9+t6s`iz-cK zj?rR|168+Z97Y~JI{ML6As*_jKrFdx7L{JaYY1Dswg+UBNcgCOPkZ&JD^H0(h)w?t zABK5O4a6K(?!-4|jQVEf1-$998$BtsAenWPKad$O8=L+XC|S2+U_wEUJQZ3ap+f@A zZlNjcsmt0Ee5e^u*Z`u6SbJDBRjJW`WDtC46frLVFcJVR{A~Y&Xf_!0IM2<gwb=B3 zl+$#=r2PXovFZ1!Wa|q|s*-DNfZUWzp5Q7L>a6GCh?AlY;0by&@p(bQFJAz>&p}BV z{SQ)tfzTwTewG;%JtrJ<1FcPcfdcgXG|3L8-n&khbaP+Nla|z*$&s(Nq%Po2rm`jV zR{KtQ1vc+!kcIU%d9%ftEMFeUx2C>eNyR>Ac03cVb?Oh}nY{S;MYK?KSd8Q>P3shI z=Z49RP5;>xY0%Gxs1@rB76OQ^M6uNm$rCzzi5a*pXBJIBFD2omN_@!kqMc;&By*`G zatqpIda`5FujaK_OCXlA>ZdYwHZP|hUT0eGFqYX2hf^B(Utjpqn-@Ns$6aAlRizpD zzwNyVT$I)OH+<c*z%cAMARx+ssJNhrR4%BfsJJ#MxMi{qf+9@AplFukmgG`qR;DeK zEv7A$mR6Rym8lga7OhfQky=t(YMS$Yulv3S&S3rC-|u<f|MP#I&%fdG<$IlTUuU_` zcAs<RzRp;~k;=GmSLoXqAJSJ1$D($4kSnwXE_`p<o8{e#yk?wPaqnRFa5IA8C4dHV zdLPJrh6knh*_$r!|GThJm);SMJ}pV52d3>s@h@J<iD0WP{Q{mL`dREmbGc<dkIUSs zg3^}`ytxkwrrgUF+8qhCjLfjd^p9AJ0Ip6(TtI(b<L?9akI%`2q23?ze$3ewMtqGh z>O=(?bdC6>AQm)83o{Q+tMNtzLP5t^(^u&_B_hFeOf2wgO9Ku$Onqva(gR=eufyP0 z{&SM@45*e)U*Iu>!?sbvdN;n0A0#>*(Rdl75{AnZ#aowDbK1M{IykB&IYAE7=iSDE zXlKjt@KEA&$JHHrctmiZkj4&*!@DsQ!s#<Y_(m;!8m}TD)sw?3eN$Zjn_*hVgBkkh zkB!C9#>f)3^s-cr_i-@1q_27}ebqaz&{G&exmit-ckz{;+q@8xyYDQ7mG8BS90@k+ z*7(<Pcj5=16@HC#mDu%-x5%m}SoJ=qs_q{x5S0EO_^SRM1YZ8`8{F3d)Am>D7s1_l z_wRV@bcLE)0;a|&#o>eU3Wj+4)JjCFF39D$Qk?_S5R|Y5zPuW|^pX^~;zbCJw_{92 zjmBf=GY+}!%n9&I4JZQ6eNT4FU%J#d%23)B>8nD2U4d`>QaQGLOB)7vKa{@okSqPz zq4YjDjxP-p9Q?yJl`19v8W@Bgh?UzB9$x-ZA=rNpt~D$2IP@!4efz*~>sRByBv)VR z&HG<NeNy9}_{VJukJ!Dt#^DwHf`0nrA762m&ri?O8$P*$1x@HdxbdA~(BgiU;b@Rq zyL>Sm74SQ78DqQe3*0%xl)i@Fuc?LT1w|)b@i?50dDEx?A3DNUjrJQmV6WY{YN$cG z7gKvXM%I1tr%#|U;AzLr&a`wv9No^65slmntdZNi{Nj;Pe=9$2j7FloN#gKb_IbH? z`ijt3d2E!cM$vH&+y)<7`Kd#<?4$Ak%q}bl0vZL9@0zz&&_6@(LqA>G=@r&i-oeXE zU-MjCD!ydKSJO2pmsOuCBfk$qB1PS*Bky&6jpvk&2hov{^EKm|hU}_E`)GU=4T_zv z&>5I(rLTIV5o-8?wjLMpsKMas3QgfFh$qE8sIF;{ugXd-11rXkHI00MhgOc01v5Xl z&LL0ftCk<)ix_+@>31#XWH=+T=a5|+I92)Cv%He?>CM?vL!hB#W5!^?x+E2x!Ck-= zIv8<cV!=->#D@uB`kLWQf$LEqX>sYCD9?A~Z}PC;1`(~;4<&C{ldf&tgJ&zR0c%-h z@c}L}{$Uq+JW%!@*R=1F#K8xeL8tNC^;#|f45>{V1UAv>15Vg~RG!(WL*-p#^}C8S z?JxJ1!=49;VR!sZSb2y>`q-n?*Dpi=zF*nYaCQ0vCFbgMQvUzF{GZFv)#<SOzX#%T zbs8l9kC*=|`d8$uJ!PM8`Twu7Pa6JLOZ$-yKT+MEmi2<GAvF_y$(+9G)XH(G+%|9d zF$MFXqs`upQ_;v)j>9y8ubG>#VY3zAR7k6W<htjz4c@Bz@Em_(G~Bi-6OZ6=*^O)P z=E7QpOhj2DMma>EcNh0X4zYE(chz3_qiX;8{9OrH9_BtwG(+XND&MX0b1END`5Tr0 zP&tghD#xd%%H}G?ZB+T^#}s#+%5SN>MdiCywyQit<<TnlP&r8DD~~GieWUXGD$AL` zzY;Yccd9&1<$RSbD!cU$tL`sUu4{EYM2)|P%1cz<rRsg})>r*!sr;+zKVEga(`y<m zIeD<j?xB_0?f<{Zyd%b8-K^DVbvlhkhkv~Dr1)zvTgSeYf&9ox%cznt%u71SAo(FP z%cM$awPf)2;&2Eg2cu!7<;D5tl2V5`-<nsNZ#Cx>+X{2c`8kf9o}AtYd(IrIxy<S) zx0wraii)lI?29e4Lc295-&|Bu<S5E1E?SV|C@L*cH8@~Nsd<idPN{vqIltUqR5H_C zAV=h>FQ?!f%=hHJFFA7jYwgzQy}S)RMx(Eve?VYRaBxT)lPNSbEUazY@Q8@Wc2Vs+ zM4Mw`JH~bD)VWK1*KXZ=B=qdrE3tP{pXBSVzoBox{sU454jP;~WazN8;Uh+-j~YE@ z?AUSRZ?xPrVPXb$Ij2m$`IfBg+<a?6;jH2ko82*Y!NNP7OP1YPxpMVA_pX0%<0Cq3 zpLmfs%GQUB<ckvarvM71APS}sYC|Rpr7&ts;S@oU)Q+O4J$0aHGE)r2Qb&rTPSlyY zP&{>|Zqyw=A(}uvsTU<uZ%U#*luXyr^>hRErGC_(QfLsR(ojmH5tL4&X)KK=3r(O5 znnY7*8cnAelufymPX$y+v#6L#$VPT@&^%f|x1;u#(w%e{>i-^ENB7eP+C-1i<Mbpw zLtE*2dWl}4*XT{!O9$y)dXGM&<Mb(gNng`<bc)W>Z*+;Sk`^t;UkZ`hN>NgCeMm0N zRjtnJPyLn4e|TRqT)d#vnDhVb^JnE%*U8Uitv46{>iYJ$iygD>`1Z=jAG%x+rQD0I zGvCPKE6abr`sFFtM);1u^YDeYcgVWZYnNQ-Skvj;^}q$!nFd)LS5ogf^Svxe*2}J6 z6osv;ez|f+iMNyEz&V^gBPVh6s_QpJ;e)C_TtCa9oCPy~a2?yG#IWItt4UFKX~j9$ zsjp>U%i?3MeGQ6&q+EsL_ZG3)&*^--<4-5{zVSrWy_*ItO?dmu=c>PW<jR*)TCa7r z_doOH6Rs0Z>Hc3_UpC0u*|p}>pI?39dIyo+l=sT7)o)!o41Z~H<DVZN{Ph6Dy!jvf z@$TEM!%%2@^X6Z-zH#9rRyg##>y(n@oR@!b{qUO{S&t>}{`p>wEK1AHUjF<;*HZ{K zqw?#^pS>mfhULHT+v|_ZsY$P1ay6dDWv6rDJ-@iVJtd1B$GviS?=jbVa7d4!e6fOq zIDgG)*Vo_5VnW{T%lkidHL!wo*>zmW!x8DCd=<WTNiVq?6yHC6E?)ki)>Q-F7yTQ~ z?S1Xi+t3;nyzR@!x1V{&b;>DaUHG$ZryTO^wDW%)Qz~oIxcwJ*@0We0@Uxdc`&`b> zyL~=)9e5p4Ii16MzIFE9&s--VN_#M&kUgCzp1S1D&YFeI*^z>p#kb<Vcb!p`?{BF$ z=^Hh?(|Mt$S!{APi_)EVO-o7Q_#jL{6!C^zniUj}fARlt`0>-P@A;yt=|$HaonLKy zcGt-lTyHoB_FVb-gD*F2b=5m1+xLIGv**HNi2Ug}C$Aj)#PtHA>oV?%#^-kY_A-2> z<S%}I`<+W)KwLO_&$*p@|M(JO_{b%nZ`^wBRaSWQ>r0<E$<=cI1K(V!f6v8@IjVT; zuRHf$J;4e$eShWX5xFjIEBNrj?gOqLp<v2-=-iXfyN*DVzPjkDKMuj^-16e@S5D*S zd?EI7eBwG*CyUbjGk?~7EQ@P0j$e8Au-qZLS*n_zcui?AEroi%Mf|x%{GlRoYT2z7 z8*Cf4r{1x3ZqE@}FAl%Qk~txL)6Bm8joUtZGuVHFJu-N6kNu&>=jVr8_D2rtk(#-7 zq_Ok1<7;ChxAwfDO=VTg`y&UN40e01pU*cp#rtOCXS;*q?%X-`u3YP^r`D&xk-y}T zQu7$g(1K_3Mh}WV<?MQ$&&$88i8Ra}-92*MsHc0kePl@IqN+a0(PhrU8~xgS>Y5zv zJvnV;4||`$*W32$8c_1;&d}g}LlYtj4!+qoBy7r*`yS}lGvUB{-E(%9XLjzmePEaC z4o!{>?cTVpZ)~4JdqMkK#&wCx+}8i8X}PJfVUG9P#&&;t)a>ick$t3_x<{u)%nD20 z7WcJ1woPckvfV*r7Y+&;pOx7!DY4I9YsbevDV^H0G-ZACbDy6K4JozVIxcg&t8;}t zzMFL5w-1dGbEb4}zxwIpow{!vIJm>6VF_u{hxrym_l;7Y$dPxCA0Om$#va_(HC|tE zY^P58vQJX*mJe&%Mod^49k;FB)17;KH*9kMXD5_J4%j|;z_c9$p1x(&#`yS9$2}j$ zc6qT^V9?Ik6TK65_6&~M>6II3-r28bSh!QVKDg5m^Qf{YXItlc@mim<J~bg;Cnk6D zDH|{@HMCdZ4Lv^dx&FE(-=t0(@m_q_wvqj=?`PYk@7nq4;~ionmv3+w&3ATbbKRGb zb{LRF`wTgy36$oJ8e{guGO((9pDEEDhZSVr@Ooz7(6*%m-b?6Ib3^A53r7`5vAMVB zcAHX|S^naLtc>fXI`eO}CXBi9wqAXlH*J&p1?xu^^t-NW@6Iv)^ZSj8lrp;-hpik} zGOd@rEL3AGa6R4D%i2E3nCY}0i0l_)EGRf0YwBKZ3XI$AOp_uD29E3$dtLOon&BxU zJCB+d^;M^|1ZS+&%lEf!gM!<PSeJRjpb?$AciNc0IkQR{>@&SGD%JdM=9oYqpH$bb zc|nuBqV%b*h>KERL-4Y@TsJtJ{R2%CR`iRUAOB=h^j#a5M|AwG&&(c6m);ib_2{Jd z)D`O+5_USnB7>JUZ48h;Ob80SIrS@V>0sZ`E}K$Twk<e5(a-<-8dqAcsLaUBOsCVl zZd-`2_u#eLbh_U=wll7KVVhs1^DRrqyd9Q1u20Ckqu1o>K3z>_>lo*%x$7Lx%)VU% ztIuS1@)<O;L-4%0uHcZB*3Ky_Zy3=%^6qtUZ8~go<+L-cOc*%mbLpntsphVx@(1rW zg>JUB@f*0`nWzhQ&#jp8K>XLAYHSawpA)}e6jVN!{=~XX{hV+1J#`g}V&&6v+2#7Z z+4t<9&Ei!yj!-`ro5jn5ulp*vCD`SbB*Yl5{^<_*2Lv^`=2(T8{!aX~<-*rjenIZ# zz^DHB<&Qtr)LUXZ(UOOs|7?+4?&4C5ZcDVdi)P1#zfoxRZZ6X1AhOVsSW8?U8Yl<# zgQt}H(;TbY<6rRWmzx8gx_sUp^77?#r~<{+QWs}h#LIuS6huoVueOL{lI~bh$bu+p zG|Mg5o4x+`2$(UrKYv`k;?Bm!tCyM!xTOdD-XdPP+R{L;Hdo@smTEyebw}p9+${ap zBBCJO3A-*gCw4{fZMp7hPQi7_-RL>6pwS#dbG0_d-bxSx30FwcXuYuLQa|_>Px<gV z;Q95dse03D?B5dYcx26;OTbsJp8Nj5OAoDHzGShiI5t&T_gYk*qH?y%SeF{~NW#a@ z-{|cd5P0JlIT)3c7Z;l+S^ADDHQRE^%B=ZjM=85US{><Fa9ZtU@m*On!(LvJm*c?o zLfKnhO2U6sNnWYlZq0L;XItkhYff7ZFFhRy3MFMdE3bEp%523s^K){Gt?<vwDPd3O zmRZfVqC7{r-Ks_{XKW}IyYl*YUa6gzz`1Zk*@5LR*1g5nl9`S|R`iIc%sO+9wZtLD z<8i&9s2JH2FMEb>PN0m&BXc=?Ps&2teY<3_Tj%7+nYEVWCzKW>G>1tvTTvF}ctOH$ z&HsCS<iYwEnm3j^Y~@HYx73b8?n&b_$Bu2T7qvXG`e&~+dE+3yYjYZ04%|+HzzmJn zo3vVA_NH*<RSGGd9qJwgi@_n>;&l2Td6_S-^4XhK`mXl9+jpJsM>zhkcEHtNm8{ zuMS+@CfvJiM7&p*u3?d#yY<!I&@Z&z_5C|_PuGncWs16Pz=+XtJ*EsFlboWRJhe^x zNz*zeq>atIxzE5t&CH^Z4h6GfduB`@HqJUbX;6hUZ~nwvf}`_`hmN1SAf{LOZM_HQ z&6zNR91Dls7-Y^ZNi4hlrmR%^9XX|zTNh>9_`W8L8Zm<NHhK6^3p2`Kippk{$1)EY zYe{G3kE_++4Wq|Jb?(x#&#`-y(q9tCEBxY(3hzl%*md<!EVwUSyzu*P=g<B6OVin( ze>!ve)Q^oneE;3aZ@>Av;lx*8e)0KdpVoi!@$tH2AAMN+!TawWJ#zTnL+`wO@WB3k zdu#T*_2%w3UVm-Z&R1XAvHj(js$YEJ`RBH6eRj(;Pe1kK<|iJndhF3h9^SO^p$!i{ zaR2)I*4?}Ip1aqqUbXVB$`yAmU$%6~V&|eeZeMuYg83Em=9W9k?6=xVOXd{Mo>f#h zv%s34mz$G~cc7-<JZ<Wf$&)fOCQi7?a^v`MW5<jhl|FLB@U&q=holZ3G%#gA|9*XM zxc<82K1sb3d-Y7{(Y;&O_%5A0#dVC0F-Lc3AJr~0BD`%_sHsgza8O`?zn`zs2isM8 zomPWJ!;Pb*Z3OWKP-qx7f5g3?=B=N9z4PO-@iXn_>9@?t%FfBn!|u<_!lGHTi|3SJ zI&Lp>l+T@4F@M2r3va(;k#q5qrOTGzxuWu}m8({-x%-~A_pZBd{rwL-xZ$CVn;w4T z(Z{MDe`52KPd)w2mS?wad+zxcUaWrU<?TCOd3EQm*Is{P_nU9+soA@4|AB*VzjNr_ z!$*$3_x=a9AAWSK?)b-_)PMTf=U;sJ)rp3$zxnp$ci;ce_~WV5XMXzmY|}5lo;&~B z?-wp!`r|S`1BlmV|9t)_fqzQizo7*FyF34X^WeAWpU*!f@J|W+x0HY~dn9W5ul}^2 zaI_k80{@FY?)&_Ql@e%G{QuMDyTVSy|3p!FFShwRS2PK>zZL<bY!bn1Bwj1=nu*s= zt(Ke6MmY*F!HiJEJ45guu7Hl%#t}hItmFlVwL&_BpWFTK$ZlPc#e3x*pl$Wx_Z7qs zr^9+~cG{3V0UGlB!!86~XcORaq4+d7#oOi5!M<JZa(TI2-Y%EH<??a4j6&Wdoww1S zB!iDeYxHG*o!-x1xUSI~d;>TilHSK(<7Eucdiw^pTqoY-3Pgkmi(*2^0GBJUO@!wk zrJ^<j=wdzp49T8<8*lLZduK>ToX6IJ(BYnc%SU_ubt>@u^DI55EpoBvpU-FWUJ-Hh z@f|;jkQ<j+qSq9s$L(LM-l_sTOAG31`FobVT=cDry2UNmoZ?h!;V&=Ao~>ePR+QVA z`j7h`e-!2&9mU1$Z1uO;>G>ygJ-HjUZtpts{2NT3e|XWy<Ac{wJpNK!eQq1?`PX{Y zw0foIAGYj0KJI&!ZxR1cAhPIYcDQ9`?^d7I(}jjspVrfvi>*E!eJeQO=8seUkAFy4 z&J?q{tq6Mp<<EdOb;LjPbC18MR-forA8#)&JwEO-Z#5ce@dnku{D?!<|B6hD7VTN| z*q#%M?s@FRJs+GnyJ*Ed4?gzHi#zwc^T8)4emHw!(b5&G?z!*5O^<DUX4{L~cfPS_ z|2s!MIQGfsC%*mR^x1P4E-zZVboq+AR;{_`-uv!<@S#nQJofnJr=EFs+w(8JwEdNx zuf6f+p1u1IzVq&p_dfXW*zr$3{rt-lUw`}E4?mv%>Fh7(e!Fn#@}G;ij3t2I!sE?< z7#-nlCPJ%(eGcGaK*0qC7ZhAja6!QZ1s4>!X1G=`zyjVtAP@}<1{MJ>k9WKhCw%RH zXZUvQk>|4J&C0Ee%ADS}Fn-r|)5WXHM~~U{<){bGUCF;olR2HJ>*&w+-r>J(XX@13 zC$Gz}AC4GbwE9?I>(7#3R{7&e6MnxTBdNz5(_WgqHSmW%zm<LVb5`LuNAt>;20T>q z(=&-9-~P1b#+1<6qyEsEZuGkxnUUoCP+8QGPda<uaJ003-Wxr-^_pA$<<U<0IT_pI zLRZ{w++xzj&fL?%v@~?bq;ECfm6g79IBn>-&heLDc)jeW(-!09S7){Nt?Tb!IN<Z^ zmUb|7zkl}o^P0X}eADg$%PZEee~eOo`VPCi&S9<ldsDTtue<gog;AVz<F;3_nem{) zn_c+ajKUqqHPCX6A9^MrAJ_6*UGs;3I09GTT7`NIUdo3n^S|IzsoqEHsBOKK`>Ig6 z^>w*%UE}#*=P_Yo+QcI_M}7Ci)oH_DtDV37O!NyWTqMK$Pq)}hXW<K@vQZ^ttvU9R z>2vdJvu94vEiWq0ci64gvgyS|x$~^Kw&@kuCnwA+D#<UMSC(M67EfnS<*iA3Pg{Pj zocRIx&)^T≪Nd$r7cdo(^k;BW_L!`&oKu@!lZbr&ayp5)&yGev6y^Du@!bWJ4x< z7V+ztao2G;l&k!mO3%c^yn>l%S#a}PpFM|7fJw=)A*@sB=?BXO*x-5ijgs{?c>2kD zRUUp8S#OJ{pR8By;g=!n?eg@K^=jakif`<C+W8)k5wy*<XrqcdZoz^D`MJ0aT6>Fn zA9hDx+^8W+{yhAqDftuqG8DZn9)5~mHT>{0CH1UO(yhK<OGkBZTNU@hjas}>3Aa+V zcvBz7An@ZlQ~lTyiW=Z2)B#M(P<MDI`Xr)P^<d<OPqmgBKt0vlY=Ao*owa9fSs7oZ z8q`~7xNWL}?D_Zqq(CnU%=f0iWN?zNP3mZ*j>&DPqdmH*eM7t2h?=&xu<TF^UhgH{ zP>j_^4H=WX5+wuP|F!FE+H6f?Oq7wL&U=yRB;u(HAmagl(r5UQEsTgy(P%^&#o%pL zf(}84phM81Yjn`=gfNm(N5*6W87FwzB%_{;O@;=qT3w9>1sY>QdJeoJn{Oa}vNu(s zKpTK5GdL~sa4Ye6alUO*8y&TQew(B~TZ~>q`g|`6LPzQfRLNn{Xs+?Y_lts#wAe_C z&->6qr0t(<B>yCz25*~}MS?|F=r_SlferpOzKO_VX9IPv^QB0K9|h-gnFNp%{@=pp z;)<G2(JlGw$p2TbCS8NZ787TrIE0Np;75@N>yNPd<Up!I-F^t9WU2QlxaB%R_G8)@ zsEq^9(tMO(h8E#8)YJoYmw=-N)NrCZqMaA{C5MvVM+TdBwwI-;y_T|3h7s*_<R`Tu zy-k<Rem3~UMEg;6T?n;15J7Fv2T_}o!DPq?CtY$|S{n-sDB!4?hUk`peJFT|f0J*6 zPpx+i$EdYvP!_U(?qB$a7$_v!pF)xXn*17!wT2omON>c}I`>1J`I6Z}^fZv3t(1f4 zmOA=S$0eTa*TiXY8{P-za-QJRggQ%%$um-3ot|c(J!a(l(clat=}+n?74HeW3Op&t zkG2axf}Y%Np-0g3)Pd!X5JrM+zgLnbQ7%K&o8LNvjmwa~sFnL%h7bCjLGE*MJ4C;z z8b)*ph|9q}scn<p#x$a2_Cwg#ZZVAH?}hg0>u!(PG2FM$8_8JbgSKZNC+18&Q_%+G zxX>4Ijc|>wxrXsx(3QfC6rLYM;TeGxo*Y2o>r71{4M8>uhYk5j!E*cH+KdU(Q4rdM z;bb^DN1*(0vuD(Ni*6~)kFrks(zpXgO3(M9VMyO6N#CTkX%Z!qkxVErQ&Lb<K!abc zu|{c=a(S-9^-v!Q-6!|4THhKUn<3lV;)S}63Gt#32l^w%GJS>@C1PUJA83%r9z5a% zw^B|m{WgZ%1NyTb{keK7(J#Q0xk`D9ZV47&-b>v5%b)zv4h$K-X!}M=oJ=$l_=3X) zdr>gPI$zYO?tnq|pN4BE<v4XHca%M@v3`p`@+ib1w^dFn!H*Ko>nQf5p4!)8%sb$X zdqf{Vn%Q_8fPX?JJr8N}Sc&`BBR}kS6|k^B&+_2!>8FHi(LsAg8iX_mX%NyNZsV=f zK>HKZlp>87+k7xS87MNtn<A6FC^9LmLGky8KgKTPClc{Q+TkxhYy8meeJRlHtBk)H z=ts8@-3>(LD`hUa<?-R0zZf4(1~N?$+6Y>K(q~{RF@tC-P^iWyx|Q}7<QW!Yp5h;H zZM&26EcDd?9R;B7xQ(sFD&b|IR!v8A%lUrdFY<khk#0GOdPKW7W#At0EJ9ny^NpW% z-tsfb-S>ks(I$YtR;64-xAeFlJznQa^UnLp{m3`TyTLuGN)bkiNDiV1duUUehTz)3 z8h@K#wlD4x>7lMns4EldN>0}o?bPnw<PIAXqN5PxPhaOvYv&Mc0;)NE9BpMd5G1>Q zvtyc}=83P1ZZV8frvBHKY0JH4%lGQ=qNcmC=7TMET!FjIw({fg5am_nB=TRXj$s_n zd5qTwd}P0s%klh|!z(&&x75K%9g_X1LsDc@ctcpNsV2l0oE>C|=;}*tlVhl@6h=Zz zLTkYHAQ-E+puH<&AI857AB=ql3QtnUKDq4&qKyZjjiaq2{>XJ`<8m4MqKtVQLmf{D zQrh`RjK2q9>JHFMr9M5~=%=l8l>VZ&y$P6`O)%1glSUecwv&#sFrpvHbEEM=G#=$J z9Aj!~ogWRrvn<IGLf!I%DK;aBygtIX8K9wnB%>{+y%)7t+khTzplUzS3%~|7Poi6C zN5K>^p;bHL=K<<0JYSD;(V<+l6y6lppp<6@%5(HzmS-w%F(Sr?LZlG#ZNi*Mm<Ke^ zFSwoIaB0g<yhFE($XuwDmFQOLvn_S_$g@6`vPZe2u1u&aE_*4|K%tl~grYt|Q6Hfb zf*X`JXP}^sSeF57)igx6#B&YIeK3==#I!R|yOS6j>hK(Q1Yx`np`h((ufQP=D?j)A z$$;`^zav1M8mFh5$60^WGv>dD3rAyOoDIe}+bTX@X^A@5T*rJ=NMG{SlJ`)4dg6Hz zWuPdG<!#YULeNg+=l(-Pj{%M%wcQDBDZq;YGW;lDf;_v<j`72s&*3XSUo0;Z-3L^w z;Y7FOuOa`Bd>Ue251`i_STmgWrl>lUDf*%x%G-cAb(p`IA0-+HG|F+H0YJ~w4`l&A zLRdmrLR^IKyf&a~!lOM1@kx<*_B;{RWNHYh4XO#S`DgoCc-}3A87U0&<uHT~n}C^0 zZ9t8m%~u&~&ckMLFVWY)vRP_*2yS_Our9F4zrnXQhR2NqdWt|>H|1k(gFdH68>*_t zffPWE8eViqgloy?8;qvN2e;`$9z%HEnTxg`jro}rL0%2Yx{0qN8uSTXe|4ikDUOuc zjuJLV!Zn-%<O_fIe3`?rzdRm0x>MD0qO*WywsJ3`yVX1=TZ%#*@mSX&msO&#h37I@ z4;A`gY;RANT8vM?!yFg)!}BKDZTS#w!0lHTO6(r?5!$|*W@|Uc(Hw@`GU6x1MF>l+ z)4~0V=}Lh*ltUN7y3!I8p+nhsCPQ)$9126U07xxX?o)It<rn|g<rj-KiG>el`_0cs zF2gA(Ly7w>>N6<GuOTMF3u*E5QF*pozQ<e#cuq~v!)-Q_8GWoB#@k@bVU21(Gygzz z9pLU~qFV~kQUJ!u02|6&p4)3E`#adL0^xI%dlKCe4uJ5r8589-<asZO!raV+^_(8- zxu&m(E(7UmIMFQyYSETZhS^Am=d}*3|1vZb1pR2hsfH2V628-u#||!g*3Z{a;@21( zfgP&8hdaVR5u6_fp1+v;aQw9=&?f-5zK2_gw;FNo6XNx7<G3CltXp}#n)nUTEWo{9 z^>CYb9jNHhNvv}Lx1Q*hqWmzY^rt9{B~i)Pqe$YXl&LnPMxAdtFsDeyK0en6vkCQ& zbsm?25oI9z@%&G8NAh|eb6xBaL}uvm+}Dx(6skdclG8&vc>Y8sV;l|<(vz<t9~r*a z=EcO%ES@hQeO_6q<CPL$8-xi#m|%)p*E&ALg>X@5!yakL^S=O!NNV-mmi_%GBBYf+ zuc>mcT~o<xEtH$5wtAoFD^chxQ5k5P$$E-vifjn44XcUKX-J2<X-Jo-{U}MP7rA^j zvb#V0$cFYV_W>=jdlq0~Ka2&f-5f`A7+e?Qm4XcvjD3sXm*shO4c7D7^0-xJqSPXZ zW&_0>FOOvzZDjYPSrWd#Rnp??qFW3jKmWNtcn%@20kCF4Sp;GpCg(lFK-pOmtq1Dd z_jA%mcE1Y0lWH1#U380Kq;Slk(6-v3tp%X{$?+z8Q8j)AU?*VW@s-oA#2!F}MEXLF z?0**5Qf^i5f%QbUN7$Q!=%({J8i&3*pbl%|1K!jL^~US6K(s?%w^myvdLNM2ttem7 zEsw?MBSv@LAg`Sy(PqHi&pq5+r_c$SEKx_mt>fVi^`cO;4|&{3MtsoQ47mHRhg*%$ zhQWFn;Eqpp%g<}1DVJZE7lon!8r3n(IYFX(0e3jjEtfs!!Qsi?Jf~Od)QfBrC0Ye+ zu`A{4;pY6Hy_+*68UVO;Jlv{IEv}yybVRq*)<A97i7PXV^BnHH51DV4C~LYzab-&S z9&YYi$#`Cll_(EzmzjrKPTxS5(I_)OY@6(U8gQy{w|0AkQPZkMI{SsRM7PA_b%?%3 z-usC$Qp|ax$deL<)L|b6V<hjbnz5-p3OM7wAHgl}A)~!xSJ$TOnP87sea0o;D$x|6 z2kMf?1<@_<JE0!@Fz(3nI-awlo$F6xZyZ17vZO?!d^MctmV7an$_FxZc(&sC$ny(? z;pYvNqE3N_<#2Fc<A+QLIug$pCWJP$v4vy@TY?f}&g$swdBk-<PpMByv>0gQxVS#* zbh7)AXC%6)=8Lb3ZjUfRT-8e?`UMc<Vz>WtiPFlIvT5xW!>IXeYR>0r9i8TTMn1_d z(T%`bjz`TWyC*m#s#4=_?e+-Mq@yPHJ+DW51H^o?`@RQI_i9|N-Kk<2Auihj^jScR zi{1MdO4N6*a?h>ZVi<W{koy<w0xvCjVZP$!o`Z26zba7&;9)gh4>y+ybgEvG=q<pl z<Kb3yYPU=DGvL<oaH~3Nt0j5?aO-%uRUPMx5<L#Mbwsz^?(K#qtRJ%FKG(^MI@JYH z$bmqNy8+a&S0ckciKfp}%1CreL3#?(_%#_D47I$!AwQ?F7h!%=q8oq>97Z0Sv6q5z zk-t-6|4G0WHNMtvF|0g?6w1}M2YmpzsD|}$^S$Dkm-?PWV*z=5W<T@|b{7C~70Nxd zc3%?)^_hB5qVa${9tv|v_A3O6)wo)_J;JGZvVDYj05MPOegN2|#?#t;O&H{<_8p17 z0$S&Z{VoDDU%9{5ZjW$ko~lr%&jDhd*!?arR*k2%TMQ%bo!hZL&wExIh(aqR3ar3$ z9eWgdhmnGIN^~=@UX4q1OWbFYg+7CNtJ*EmZlG4x7u|ANA?kMl4(uahyd|6n=*6c3 zF2FtWcT;#y1mZbi#C$}Lv6!#r0tUX0VYanf3@?S~@x72Y@%In%8i(gl=drHFc*b$@ zuM0*3*=k&(Tf&?t1NVOe?!OD}KNR=xy@Xeq=nwMq3v=3&ffRTE-(foNeO<C21s#`Y z0r0RIpXiQAz}#CZB9C3(M2-CY8GrX2lWn5xi`{5)V|N-~--Cu9N}!ZoJ*m%@UetL* zBDJsVO{R(@@+s^?wg!oge1ox))A<j=1=VAo`<W6>3ddgDI(auFJ0{jhu_%{Fl(GE1 z2-YP0{h|4kMALwUw<%@q;r^R2K|e|~8gPdZ-O{=+T6fW#RyP`GS-lVC9Wv64UA{DR ziyz9`pKh!SprI9kG_Wv;j8aFE?hm8;p??qbS3o}#`WEPqf&K{S4}pF%^t-tA{q^LZ z+yVP0k;=F|!$dPKV*TEzqtW$xN;~95*W)zo#4QHuvcZQsRARkS;fpf$qXwKU*aqKM zTNWz!>fsL4QCNO^tP7$j3VWk*zy?*%!>y)g5z-s<H|aSsXW9<9)AMi(>FvjQ<Or`x zZddXpx+B6g<c)ITJ&J7f1$pg~9E&ryF%|=<9A=)0=AjIWP=-@bh9gmigHVPED8o3E zVLOyz2+Gh0WyoO`0Twl_)^3k@IZsHd>Q}5;fd4ct4s!z7t)|u5EygSPYO$|nBHky9 z=@~#hcj>6>7CrLsMbVY`exd@Wi(%hL=Lo0TpC$Snh`$5(KF~k|FA^m*qMz5}JJv&5 z`C8kv5+(C>lo{(byLpc%zb)!HjP7ods2Xspdad1JI+73e@zCbveUV#DbSv6iHrl{6 zw7DD6=0>3n3`3hsLYs?0n+sFhT;geoGJ!*C8lqeB=DLlbm?<Wja#2I08?}^HucJYS z^wf8k7bR`+rXCxx*IbD`@(LsB&zBl5VeI@vqNqj6y@_rq#g|ero<(CkYm4#B|KAwT zENwLOG*GO@C%UB|>@CJ(j=<w#svo6deIJXxl@4`SiyqKmAB5)xUStW@P$96}9f#nS z_o6lGnA+Y*?J?FzoW%a-0la_Vz!;sZ!+RPUiVVd7=~VAYa7(>?sW;ZUF<9@0W4#-a zi*JFkcPr;9+Cb45)7sXl@0ehGP7K7o0I6zR9&TP2pj^CAF4=80R07D~m7<M!xcR$! zq!kpdp$>q&?uL%&mb&;;mt91$TTmApG!#~evZ}yZvrw<RQ_w$<`X9pn-!6%IZP8HI z4Y;>TtS>6`6kLcC-M+!T$;5D)2%Qno83dhv&`E|)59oA&PQ=MJ*n<qA2z)0Xe}DH; zXp`h<OAfU6Y_xYvy@pZ_X{i_bN;mYCPUtIU^p$q#D?#Wh?*1g*5kq&Ny;h*T+R<LK z(OyTRy$(TpO+kCT0qwO1+G`h#k<t0F6rB-6(aC0tMtg7BVM2bVv_m_^8lh1`BkHv@ z@Q{v@cj<9|Ues*^_7W-$WUj#XVueQRVMO4)ns91^{bfJQ1EqB_crNH^QKJ`?)_c>m zLk60#%ZEm9G1AZtzSO_ckCH0<DXuU8dFX;XbVeRJArBoq^RS{Ft+<HwQ=^`4t@onA zhrFpjPUOCBiw`AkFjDtQU+P?eeYHY=<RKb)=zu&#DS0T1p|XoUG`kV+c+~sS&4>JG z;x2zYYXT^BLm>6745Gw}V2UpcK^}S`4?U5G1mvN!XC87QDCeSvZf?|4Ci?3D^w;ar zUwf<lH4gnX3jNiD{u-DZiGApB?Bk;h?vKH<PKRfmp6){4^N{z+$op92Jq>wJLEify z?{Ua`bUyAqBM#|zMEX&l=`V<&1!w~$Y8x1hHZT-zpg-Ecb!Y>LXan(R17@^=z~nHb zZ&K2?w<CKazDlW=DE*LzhV9a#-RaQo^yp(=)V0E!VhXVb;t0ccd7;<~G2z^V5DIQU z-h;Jhw=jE%MPKB3s6$7V85+t2<asEse^2Tu0CQd5|7HJ=fx4wipKk5;2&=|dJzYbu z0CIfz*{Dc0F81q(A2EzuhPYT4>9Bha(3kztH(R?s!r;0`+;VybYRblZAP3JlekUay z^G58~x!)IIe<!eBjlZ>93@h(BVeDyR$2(;FK0qOtfsve3HM9vh$#KLRC>~>TOeOY1 zDtNu)D_=W`>rHAJtSh?3@KT%>?LsMk^<5%mj|$_j*{-1^AY-{w79MWCSLjsX`pbfj zhr87toViRxeE|1<l80L^JB-y14MhQRU7>tE+;MnUtrBBr1-=I^M0xPs8GDS**&2Eb zn4-Q*Bf8~#dKvGz@z{&;G<A-KMgj46;-2LAw1^M$*+On(Sl=cG$k(mVNn{;lf%QeV zM;!c}1M=jBJOz~^?|_^S_D3G|4vZP_O9d*`_*%QgaPs%(A=szm`2^~P`$M)(Lvw+8 zHN5DS#(C2?q(2Pl_d<HQC(x((-AR7_r<o`X<H-PwCy5wOI$}KOfbk>(<B4el-U-8a zV#Ii&$9Ph0)zE$*YK3yoqFXZJdx}Er3Fad1FmF7Q@C-wGMt6Fh@Qgs)<9UH@3ECpp zJJ$Ao8CZ9rjWjLN&}+_?b|kuSN*N7Cy>zV9QhU@xThxPYAJXaTkGYBt<CcMXV!R2) zco&TE#%S}&Ht@WmqZf6=I2BNjvOlE7I#)vj7ig$~^UwR97{@{|Zuw!{^1`^q*H#0B zbhu7E+$Ma_b3Q_TpKQWH4b21cRXs6YDLt6d5#KPxHwgLahkS))MB@A32ns{q@IEHq ze?i{3?vXby<jsk=jsXsikKYkMzJicnBkoO){PDHG+cosCnx2Q-fHCBJIK6R)h8j_Z z7gZfGPGxO4^DoziC~{KPcwMnJ?1r^rcdQM2U~QOywP8=J4SQj2n20%WZ_ELcsOA+7 z<{n7%F632S8~%IYXuXDJJ|Kqs_tv6KPikn)Gn)T+En2loLzmZx;r_jRCN9;`y~~w+ zD&=PV%W^|kQ|~_><<=GD)(z#>9p%;o<(7bQ>xpvfg>p+ox%DQ?^Z35xMfCBN?sEJ0 z!r30y(5Xk&aDTHVUVBhOhXMDR*u(udVJv$!v=VTK@o@i57~6ggZ3Wz6Jlua1CbdRG z3jlW*5BJ}MN!+8MS%5o?=oa=BEZ6KS@OR(XS8!r|@H$YpO6kWQ?$&9lVY2sWXd~bb zBf6#eVKg6ovKak!2Kwt5^vyx&o4wID-D||Q=<9*#>qaS*q_ttR_M$hfY&6i4dLLSF z$ViiR`O-~T6OYB3cqG=u9{Uh~p`Q-@VbC80{eIB**oRmgMvIXj2l7*Z{7giCMj$`^ zke?nHd%9rki5BxC?^}dp-@>HqTgcBj%+*|Y&H;usD5ruDDnOi55$71hIS_I3+&%_z zwnKcOh|dT2$NEJ;IEUfqp6HhM6_oYucaoNV2P#!PkF?bE&A(%A1^g%Jv;I_IgBq`g zTS))-MGbuq817c`>5-QE{(r*#1OG|-tX~9#tMPich4kysYUoFxQq@Zo(vsx*h(&#L zQ0gP!MEO{sOv3sk9qW^!SfBL6`XmwSlP*}Fbin!~w89_dA3#mGr;e9!|7yG*ZaMuJ z>@S$9-BsuT4XU1pyVbr`%AvpCw`#&YbZlzbNAhsX=_&hGUccdcPr!1IQr@Cl*++_L zwU1;b^M@L`9;oCnGeT%aqc_%-2CS=mu%<C$56Kt(%Ma}j@7`Ag;Qj+;{b>lZK~0Cl zi*AoN`PqoIB)yL{GVq_I!}|RJTC3boYquDuvVRmpE&E4W>>ufncRfX8ZDYdP#t&;7 z9o9CfhcSKtg&c1WFY19cQ6$zxUWXL_6}aY5(`3D7x4d^0in=w?*&`YXK8igLRj;+% zBaI>x6<t*JC@0kGu|MZULw0%7fGyYV7gfEjp@V>XzsSRFF_8srZ)l^IQtEYd{UJRi zVxHJ-i#P7mbDt=+PD2HNd!I;jOML^d*2UgM1@_DevA>bu>K#dbe^8^oKPa#3Fb~DP zJ@2Pi*Q1Snih2LNC_Dac1^YRA?B%fE%|H$NV@zu87Q;zFu(5IAz3lt|3R;JEtzx|> zb_>1(*nm2y#JfWuqt5`Qb%=}SXqdx#VGhfFai0L}k2G4lJ;DX+C^$pev;PHQE&_#W zIMLnweMUCs5_(?OB7F_ssRF80ebF6Z_ND--lDwPW9#h`UOT<?V5#9J*o-X(fAnGsQ zcdbR9r2q~e<`G_bx2^*<1Ze3+yss5>AMP(4Yn?ju>jP1;UnBhE*dKAQj_4M{MfB#q zgWlLXNW|U&_AjJ(kG%ulM^2Q~d&T$h4PjUdwAD7hQ|{sB@_<ftxR&Yw_j~6aZdE5W zLQB&Dw~pwRzt>MvZNp6Hi|6s)4A$EGE^2i<Exirs)+_hs;pTT;pleih&CnYo=!))$ z?mpNfyIT_>-Kl)5X=BSJrEbh7lslKb{N4`Y#CrmPA->p=fgit%8G>^ldCu>^dr#Qo z48>X~G%2`21G`9!K4gy3(mep%N%H4w$Y%t%x*oR#%kg6lg79oR=MJA7tECCRd^Nls z^6i4#ClcSwV9vxg5hh!kY!1iyeFZv?bkx%Qa5Ky4Owd>)ABlW&k#~Nd5AS;UCwW<X z_&#EZ++m};YH2HQ1Yw!w?_*IOvQ1j@>l7;OA}$|Jr}c;J+Sza8gGxRUAT#Rk*V5_- z@ck<Mv+;hup&I4!AhvDy6UJ1O6Y7TRkKZ|M_!#S_Pv8&OfGVICpnAN!0b~Pfff|-S zMOfIWHnqbwaKi@Ze}-#7btKY*9hG?;^nvX0i1$XwKoIiJc3!rd5I11S;CP_(IsDMh z*8&`G4Y&sJY(>6z1BZd*KqGJ-&~Cuq77zt=2L=ISft!I6zzN(9JOWe$`+!>D8{jnX zClLIQmbw6gfiXZXPy*ZztN|VZwgRsLZv!6zUje6q3qbHj%=Li&z$jo6U<J5_G=%;^ z|9}4uh-gKeUtG+mi4H5Y=FOg1G_yoL*_C~8{OvGH=BSc_Qq|=a$6l*D7RvJF$<|!U zuu|K6OHqZjxQv>e#W^Kb*`=J^Du_cSj2zm^IjY1_DtHYYIl<F4q?Pkp{Z>AnNx&t> zz|L#+Tlq}QoFpU)SM&7|u-BF^v4Fc9T3%3KwaY$Sf~Cc!c1upN)!|UI;HMOUeG*Ow z#zDSr%@J0)<Y5wy({oF5irxOr#fp%VOYO6*c3Gn!Cr^oR)DW8u=kUtvqYyRJ+_$Sb zkz3_{*^S@ZX;y`tKLo$2<Mu!<)r;e;^VD1_*WhlB6tcTCMk%rydnVf%s}bNgdJut9 z79MvrO1Xlh?ZZk-3W{cWTpgEFTwIzbr#UgFz&gy+*<93oO;o+MWY~t<{TccQ<V5t} zO)Y*;!><;8^l*#c>PInV^u`z@=)C|xg5O_#{`q|?rCk1Z{l3**G_1I^%$lB4l3#44 zzS3~+DZ}hI4m&TWc%n6rkHscBpv932bFJ6-7i+oc$v+&``r_~k*!QGax%syaHd72$ zT9PlHy*(+%Uc_g3(>eX*oY_{i<5vD_^%IM&R@*ffhE2pT>>*5%V??QaB7UN(*m`3w z9|VCMl<Fs19U1aZTv_ZzrMRv6G-mjO@x#aVN$SaiG=8B8KW~+1n@{+qCP?^!EbNi8 zG^cc~6}A;wS;Ml*Y}UM@f}*^vLb;Uegx`S5$|`f@XF2BEtXV}E&9m~YWe$7k{H)@l zGQ==x*o4gS8KcGx@12~eq+_D2T<grD66N={tQCacm_iA2$HZ?<74Ue6U!0nw`dm+l zwFtwTeGYz0s#(sm;@p<3GHYR$a^iRv-$FQL<;k5MC!J@N<k;<{^Rja6Gw0&B6_t=m z^|&utOXe2Yaq2V9GsjDq9vY=3)`}uWmP4)vilr=Tg*C6-Va@Wm5Qg+vk0{4hlrX1^ zkJ3oUvpW)SlDng5jy0jUcS7$3<+fXC;D~pdc$tptCOC?R<=FV(b5ty!p+R4;-`LX9 z+2ytoI2)cDAR46|HS{fCnN(zVl;;#@mhcH4nA7MpOO$HKA6}7XwXymL`8ami;BxK% z?ParuA0_2DWWL0KqeJqnIN;$?eFloW2+wP)+ly9fN0q6LQoH&<!D;PfT!0gFH<erM z^DS0;L8*OCPDvi_LO!XTVy=ySR6cbQe3fPiPddlG6X%yXtaCC@fJ4e~16G!(lay9e z#?_%Hk1fiz=h)}-2wp~|LNA&)7R`>&)u-jiZJIT=eCAB6-JQ$78fX9U`@ggV)N^{O zejq2WHG))kxXNag<5f;nxv$EpDyOSl6Q-Q+V`-}})~j;7Sd+@^R2l0}+5O%v=8p>S zV^Z#4z%Iwyf<K%WUfcCD<Dc+xuYKHJf3-exU;BsujS>hV>SDsUcMJ9%zz+a?MotyD z0pRmlm_G`ISs-L)KJ#T6WM=nyG0amVh|VJ{b1o1L9p+LX1#(a%(O9e@$3o_{WF*#t zeBJ}E2`2*ekh8&g(U=NmBYyA_teJP<e3G@`w*fw@gn3bCgoVuf0APT=c-9J^x$+p! z7fOc?^K(Ek<ZAHOFi#AJzIdhzpS7|e5%&ch=0(7hkj3*}_#Bwo{fPYF&pZ$4!8+h& z{fXA&zSe?I0$hgT88m!e&H5DN13JvrKn-N(mw-CRHQ@ILDq(BEw+%*I@E6ba=$T5i z9ax>Cl{sVx(H6+eoqz+76TusYAx_9u;7b6XQNnCY!&4eEb1IMynfXp&I%H<Q;V3J} zLEwCV@5=^`8KKCD;M-MMJSXJUbRyr;I4cKXnWF$xF6tND8+!zCki|1sUWK0*_6({~ z7tH=Z9c1Qqz(vTspWw}V35b*T6ap-2n*l!!@Od)KQ?b7=9WrwX;DF5g4o858A@lx2 zS_bL~GVeq9XQIvUJ%SSf-WOvo0MZ~cmjP2CJHh8C5t$*=WRwHIVa4-5#Ir&8j1ZqG zco!rO?<9i917^s~nLuC2;<+5+Ss#4H$F!+9s|`BL3xTzenI8k5gv`7d*a4Y&EARzm z@$3^m6J_8u=%CD*`Sh!!kh8(drW0jD7SF%nb1}N$Opk_q?2~}|0T&^QXM6COAKwB! z;LmKBfi?tLJg<Y#@mQOMe8Zo4Gq4tNHMl$*Wdhj={t4jsJDR{@xrhg{8GKzH_LiWN z3htE;`)0`ESulJ?%o?Bq`pkC&>-k>5x|zrm>L>`DU4;E6gk}B|ID_&Dnnko?4#qL) zi058xf}i_L4Cb(Mj7894?g5;E%zSk&+BRhTm?{+j4@0(r_s>U}LT&(;+>ZPdz#qKH zsmN7e|D`Asv>9giITy@Ntw3LcKJzYM8RQ!9_jh5>4002A;@ucGAUna|0z76mf!*hC zFh2z(ay;O-fHaN={LES<pVi=6fWtCheE|I&It>rPzF>ng_NId02e@rFfy*CK#v&)! zeI5a`v=MuXMc8`;2Le@)#j_arjD{7!lZ9HDcR=0+xduG_5sYawQ7>RV8(<;)#WMo< z?1Al@u`i4`nGXR`u-j)o3M4{i{z~;{4tWys!ru(;{{qSraw_<~YJ@>rRbaRMKXccY z;SU|=p+FO4@vH<sL*ZAT26<o(#Muq?ki|0`#B(C}{D_0EV2r@MFrNbapwFDR6ZwbC zoC2glW*!gZLl)1;;PW$90I6JV;FCZG<R<V#ucPhpy?}4si?Hx_g1-j%Tm<Hv{itim z%oRX2<SOtB0G}7aY(Iedg3Me7?1n6!Yr^N9{B#iGHvE}2Zxh8sW{w5=LS~Lr{S(0- z0%PId06y~$>H=~T*mM}<Fk~~B_n*1#G50%y^Ci&sQo(ls+}@nv^G7jO6l*=s4&XBc zPQ8!#;m>>?$Y-4oh&}@xkQ=~bYVj;U9~aLi5YIIb&phC>5WYQzF%$N>%%_1S$jm-< zga(9h8+_++Ja-^7KLjK~7SC(oa~yVljPV3vnLh#+Lgu}7<0rU($h^niPnCJEeU>Wo zp8G~s=DqiKRhjqTFR3!sV@w7(9^R9mrpnpiyHuI?=wDUk8ZhtGM?s(YzR&Qihs^u* zQ?chx><``#aGBSF=YNU01pJ-gZvZYs@vH$pgP;LeJqPy%{u+1^vUr98pKY-B1jbwV zGw%azki|0v_^g5WuhFLA&)f~rmEgX>!vTIzk@+EDH)Q5#fI7(4;C%q=Fh_iYGC^48 zIG_i|1D*x&JCV!_zD0k7Kl3v{24wN9fxweQRv;h#%(H-nkZs@@->Gv^u=~6R<`Lf` zJ>-FTB+wVKc+Lc$Kk+iK3+;q?J5UE%JXeCxn|Kg734i8C0R!T}`ismzD*cH06u@&x z^C`#x%T3_OGm2bumgw;&jOoa8HMrNWN}VQxcLO`%A9Nl~`FFH|Qrs7K;U8$Lkey)H zRg4vo`M};uUJ@N;*;}G|U^l`xfZs4Eat-)fUx}{3zX?1rP@-_?r-DO6Bx-=a8JrfX z=-Apyv@%knE%09pz5?(Zvbvo_m&_8ahCjvNoqB-pD;0bPz&cLw8yyv$)J`}jxQiq| zrzl>cHVLqwL%L@0yd>DKLUw|O4}h&5WD7Vs1$J(TKNWmo5bg)@(_o3d2H2lcac;y= zCC^phVZ#-9EjVd}qMr&ro{lpC5T|&4fq1roc<uq8hu{Z0?RcA3=3vMvkeS;9V<9t- z2Bt$6?Y2dmZnpLQ9as<BYi8duC_~81eSuw&McZ+<Dc=lChd=Wczy?{g`DR;i?Ks%C zz@OOwd;!@89y4Ak6AL)}MwB7S#|$=Dl)9svB)V;a;xF3bvyFZUZ0;A@@f{kNZSFTf z7H#j@CO<R-d4@l87;qG_XnW5#`3He7;LrRv&;(huy=R;J@=OU2E3M3PA)6pO!G8dp zXPN{Xa^UE#Xm4Qmc?ZnClToMeXZ8oqKo-w8;ByaF0axJ9yaotD9>jAE_`HKzQzX2{ zjj;t>3Zy_5&o$ul4op)~*YIZ!1F|8T!AAib<XUj?G)1<7qi%-1Jkk}<4B)c_Hr;~y z#yv7`1;#=a&xsJvkl?c<ex3na6U4)O6)1+xJTVJ(1X(=8LOkDs&$-ZN!@d=5k~tFa zgFf>}APTZASE47aXg|;q&zj&fDB2gHpF)RuAg~*<cqWH<UI(Asv12ycHsWF44QzqT z99)cc0@(~c0C1Vqg45<G{m}xh1NfOGo)5t12K)p#V28~72e2BlX!p-&1ndBwgFo{x zzyZk2e**Q8#WN51?1NaGV{j2=&fFb{f{u8e0iSbl3g`=e=5s&>WYN}Mw8Lln{Ok(c zBkby#Zv&1(X3k%L_77RKhZk+-*@nKxiTa(3=Q#LtARjU_pBvzSES?`Ao-M#<4kX-# z@d5EOrvo;~%pF(3t`2e{IB7k`Qp6+L_lvgwd?vu!jd*_nI?UUEaLCNghcWI!W=?)e zjR)*LPeD94;gM$~dUG547t&>}2jU<zZ+{-)A=iM{y`a>471;iwB8ztQY;V7~8s$F^ z=VF5^fw7Q9`+T<BU-J_BB>b7z1M!f>vjF&vfG1u?T_FF=&jJmQtHJMYSH?#1TmU{V z;JqCfqoBiF2j~!I1NgUB)aT2qE$0*PIR%=XXy?#p_5pT77VWj!j{B2cuveb1mAUt8 zsBg%k9W>iVp9gFU@ID0iH()hn(au`5!Did+iMuggL5H~zNQKPIw%-=Wq769Ph6lZg zc8GMDBY`H!;&}n$Sps~<K-pWk7u-AZVxS%}bN(KQ8X=442k^N9ooX<KS7>GK0@(yP z5qt@dpV50I`UqfIJO_c#M_36IBTnWAfJ(@sy}W2k&o=hC2hiV;e`Y)2fXsaTL9|cE z;yD8183TOwz=gNbrja*h?|1NAgUoyc*aBI!_ZQCs;4=d5eHZtI_?aIEdO&6_J&flC zWE=B)N;?tHMG((S;IkBdeIIQbX)$X)K--4Q{1z}Bat*ljBPAa3ECcbJ13v$tM;+QW z^qEtD2FT2s<EUTAqHR3e%ol%*F$!&i`B~r#$fCVE+pW)Oz_@%H?gi|&e`kKL5zh|z zi?-%$gMI?o4S(j~Q^*5k(T1IE+s^`(@Mn%Wjj<ZCXot)8xljI#{&t5}=7W&^7NIV{ zZaZVqhL~-M*;Y6k`l8J++Y<lr3&t||GpGKFI)%)<4%h{`3hcI}7VV+gPWs*7Q0BL5 zW&Q%P0s72+e#dyo@qpbn-=f_%+jGyngua2W%nN{rAu}HXo`Wpf3A6oh<rR#LxJTwk zfa#E{z*9&==7o5UfCF`~O+#6UcI#}<&i3iG&=Kv_*?#>4*w=?6EoQc@Pvmq3n|rps zXIuJggcWV-+15TfP(xeb&&)QvHIPNyUAE~R5v-x<POOi>BY}mGMcZSxK^_NN=0ms_ z=J7xiWYMOXZJi%6;XP#dGamz<gDl!0vn}!ufFI&#)`uZakVP9|wjKTfSj{?MO}K`h zge=+!v+eNhzz+B`KMWj#T-_e$0(8WC(M!<Rz=yjc9>}%eeZ7$GQpn(&lHm_I^*Y!` z_eI$)M%xAlrD$jwWai?5c()aC+Q9LH@$NVLYtl6I%Lv$^!QVL&JQ{X|@NWSBG!8mQ zs|kGKCfHg)ZUA4&fZZ3;qD&3uzQ`x!rpb8sc?#@z^6=~fJEo$JFdr7}5=EOuwq4vj z4fnMi>jm&@Ks;pTwl~986S4(-65u#Rn@rJOQ?%t|8&CZV<art9kl;WdA2M?^;DF3L z0$2uFv?~>DPT3aq)hyU&;l7yP26WJ8z5tjYXJ>2ZG{AWi?K?%=Pqqo2k&AMGK643h z05bC?pbj$SX{Z`ly#n_LUYW0<3dn20-L0rI_6NJ|_?QpkJ?uF6Gk*+Bhn!fXq33~g zl$&TP$u^W>b2M}w{>+1c@H^2?z;2sK(H4?zB9E15C=EKyUjc=XnKh-z8)VV8QM7wx zd&n3VT2(=ZISJSWnRya$2(oDB$o7wEx1#^UpLsZN5wd8L%C@Ryz;xuF`C-5YS+q%I zTh()b6aLImWw6DCEZU;7jp`r3lkjJD0X2|CTU54DeFmt7Kl8J|NyydU>~f@wbrbVv z0Pp`afTzt><ZSS`d1%k53(>w%v`J)J#hteyf0fvy10M%cATzU#;#kO{t)gfXDB2LR zZDGGVkS_F@ZvyHdGqYXcNywsop=g`QHk*};QI5zb^Cn;y<SOvlC8#5AOG{g9>e#k! z6KwMgE1@IU=&`NdpZB4x?!x`9Z?P3*o53R3z-7Z<w1s1vxNo0?9SGtPZ3Nj?aNP6o zhrVcY$F_IdUqL+37i}2Xma*$w7%QMJ+L^KanG2{|h2L@lUsr>^23fRUW4pG%z35Z$ zXC4Bqg)G|Av5j5yKJ<6^GiL(vkVX44wma*!ALGDkyoU?60(~Ki_H}G`H~0Yj5tjK@ zU^-;cwvBDxZaj$g4}a$6fDZA9_JC|Bm<1b;T9gCx{lIyy3$WYvgE{;#!rluTYH&Xw z1+r*YBHE^~jSAbKRISB42kf>@VZQl2jQ{Xwt^!U%X8sj84_UOM5p8VP_NJ;9Wy1R4 z?LazY=8z9zKMh&5^%3oW*dFMuV|cdSqm}tX$PJL0lj`tXhAi5ou&qk<$LKG(N9KdT zGRUG$hiLD?b|9Yssq3(=0kciV6v(1&2itr+R*&%w{>*HHvKF#viz3>ou>DHNXBzqf z=`zOv=OHs^13H9dUjI1&|0;0Amnaj|uNnO4*LW^Kt^!AYtNMdC{D3^LKX}BCcpgKx zfIm2;=+uHIpHXDdMoqM9V|%xEf7VcsyD>ime*$DfW@bA#8)Rm;y_;ww#<pW@3l@$t z7j44WRxI#$!~=h3w$H18EZXUbwtZ~#x90-tbd6T#_aHYwW@cNzCdi`ApJ*4y_Hu0h zwgveV?cmrxF4~2#@MmTlMFa96+A50njcoV$0b$L7w3xpHvLQ3Gy`v4XX!p2Qqoo4? z@BNB)JWcTXM60FeP^ZidKn>&u9c)<i*vlzF`vgA>@R~8m3(q`&zhlY<zXEWaHDISN z>_HHgxsM;x;dTP94?uqILm05zu1B=pVH=)xAxIB8%o_m<Waf8(Y{*UEE^U;w62S)m z-e;}_Z!sa=JhW%<u~0DbCfe_?T~AM7!+i>mhWs34ygNmXaD3-qh&+Rz19<OCwCiDe zpN<jOKZ8E=4L~hq(XNN>eSQKO;Lm&!I1ia3we&2&c@u4P*mmb3AZ5M6k3*gUS+x0K zTOgk(lsEjDgMl89*)C*ed+aelW*a8|4r;xCX9N7~c7h)VDxvcvINA(*6%Gqt3{*j0 z2Cf6RPMLp-K{;}q;5%ZGXUI<Q_KvW(x*zd^e*w5`&x7ORl(J&J1Y|(x3V2Q@*pooV z29D|sTPXN54+c1`V(<!8t_1H@<pbc0s?6-)MZGU@UsYxvr^*&^HNfu%FgK|F%;!~^ zd0@Pf&s1=DSG1q`3cm!oknamz4{*IRYr8432|S}ao>$Px20sjNJ7=y}<?J5V`v9t- z!_0O~CsA(9Y^%gFGus}Gg%0z#KqcgVKL0aIKquce_A$VK(_IQ~e+@hm|H2<8rt)uO zO=-gWO4#DVanAB5C8w;+Iw!YyzPVyfaY@<0*m8SG|FXP7>ztgjggHfd_R_M_0!Kn# z>74#KWpjGY?Hy~z`_4rLc<o)axfvMSyJuqTAb+FToZ_&Tm&vwE|7L7`lyC@HhBwan zHGMfAGd?MH>#gNT#hQ;d_~+uq=$Y2C=8NLx;quGsc>Q~<b*{D8T+IIm#^%8GXKpDB zd}7VzMMLuVE$@M`1v$lK*4RNQy_)0p4BQ;Qpm9y=DZM=Mn$oNJrV%`)m%BU%S%z4K zq@|4-KXS?xRrvqnW}6#7)R^t@ipMDxV-U+#6;;lv%Brf(TQ*m3-nE%5%I_bpeRjjM zQ?}Z+R&0e*HO5-5=_*52P*r%9xhlRYv8r!XYE^obrD{r5c2!{&$HOZBeE!cZf&T|^ Cg5WCv diff --git a/win64/libs/webpdecoder.lib b/win64/libs/webpdecoder.lib deleted file mode 100644 index ec862851e8dd096e412fa2d95815195dfe06a1ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10756 zcmcIp&2L;q60gMh027E42Pgg>f5mnH#{^IK&|=wfAQ|C=kv|gc3dxyxp5qC_j5Tox zoc6{6p`18yM&ba6hyw>MNSruu+U2%UE_>Jue?+ps>W}yO)$8|$$v7jG-s|e>`gK)T z^{eg~`CF;6xjo-`HW&ZB_IkW+TeIfn-0S(b^y`gIBKnBv*fvr3w?ro%5%v5?bo!yD z;oC$^<3DSfm?C02jbTg^Uuzm)Mn7nDRMY7i`az@j4L!yaGzPtj&^HFk6*cwD0~d61 z$k3N~GGPqU2>O@?e%I9d6A@GYAx#6YfvN8sO+z^%roneK^^JoM>i<;J-~;eM{eNm2 zx(|6!?l(=7YeY=Fmo-g)MZ`4ngQm$p&<`4h516J0G)-ZSilBQ6bPDz=x{W7j82%l8 zw6RgRQv7gbZR6s5t4k||;@XER8~1{nJLO=rUJe?xv2k^Mc{wRW|8%6Z%-ZGks~>D! zTwGhksLCfh8`p|&T?%%WitB~iR-LW~H;aW@W%pvRdExHXR?sNac7sN(R5jA+{oM0@ zBM8Eg&WJc)>9`u)gQS@~&qH!;d*#vvM^gdgm}7hYzJARb5@R_HF&ZQE=!-!$*bUrX z!%<@wcXonW+3htP)w{k^F2%<hj_QSBaH*Jh#B^lj^tF)US}C}wyx0gz?o_nrG~1C& ziYQAl7d@bHEoj`S)N77hvJdgFv>j}Iyjr<cEA8HGSPv!nI&xIlxS^yN=vz)xBRg0Y z^N1@7Ic#6N*X8iLHV*D~Bf()tGK=vw(K3n|$y~U!lGLM^k&I6b^CAfhaJ;O6m={TK z9BQ}4c~OfkLi*JcVqr%l%SL!*!;VOnjq%Ec9g%FBTFZ|lF*r@B;zyFO+$(AMEQu9= zKTzR!2eNVp^7Zm4vvcvTvQ)2aRc?94rprV#On6+a+iI|Tz25lP?1@{YO`94#(9>z` zNFM_;WG9cgQmR(#o6Z~zgZp?Vb$V1&!I!pz#JJUnX=RqAZk91jD<d#iBE(s$?|fdY zmTK-KA|7i{t;%OX^^P-7hsiQ9e5qcoH;N@}!LfZ*_OxE9ylIM-8=bTG&Tbzg`nH?s z(Fvj-dx##Q2)T_9@Xz?RPfb7o?XU4%Mw@Gq8rt{qd<=RxhBl~}Bbvw9p_4>kf*ynB zM~HsMH~gnwqC@>CiSYhSA8LUiqIU*S+u;3E@E_p)Pdx8~{~PqIO%h$kn6IXZet?cY z(B^_*0PT6yNe@5|PhpOrN8o>i?ru6kFH;Ylr5Q}O7vcldM>!g$emX@%G(v+kMrY^{ z&C+oir;{{AN9ZLwO2?>+UZBJD9Cgz3^dcRk37V!?={0(VCTSn-hwcN<NP7omela{B z2=_Z6A}MUD(BqcgQl0%&Y~%iY&ynZNPBg_nWp}g)4!fQ+1T9wsH-(1eF3G!oq|e>) z!W82dSf|S`B`lMI6@aH*5PsARH?eIRepudNq;J<Lxb+QGL(H06&`r!%+ske2v1)GS zJywgTx{6`BS~IiM!pZ6_<VV`wQp#J3D%HBjv(<C2vty=ha4aS_$fReUy7CSyqO>ZA z7u6Kqp)7c!3Q8LtmPb(u;q0-3DfVl#dXbQ3s08vcRZz<gB!{!VYYi%;Jc6m!hF3F3 zom9fP<z=R6@bWqNq-L9f5np`%;^`QP@%p8H!%Wb7>+M8>#&kOC&k+g~nXHkxO<9Kn zU<`@7&`saCC?|1(<2h}}gOZch&Ty05aZcRlydkJWcZ8B>DR0s{BT`d8lJV9;-r`3r zx3eWg+C0Tw=E?eAbT*$USF2~6-LK?l-!?ZbH#*B-bkGz0y7v*j+xj<C4sPDPHNI+^ z^d4Stxe)s;P}hZ-3XY|v@pHBVMGyTO^gqMsz;l6Se>HOF4I5PgQ3vp>9P<|__v?N< zdr&#>@2D_plDfMNga0qpOQ<)x=)21CE0xVg{Z4&rH#fC1om(zk{lN6c9!JpP$uJR0 z5PsuH98_-ti552NpX^}H-&OYQd-B8`1#uKHOxE-TA~o%8%TY#ZEF&|=G8jamOg`c; zAGKikW9>xmhHb|B2U<`4VaN=ePGNe}$T^pvb0TNIikx3CJw0tAU*wb>WBApHoHuM2 zN6z=QVV)d0toNBj#9vus)Y9;K%2ij(o_pK%oX)xb0wBwC89A3XPEt9`Ip_WsXu;;( zoaJ+F|Hn4WljWX?hyRLqM=*)Z;B3{yVQA*~)|eBw`~~l9qsrO?p7Vh~Akl7`4S9QE zEf8_|!fEFqBl2h4lwCr5%V=|Nn$#0$IPM{elzl)`A9M-Ta-Qe&eylNIb!aSkt=2Z? zoVoMQ3Hxx=1){PqEJG!jXg6QE@E?eHtl$WYbvvL=2~L44)KlyJ%!rgjE}p8LC7ftC zwJs}C4jVLGGRh!)3d=G)`CJT375u`Kr@+gI%;yt$sxEIIGh_8SW0-tQk#M5jboKHX z9(_TgEhgYvkIf8^9!cQskw@*vP~<xA)h|j+FJ#MJ%~->iVu*a25!z+Dtu;I<(Vp=d zb|vt<4sAVdGS={z#PmW6FE{sU#u^@vA@VU$XqWBgXc_kLJ?3?sm-Q}c5B2RL&ZT4` zE^u*csu9)sQ3CDh+P&-`!9H^_C?Q3=xi`=ID+)gR^cX}gmfSlIfzkR3rc@NTbjPi= z_9rm)B8C^6?V_GfiBep(<NiEEP29`0i<?zH^+vef0#RT$Url>~Aog$md!aAFl6Of0 zruDCXmW}-e*IrXeFwt&qW5#!Qz+xeG5JA3AM(a6w&YvMU_;fIir|z_bJuPQPmM@1K zJifJS7c2jU-!?u34#%<deV_zv*_&C`<sw9N)hNM4yLqH!tlWsjaxO82e(Bw&cv-fM zI(WXY6xeNHjX79*@x`4>*;V)=W;~9y2Q^cc7bh&5xh)o6Yk9@ar$opZSa#ZCdGDdy zMo#(e&H#Bbj_mn!t6lW0ljxK|H+Sa}s^yH&IyX%lEa%_3w(+u}^^AkJM-^Mf*XR`o VZO^=!l8gL>f7Rk8|1C;*_5ablo=gA$ diff --git a/win64/libs/webpdemux.dll b/win64/libs/webpdemux.dll deleted file mode 100644 index 38a62c44ed6fdf877dae731b06237eae655a0577..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19968 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 V$m9E;7<}Ty6Da)a=Rd6k{x9~aDc1l1 diff --git a/win64/libs/webpdemux.lib b/win64/libs/webpdemux.lib deleted file mode 100644 index 13cf12ab473384208c8fb3847b317a96948a71b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6372 zcmcIo&vO$u6#kq50h3@S&aVS)4NZqYX_|yMO{STS)1)aL631hbaAC$c@zR(kc4qA~ zoYEU7jtmD*T$ug?43}OwG2Gf)XSnpx|AGVINh|HHw6d|g$<91$_1>rbo}{NI$(QDe z_SW_f(QlLL^UZ`>m$h;6GBG(b<-FdD0=N!Dp8(x&fSwOP>@LvvRLDgtN#ZXZ>AePU zc}^usV%U-R9N9@?Zyg!70VV@WjwBuvj->yckOx$f430W7)D3WXPbEo0$iORVPcrz- zk)cDf9~KIkmE3B6t+4ph?S*_Mx3-!u99WxsC2M#8Aqs`;`touRg5O<?gIK${p1oCA zoL`%#Hs#&D!bWc9XRE%DThCPPS8>PM%*|KIyNlLVwPe|=d-Za)Qp;4z^-QI1*_Gms zXx0KygJi9P=HKuGw6^3Sch7OTfibAgS`X`Hf9ZqVsI|FStgTdSYsoI|S~YV^6{5Az zTQ#czqhr$W<i;YKKg%|g`RrQDMQg{ZTjo~6##+b^Y*==UX3~e(Eey?lF-(%GcaZ@f zIL^n;>qM0C@p?M<JA~jPZa_JD7s=+#2=xpuHfLME8L^(h#pY==i#01lAzrLk{gc7n z)y-}@@_b=?zw)cWb4TwYnS(~CXK=C1K_k{PxLDyDhkwF-71MtHoSl~WlM*1FP!@ed z8SFz3a5n}#?E@~7yo>|adV%L8!wF!H>Tk(zQ=_E;;4$gm^#cz`Mh7Va4*~C)kp30f zpONm6>eq>*8|Tr5vp9z{IE^S`7(g%LxPU?QVF(EfqaQtppaZ8`MtAC2&KI%1+$R?Z ztxY!Cs>PHnsR5fz9o;lxG|73U+^ad_<&;J%&j}+pTHKZ9*JQZI{0r{dckPDoWGZc4 z8UnNNDpTXoWil-?IR{?)`d^!%X{R%8C4r2l&N?5XCb_!l9>rtB$f`z&5#o;%Bfu0b zMxee$`6I_`z_m2`PW%M*#>7haK&E#iO8bTvR|bRe>t2j$Exbt63~l5_L+aFHugOX3 zK%T?KN;^B0SU+_ZO^wUL>b+>`Q74Y*iA6w}&Uwa4*5>{%Bez8r3-m$<N##i+{^MA= zRIC?ACZ&N=D*ht*PbfO6Ok@1Dz)cG^<xe0&d=kg>X(V5FP}xt}mOVX6r>-Co?;`Er z+y?qW952d!E9EV_TC3i#Cr9&FlgpXxEn!y*+9kkTVFF6j?2UE>O6lxP;X!(<y1PgI zz9>f`M@RlP1g134M0Pt3aF@5GhIi0m5|}B5p+;~qDNn=nm)Vba*w=yYMU535*r4Cz zKYB-%PPY&-lc`B@k6{th!6W8R?jUm$FhxwsF}c6Kh`Aw^EMoqU6;ZN?IiW~sWp+O! zHyU1N+8(!AdH?fP+P_5LOtpF3nyj>x94fX_*-G<2X{6;!o058l`$twp$#5qyzO9Vy z7v#b*=CP?65tK=Gr)JBw^oZp$x;)c!8tUCrnLBmax3B_I;`Eu+xJHO6LP_P0dPWmF zc{t8#89W*%UEnE#0-SQkpc6tk-qd&Ias7&TJB_^j<e`$bonxA@o-(rXBTY!w=^N(0 ze$68&FvjXxDJ-|#hPC;<O5A6HJ@y~M!ZOdAdp$wST|s8k=`N%Psg&7+FUf<mK@Xf` zV_41x>*;giJSRB)=TVhTskM?Z<d&(;Zj#udem3`<t1zf*I3(YBjn6sZhU06NeY-Wj zjM^Ku7P4<WelGXCAFgky23g?}&D{k*pLdT?3ER(pO&DW3qiOn%l`-yT^lm;U*vDR- z@mTseE&g-YcWw6XPM@FAcvn-qtJGSF*#<fG3UMb4-0mGvAwv7}+Mv&uiML<y%A<n( IV?(9<2p!+v+5i9m diff --git a/win64/libs/websockets.dll b/win64/libs/websockets.dll index 1a10eac8ddbef5ab2786b7ab1d9a303a3a44efb5..01c3c8c726df95a0a83376016ebf39355153a700 100644 GIT binary patch literal 206336 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[GFG54$t(@;_?FE=?`gkZA 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%0ANPP{k){YUa3%cz( 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 literal 300032 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 diff --git a/win64/libs/websockets.lib b/win64/libs/websockets.lib index 23febe600bcc072c6262654bc75c9101c491974f..96ce35c3248784b5da46ad385e12975e7eb262a1 100644 GIT binary patch literal 66588 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 literal 105444 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 Oy1ma!)4X|<E&mU-YZ)*A