Version 6 of Double Buffering

Updated 2009-04-28 12:57:53 by JSB

A very primitive example of bitmap/image double buffering in tcl. With this model: More sprites & more updates == more cpu used.

 source bmpdata.dat

 proc do_frame {} {
    # Generate a random frame full of sprites.
    set sprites {}
    for {set i 0} {$i < 100} {incr i} {
       set dest_x [expr {int (rand()*620)}]
       set dest_x2 [expr {int ($dest_x + 28)}]
       set dest_y [expr {int (rand()*420)}]
       set dest_y2 [expr {int ($dest_y + 35)}]
       set sprite [expr {int (rand()* 2) == 0 ? $::sprite_1:$::sprite_2}]
       lappend sprites [list $sprite $dest_x $dest_y $dest_x2 $dest_y2]
    }

    # "blit" the sprites to the buffer.   
    foreach sprite_info $sprites {
       foreach {spr dest_x dest_y dest_x2 dest_y2} $sprite_info {}
       $::double_buffer copy $spr -to $dest_x $dest_y $dest_x2 $dest_y2
    }
 }

 proc do_update {} {
    # Clear the display area with the background image.
    # Use 'blank' if you do not have one. i.e. $::double_buffer blank
    $::double_buffer copy $::base_image -zoom 2 3

    # Get the frame update.
    do_frame

    # Push out the new frame.
    .l1 configure -image $::double_buffer

    # This controls our frame rate.
    after 35 {do_update}
 }

 # Load the background and the sprite images.
 set ::sprite_1 [image create photo -data $box_data]
 set ::sprite_2 [image create photo -data $hitchcock_data]
 set ::base_image [image create photo -height 640 -width 480 -data $map_data]
 set ::double_buffer [image create photo -height 640 -width 480]
 $::double_buffer copy $::base_image -zoom 2 3

 #Get the first frame full...
 do_frame

 label .l1 -height 680 -width 500 -image $double_buffer
 pack .l1

 # Start up the frame 'animator'
 after 35 {do_update}

Bitmap data file bmpdata.dat:

set box_data {R0lGODlhHAAjAPcAAAAAAAsLAQsLDAgHBBMNABQSAhsUABwaARUVDBQUExoa
Gg4PDyQbASgZATIdBSkmBDYpATc2BycnGTc2FS4wDx0dIigoJzY2Kjc4Ni8v
LR4hFEc3AVY5AEUvBE89ITxCJUdGCFlGAVhYCldXFUpKFGZJAGpVAXhYAHBO
BXloAHt3BWdnFnd3F2lpDUNDO0lIJ3FyJV1jGTw8Q0hIR1dXVlFSTWVlW1pa
ZGloaHh4d3Bxbl5gXT4+QodaAJReAJpeAIxkAIdnAJRkAJtkAJRrAJpqAIZ4
AZxzAJd5AIN7F6FkAKJsAKZ5ALJ+ALZ2AJZqEIR9eHyCFH6DeoeGCZqDAYmI
FpiYF5CTEqyDAKeGALSEALyMALeJAL2UAL2aALWTAaWZFaenGri4Ga+oDZmY
Jo+OLKKWJqKRMaenJrq5KLq6Nq2sMJyjIsONAMiKAMWVAMuVAMWbAMubAMmc
C9KVANKbANmbANiVAc+VCcWhAMyhAMqnCtKhANSnB8qqFcq4GdC0Eci8KNO7
KMi9NtC2ML3JG77JKL3IN77TL8vLFcTEHMvEHMXLHMvLHMfHFNLLHNPHGcvS
HMfTGdLSHNPTFsvLDMTEJMvFJMXLJMvLJMXFLMvFLMXLLMvLLNLFJNLLJNLF
LNLLLNnKKcXSJMvSJMXSLMvSLMvZKdLSJNLSLNfWKsXFM8vFM8XLM8vLM8XF
O8vFO8XLO8vLO9LFM9LLM9LFO9LLO9nJNsXSM8vSM8XSPMvSO8vZONLSM9LS
O9bXN7S2Q4WGe6ydQsu9Rr7LRcXFQ8vFQ8XLQ8vLQ8vFSsXLSsvLSsXFS9LF
Q9LLQ9LLStTGScXSQ8vSQ8vSS8fUSdLSQ9PTStfXRsrKUtHPUnt7hYB8hX2F
iYeHiJeYl5CRj6Skm6Wsk5qbpKiop7e3t7Gxrp+hnb3EtMjIus/Ouby9xb+8
27zHzM3NzMjIxsvSydXVycvK1dfX19DN0ePj2tPU5ezs7Obm5fLy7ezs8/T0
9P////f3+O/w8N/f38a9xiwAAAAAHAAjAAAI/wD3CRxIsKDBgwgTKlwoMF8+
hhCHHbpSDyJCesHkuCLkSk64gQ4hsjvjqpKrkyevDHFypQUMOcDOIRx3xiTK
jVecyOmx8tDNIQ8Ftgt3BaXNM3KSyhlC8uYhDu1Avtx48pCcK0qHDDl0CyUh
lWd6eCOYj+TVIXJYMr15cog3OVH30TN4BqndHjDYXhEmdFhCnyVPvlTZMVgw
gocPstN4k0POM+3YhcQh8AnCM1eKnlx6kpBAb+3m7hs3JvFBHD04cGih09Wh
oPRgmo17cJxWrUkDn2tXCWnHQzIR1tOp8yrKQxxd5Uz6MSFWpYzZVrLqyvTB
4livcHxyaPqwdsmtG6h8C707bYHYTp5ROA56bgzcxnkbBiz564T50ColdAuA
fwCamXTFQmhl5wQvDfzHgVOiXVYJdJXA8B8AcvByUiXsKBQOdk4gV8F/EQxT
1TgKteOeRvjIFZRGlTSXEEtKFXUIifu0I2JnCyGV1IMoXdFdYFecd9AwSS3X
WUdn3HIFjQuZmBQh0W02lkXtPHeVfZBZNNA5wehXEnBaGpQPRkOEE1SYaKZp
UUAAOw==}

set hitchcock_data {R0lGODlhGgAmAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/
AP//AAAA//8A/wD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBmAABmMwBmZgBm
mQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/
AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMz
mTMzzDMz/zNmADNmMzNmZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPM
ADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYA
mWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZmzGZm/2aZ
AGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/
mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lm
AJlmM5lmZplmmZlmzJlm/5mZAJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnM
mZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wz
AMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZ
mcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8A
AP8AM/8AZv8Amf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9m
mf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//MZv/Mmf/MzP/M////
AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAaACYAAAj/AP2kGkhtYKqC
BA8qTEhQ4L+HECP+o0ZNoECFFB8OlCgxlZ8pH0NaPPhv40NqEFFOWcmyJcuL
qTiedOky5BSDE1NqRMGSJ82XMWV+pOlz5dCbOiHaNArSj1OnHv2g7LiUaM8p
KIJC5Mn1ateuK7VOLEoTqkeQK7Pq/Iq16cWCFAsilehTpMeDGVGi3Dh1Z9SR
ePNONNmx4lOEb/WW1Np38N+KgfOSlHl2JcWhUhXzTVrwMOKCEykSliiaL1zF
KB2ejGiQ4D+pkR3LLIkwbl7Bm1eXbpoKZNzQCGcPfDolNUnNjHNO5J35tW3R
jSU+tVgRNHLSENHWro56dEe0IrnnbyTcd29LmE4li+UIHibImHvhJ51YFerF
5esj3rS7EH7YnFN15gd9vOG1nGVUVZTTe7Y9xJR8wzmV00c+hfZaS0FF2BsK
RzGoEXhICVgcTwWRGNpBZBXnmFQh/cPhFHTZNFRvfnBI4VA8PZUKWzwFBAA7}

set map_data {R0lGODlh8ACsAPcAANnViNfJl9fJt9jWl8e4h6Wadba1eaeod8jJl8jVydbK
pdjXtdfXp+fXtcbWtde5h8jUmejiifjKlua8lfjVi/jWl/fmp/W9iNnkt8bV
p/jLi/fXtMjHifO9lfTpyPjWpvfZ2OTa2MjX1vX39dfY1sfa49fzytrn5sjl
2Obb5PTb5vPq6fTM0/Pr8tzf8MXK5Nny8cvu8Ofp5/b12fX16Ord8LXX1tjb
47bJyMbGucjJyLXWyajVyqnW1bbk45bNysnm5pfV4X3HxbLZ4prl46fM0467
xrLk0srz1fTzy9rz2Nnl2Ma7xZjJk7LQrJKXpMa6lJCwr6qbqK+zr9bM09XK
yfPL716noo16jtbWyvbYxunz6ebn2Nrx5saolO+9x8jK0+S5rrG7xsfluJfk
zKeZaK60jpOsdLepeOXXyNTOd+jWltfilujKl+jjmOOzdvbntdjK5Nfmy/Tp
2Orr8bXL03rFs3Wtruvz8ufz2MfmyebJx3nGksi3sZTLsqSLYpKVbaiVj6el
aqi1eefKtufLpejmt+jWiujWpue7iffMpOflp9arhM2vc/bMtOfJiMfKpOny
y/XKyFiPj6bKyejoyaOew5SzjJLCcrnimrDLlMuXaraYZ/fkmNvs8Hi2wvTc
8XSPb3GRkeuvk8mRWMaYiMaqhribdOnwp8jyusnx7HSsj5CRkKFqNsF7VOjR
epfmuLPis2yXpqt2SLanasfUierM55CQVq+PU9e7lMnyycjhqPjkira2aNby
urLGc6iPObGqVNjjp3OJUunyuKW0Z9vidNfIiKiJdZaoVNqpl1VncliSp1R0
hHWpdJB2TrXAVT9OR3R9kMvKWjZmbH+AP7WKY8mxWeSohvXwm/bwt0+Pdezl
deXN1HJ1cOvxmc7z8UlZZ1ZnTN7wqIdzaL+arHJyUPTxqW6lWqd/YUVXVXZb
XFiOXKezOIuLNsloObVdNJFvH41sNXBeLnVuNsOSuo1TLoFZGU1hGgAAAAAA
AAAAAAAAAAAAAAAAAAAAACwAAAAA8ACsAAAI/wAlIBgoAdAmQF50DJQ0cNwo
BAIl6BAoSaAuga8UQkRQcZouSTokgZP0kYwkkOCshBz5gqSVFzrAvRhJE6QV
cDpCrrQywiXOH/Vy/tAxVIiloUSO6giigwjRp2R+DJ1qSQjRH0mH4hypi2dM
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
VAICADs=}