Wiki
Download
Manual
Eggs
API
Tests
Bugs
show
edit
history
You can edit this page using
wiki syntax
for markup.
Article contents:
[[tags: egg]] freetype bindings for Chicken. [[toc:]] === Usage <enscript highlight=scheme> (import freetype) (define lib (ft-init-freetype)) (define face (ft-new-face lib "/usr/share/fonts/truetype/msttcorefonts/arial.ttf")) (ft-set-char-size face 0 (* 16 64) 300 300) (ft-set-pixel-sizes face 0 16) (define AV (make-ft-vector)) (ft-get-kerning face (ft-get-char-index face (char->integer #\A)) (ft-get-char-index face (char->integer #\V)) FT_KERNING_DEFAULT AV) (print "AV kerning: " (ft-vector-x AV) " " (ft-vector-y AV)) </enscript> AV kerning: -64 0 === Procedures <procedure>(ft-init-freetype) => <error-code></procedure> Create a new freetype library object. <procedure>(ft-new-face <lib> <path>) => <face></procedure> Load a font face from a file. Returns #f if the file can't be loaded. <procedure>(ft-set-char-size <face> <char-width> <char-height> <hres> <vres>) => <error-code></procedure> <procedure>(ft-set-pixel-size <face> <pixel-width> <pixel-height>) => <error-code></procedure> <procedure>(ft-get-char-index <face> <char-code>) => <glyph-index></procedure> <procedure>(ft-load-glyph <face> <glyph-index> <load-flags>) => <error-code></procedure> <procedure>(ft-load-char <face> <char-code> <load-flags>) => <error-code></procedure> <procedure>(ft-render-glyph <glyph> <render-flags>) => <error-code></procedure> <procedure>(ft-get-kerning <face> <left> <right> <kerning-mode> <vector>) => <error-code></procedure> <procedure>(ft-select-charmap <face> <charmap-index>) => <error-code></procedure> <procedure>(ft-set-transform <face> <matrix> <delta>)</procedure> === Records ==== ft-vector * make-ft-vector * free-ft-vector * ft-vector-x * ft-vector-y * ft-vector-x-set! * ft-vector-y-set! ==== ft-matrix * make-ft-matrix * free-ft-matrix * ft-matrix-xx * ft-matrix-xy * ft-matrix-yx * ft-matrix-yy * ft-matrix-xx-set! * ft-matrix-xy-set! * ft-matrix-yx-set! * ft-matrix-yy-set! ==== ft-face * free-ft-face * ft-face-num-faces * ft-face-face-index * ft-face-face-flags * ft-face-style-flags * ft-face-num-glyphs * ft-face-family-name * ft-face-style-name * ft-face-num-fixed-sizes * ft-face-available-sizes * ft-face-num-charmaps * ft-face-charmaps * ft-face-generic-data * ft-face-generic-finalizer * ft-face-bbox-xmin * ft-face-bbox-xmax * ft-face-bbox-ymin * ft-face-bbox-ymax * ft-face-units-per-EM * ft-face-ascender * ft-face-descender * ft-face-height * ft-face-max-advance-width * ft-face-max-advance-height * ft-face-underline-position * ft-face-underline-thickness * ft-face-glyph * ft-face-size * ft-face-charmap ==== ft-glyph-slot * free-ft-glyph-slot * ft-glyph-slot-library * ft-glyph-slot-face * ft-glyph-slot-next * ft-glyph-slot-generic-data * ft-glyph-slot-generic-finalizer * ft-glyph-slot-metrics * ft-glyph-slot-linear-hori-advance * ft-glyph-slot-linear-vert-advance * ft-glyph-slot-advance-x * ft-glyph-slot-advance-y * ft-glyph-slot-format * ft-glyph-slot-bitmap * ft-glyph-slot-outline * ft-glyph-slot-num_subglyphs * ft-glyph-slot-subglyphs * ft-glyph-slot-control-data * ft-glyph-slot-control-len * ft-glyph-slot-lsb-delta * ft-glyph-slot-rsb-delta ==== ft-bitmap * free-ft-bitmap * ft-bitmap-rows * ft-bitmap-width * ft-bitmap-pitch * ft-bitmap-buffer * ft-bitmap-num-grays * ft-bitmap-pixel-mode * ft-bitmap-palette-mode * ft-bitmap-palette ==== ft-glyph-metrics * free-ft-glyph-metrics * ft-glyph-metrics-width * ft-glyph-metrics-height * ft-glyph-metrics-hori-bearing-x * ft-glyph-metrics-hori-bearing-y * ft-glyph-metrics-hori-advance * ft-glyph-metrics-vert-bearing-x * ft-glyph-metrics-vert-bearing-y * ft-glyph-metrics-vert-advance === Enums ==== Encodings * FT_ENCODING_NONE * FT_ENCODING_MS_SYMBOL * FT_ENCODING_UNICODE * FT_ENCODING_SJIS * FT_ENCODING_GB2312 * FT_ENCODING_BIG5 * FT_ENCODING_WANSUNG * FT_ENCODING_JOHAB * FT_ENCODING_ADOBE_STANDARD * FT_ENCODING_ADOBE_EXPERT * FT_ENCODING_ADOBE_CUSTOM * FT_ENCODING_ADOBE_LATIN_1 * FT_ENCODING_OLD_LATIN_2 * FT_ENCODING_APPLE_ROMAN ==== Face Flags * FT_FACE_FLAG_SCALABLE * FT_FACE_FLAG_FIXED_SIZES * FT_FACE_FLAG_FIXED_WIDTH * FT_FACE_FLAG_SFNT * FT_FACE_FLAG_HORIZONTAL * FT_FACE_FLAG_VERTICAL * FT_FACE_FLAG_KERNING * FT_FACE_FLAG_FAST_GLYPHS * FT_FACE_FLAG_MULTIPLE_MASTERS * FT_FACE_FLAG_GLYPH_NAMES * FT_FACE_FLAG_EXTERNAL_STREAM ==== Style Flags * FT_STYLE_FLAG_ITALIC * FT_STYLE_FLAG_BOLD ==== Open Flags * FT_OPEN_MEMORY * FT_OPEN_STREAM * FT_OPEN_PATHNAME * FT_OPEN_DRIVER * FT_OPEN_PARAMS ==== Load Options * FT_LOAD_DEFAULT * FT_LOAD_NO_SCALE * FT_LOAD_NO_HINTING * FT_LOAD_RENDER * FT_LOAD_NO_BITMAP * FT_LOAD_VERTICAL_LAYOUT * FT_LOAD_FORCE_AUTOHINT * FT_LOAD_CROP_BITMAP * FT_LOAD_PEDANTIC * FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH * FT_LOAD_NO_RECURSE * FT_LOAD_IGNORE_TRANSFORM * FT_LOAD_MONOCHROME * FT_LOAD_LINEAR_DESIGN * FT_LOAD_TARGET_NORMAL * FT_LOAD_TARGET_LIGHT * FT_LOAD_TARGET_MONO * FT_LOAD_TARGET_LCD * FT_LOAD_TARGET_LCD_V ==== Render Mode * FT_RENDER_MODE_NORMAL * FT_RENDER_MODE_LIGHT * FT_RENDER_MODE_MONO * FT_RENDER_MODE_LCD * FT_RENDER_MODE_LCD_V * FT_RENDER_MODE_MAX ==== Kerning Mode * FT_KERNING_DEFAULT * FT_KERNING_UNFITTED * FT_KERNING_UNSCALED === Example <enscript highlight=scheme> ;; Render an anti-aliased "A" to text using the chars 0-9 for grayscale. (import (chicken memory) freetype) (define lib (ft-init-freetype)) (define face (ft-new-face lib "/usr/share/fonts/truetype/msttcorefonts/arial.ttf")) (ft-set-char-size face 0 (* 16 64) 300 300) (ft-set-pixel-sizes face 0 16) (ft-load-char face (char->integer #\A) FT_LOAD_DEFAULT) (ft-render-glyph (ft-face-glyph face) FT_RENDER_MODE_NORMAL) (let* ((glyph (ft-face-glyph face)) (bitmap (ft-glyph-slot-bitmap glyph)) (width (ft-bitmap-width bitmap)) (rows (ft-bitmap-rows bitmap)) (buf (ft-bitmap-buffer bitmap))) (do ((i 0 (+ i 1))) ((= i rows)) (do ((j 0 (+ j 1))) ((= j width)) (let ((d (pointer-u8-ref (pointer+ buf (+ j (* i width)))))) (write-char (if (zero? d) #\space (integer->char (+ (inexact->exact (truncate (/ d 25.6))) (char->integer #\0))))))) (newline))) </enscript> 393 666 09190 37 73 63 36 090 090 27 72 6999996 090 090 26 72 63 36 080 080 === Author [[Alex Shinn]] === Repository This egg is hosted on the CHICKEN Subversion repository: [[https://anonymous@code.call-cc.org/svn/chicken-eggs/release/5/freetype|https://anonymous@code.call-cc.org/svn/chicken-eggs/release/5/freetype]] If you want to check out the source code repository of this egg and you are not familiar with Subversion, see [[/egg-svn-checkout|this page]]. === License BSD === History ; 0.2 : Port to CHICKEN 5 ; 0.1 : initial release
Description of your changes:
I would like to authenticate
Authentication
Username:
Password:
Spam control
What do you get when you subtract 22 from 20?