From 233b131d9b1440ebc6b101e1f71413f80e025186 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 2 Jun 2010 19:14:33 -0600 Subject: [PATCH] clarify some notes and comments --- collects/racket/draw/bitmap.rkt | 24 +++++++++++++++++++----- collects/racket/draw/gif.rkt | 2 ++ src/mac/README.txt | 4 ++-- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/collects/racket/draw/bitmap.rkt b/collects/racket/draw/bitmap.rkt index ab53746989..df03999334 100644 --- a/collects/racket/draw/bitmap.rkt +++ b/collects/racket/draw/bitmap.rkt @@ -154,7 +154,7 @@ (for/list ([i (in-range h)]) (let ([s (* i bw)]) (subbytes bstr s (+ s bw)))))]) - (install-from-png-arrays s w h rows #t #f #f #t)) + (install-bytes-rows s w h rows #t #f #f #t)) (values w h #t #f s #f)))] (init-name 'bitmap%))) @@ -256,7 +256,7 @@ (destroy-png-reader r) (let* ([s (cairo_image_surface_create CAIRO_FORMAT_ARGB32 w h)] [pre? (and alpha? (memq kind '(png/alpha png/mask)))]) - (install-from-png-arrays s w h rows b&w? alpha? pre? #f) + (install-bytes-rows s w h rows b&w? alpha? pre? #f) (values s b&w?))))] [(jpeg jpeg/alpha) (let ([d (create-decompress in)]) @@ -302,7 +302,7 @@ [alpha? #t] [pre? #f] [b&w? #f]) - (install-from-png-arrays s w h rows b&w? alpha? pre? #f) + (install-bytes-rows s w h rows b&w? alpha? pre? #f) (values s b&w?)))] [(bmp bmp/mask bmp/alpha) (let* ([s (cairo_image_surface_create CAIRO_FORMAT_ARGB32 10 10)]) @@ -311,12 +311,26 @@ (let-values ([(w h rows) (read-xbm in)]) (if rows (let ([s (cairo_image_surface_create CAIRO_FORMAT_ARGB32 w h)]) - (install-from-png-arrays s w h rows #t #f #f #t) + (install-bytes-rows s w h rows #t #f #f #t) (values s #t)) (values #f #f)))] [else (values #f #f)]))) - (define/private (install-from-png-arrays s w h rows b&w? alpha? pre? backward?) + ;; s : Cairo bitmap surface + ;; w, h : width and height in pixels + ;; rows : a vector of `h' byte strings + ;; b&w? : each bit in a byte string is a pixel (so each byte + ;; string in `rows' is `(/ w 8)' bytes long) + ;; if not `backward?': low bit is first and 0 is black + ;; if `backward?': high bit is first and 1 is black + ;; alpha? : relevant only if not `b&w?'; + ;; if true: each byte string has 4 bytes per pixel, RGBA + ;; if false: each byte string has 3 bytes er pixel, RGB + ;; pre? : should be #f if not `alpha?', otherwise a #t value + ;; means that the RGB values should be multiplied by A value + ;; (i.e., the values are not already pre-multiplied) + ;; backward? : affects byte interpretation in `b&w?' mode; see above + (define/private (install-bytes-rows s w h rows b&w? alpha? pre? backward?) (let* ([dest (begin (cairo_surface_flush s) (cairo_image_surface_get_data s))] diff --git a/collects/racket/draw/gif.rkt b/collects/racket/draw/gif.rkt index a917ab7e76..eb930d65ce 100644 --- a/collects/racket/draw/gif.rkt +++ b/collects/racket/draw/gif.rkt @@ -1,6 +1,8 @@ #lang scheme (require "lzw.rkt") +;; FIXME: still need to handle transparency + (provide gif->rgba-rows) (define-syntax-rule (when-debugging expr ...) diff --git a/src/mac/README.txt b/src/mac/README.txt index 05f9509cbc..cea84190ce 100644 --- a/src/mac/README.txt +++ b/src/mac/README.txt @@ -3,10 +3,10 @@ Mac OS X GRacket. Get these packages (or newer, if compatible): pkg-config-0.23.tar.gz - gettext-0.17.tar.gz libpng-1.4.0.tar.gz pixman-0.17.14.tar.gz cairo-1.9.6.tar.gz + gettext-0.17.tar.gz glib-2.22.4.tar.gz pango-1.28.0.tar.gz libjpeg62 (maybe in binary form) @@ -22,10 +22,10 @@ Patches: Configures (where is some temporary area): pkg-config: --prefix= - gettext: --prefix= libpng: --prefix= pixman: --prefix= Cairo: PATH=/bin --disable-xlib --disable-ft --disable-fc --prefix= + gettext: --prefix= glib: PATH=/bin CFLAGS=-I/include LDFLAGS=-L/lib --prefix= Pango: PATH=/bin --without-x --with-included-modules=yes --with-dynamic-modules=no