upgrade pre-built libraries for Windows and Mac OS X

Mostly upgrades the drawing stack to the latest Cairo, Pango, Glib,
etc., but also upgrades the OpenSSL library on Windows to 1.0.1g.

The new "racket/src/native-libs" directory provides scripts to
rebuild the libraries from source. Those script are fragile, because
library sources and configuration scripts are fragile. The
scripts at least archive some expertise/advice in a mostly executable
form.

original commit: 23cf3ba11e6ea3ac5aa0b3919651f38e037fa2c9
This commit is contained in:
Matthew Flatt 2014-03-30 15:13:57 -06:00
parent c3f913fdef
commit fa41ed01c5
2 changed files with 13 additions and 0 deletions

View File

@ -204,6 +204,13 @@
(cairo_matrix_t-y0 m)))
(cairo_surface_flush s)
(define cg (cairo_quartz_surface_get_cg_context s))
(begin
;; A Cairo flush doesn't reset the clipping region. The
;; implementation of clipping is that there's a saved
;; GState that we can use to get back to the original
;; clipping region, so restore (and save again) that state:
(CGContextRestoreGState cg)
(CGContextSaveGState cg))
(CGContextSaveGState cg)
(CGContextConcatCTM cg trans)
(let ([n (cairo_rectangle_list_t-num_rectangles rs)])

View File

@ -262,6 +262,7 @@
(define c-xscale 1)
(define c-yscale 1)
(define c-offset 0)
(define c-rotate 0)
(define c-gray? #f)
(public*
[set-bitmaps (lambda (on?) (set! no-bitmaps? (not on?)) (refresh))]
@ -275,6 +276,7 @@
[set-scale (lambda (xs ys) (set! xscale xs) (set! yscale ys) (refresh))]
[set-offset (lambda (o) (set! offset o) (refresh))]
[set-canvas-offset (lambda (o) (set! c-offset o) (refresh))]
[set-canvas-rotation (lambda (r) (set! c-rotate r) (refresh))]
[set-canvas-gray (lambda (g?) (set! c-gray? g?) (refresh))])
(override*
[on-paint
@ -1042,6 +1044,7 @@
(send can-dc set-brush b)
(send can-dc set-pen p)))
(send can-dc set-origin c-offset c-offset)
(send can-dc set-rotation c-rotate)
(send can-dc set-scale c-xscale c-yscale)
(send can-dc set-alpha current-c-alpha)
(when c-clip
@ -1415,6 +1418,9 @@
(make-object check-box% "Cvs +10" hp3
(lambda (self event)
(send canvas set-canvas-offset (if (send self get-value) 10 0))))
(make-object check-box% "Cvs rot" hp3
(lambda (self event)
(send canvas set-canvas-rotation (if (send self get-value) (* pi -1/5) 0))))
(make-object choice% "Cvs Clip" '("None" "Empty" "Square" "Squares" "Octagon") hp3
(lambda (self event)
(send canvas set-canvas-clip (case (send self get-selection)