| function string.startsWith(String,Start) | 
 |    return string.sub(String,1,string.len(Start))==Start | 
 | end | 
 |  | 
 | function string.endsWith(String,End) | 
 |    return End=='' or string.sub(String,-string.len(End))==End | 
 | end | 
 |  | 
 | local canvas = nil | 
 | local num_perspective_bitmaps = 0 | 
 | local num_affine_bitmaps = 0 | 
 | local num_scaled_bitmaps = 0 | 
 | local num_translated_bitmaps = 0 | 
 | local num_identity_bitmaps = 0 | 
 | local num_scaled_up = 0 | 
 | local num_scaled_down = 0 | 
 |  | 
 | function sk_scrape_startcanvas(c, fileName)  | 
 |   canvas = c | 
 | end | 
 |  | 
 | function sk_scrape_endcanvas(c, fileName) | 
 |   canvas = nil | 
 | end | 
 |  | 
 | function sk_scrape_accumulate(t) | 
 |     -- dump the params in t, specifically showing the verb first, which we | 
 |     -- then nil out so it doesn't appear in tostr() | 
 |     if (string.startsWith(t.verb,"drawBitmap")) then | 
 |       matrix = canvas:getTotalMatrix() | 
 |       matrixType = matrix:getType() | 
 |       if matrixType.perspective then | 
 |         num_perspective_bitmaps = num_perspective_bitmaps + 1 | 
 |       elseif matrixType.affine then | 
 |         num_affine_bitmaps = num_affine_bitmaps + 1 | 
 |       elseif matrixType.scale then  | 
 |         num_scaled_bitmaps = num_scaled_bitmaps + 1 | 
 |         if matrix:getScaleX() > 1 or matrix:getScaleY() > 1 then | 
 |           num_scaled_up = num_scaled_up + 1 | 
 |         else | 
 |           num_scaled_down = num_scaled_down + 1 | 
 |         end | 
 |       elseif matrixType.translate then | 
 |         num_translated_bitmaps = num_translated_bitmaps + 1 | 
 |       else | 
 |         num_identity_bitmaps = num_identity_bitmaps + 1 | 
 |       end | 
 |     end | 
 | end | 
 |  | 
 | function sk_scrape_summarize() | 
 |   io.write( "identity = ", num_identity_bitmaps, | 
 |             ", translated = ", num_translated_bitmaps,  | 
 |             ", scaled = ", num_scaled_bitmaps, " (up = ", num_scaled_up, "; down = ", num_scaled_down, ")", | 
 |             ", affine = ", num_affine_bitmaps, | 
 |             ", perspective = ", num_perspective_bitmaps, | 
 |             "\n") | 
 | end | 
 |  |