[racket-dev] Caching rendered icons
Sure!
BTW, having been inspired by Jay's latest elegant macro, I've shrunk the 
implementation to 21 lines of code. (That's good for a tutorial.) It 
works a little differently now, too. I think it's better.
Here's an example that bakes a list of stickman animation frames into a 
compiled module:
(begin-for-syntax
   (require images/icons/stickman)
   (define stickman-height 18)
   (define num-running-frames 12))
(define running-frames
   (compiled-bitmap-list
    (for/list ([t  (in-range 0 1 (/ 1 num-running-frames))])
      (running-stickman-icon t run-icon-color "white" run-icon-color
                             stickman-height))))
The expression within `compiled-bitmap-list' is evaluated at compile 
time. It and `compiled-bitmap' make any bitmap or list of bitmaps 
generated at compile time into runtime values. The above expands to
     (list (make-object bitmap% (open-input-bytes #"...") 'png)
           ...)
There are very few restrictions on the arguments now. They just have to 
be valid in the transformer phase.
Neil T
On 01/12/2012 03:54 PM, Robby Findler wrote:
> I think this is a great example to base a tutorial example on. Neil:
> I'd be happy to help with the writeup, if you'd be willing to make a
> first attempt.
>
> Robby