Posted to tcl by GPS at Thu Sep 20 08:15:55 GMT 2007view raw
- set dir [file dirname [info script]]
- load [file join $dir megaimage.so]
- load [file join $dir megaimagetk.so]
- load [file join $dir bserverext.so]
- set img [megaimage-blank 800 600]
- pack [megaimage.frame .f] -fill both -expand 1
- proc redraw img {
- global redraw_pending
- .f objsetimage $img
- set redraw_pending 0
- }
- set redraw_pending 0
- proc redraw-when-idle {} {
- global redraw_pending
- if {$redraw_pending} return
- set redraw_pending 1
- after idle [list redraw $::img]
- }
- proc read-from {in out} {
- global img
- read $in 4
- if {[eof $in]} {
- puts stderr "EOF $in"
- exit 1
- }
- bserver-root-objgetimage $img
- redraw-when-idle
- puts -nonewline $out [binary format i1 {2 0 0 0}]
- flush $out
- }
- proc main {argc argv} {
- set in [open [lindex $argv 0] [list RDONLY NONBLOCK]]
- set out [open [lindex $argv 1] w]
- fconfigure $in -blocking 0
- fconfigure $out -blocking 0
- puts "$in $out"
- fileevent $in readable [list read-from $in $out]
- bserver-map-root /tmp/Xvfb_screen0
- vwait forever
- }
- main $::argc $::argv