12815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comfunction string.startsWith(String,Start) 22815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com return string.sub(String,1,string.len(Start))==Start 32815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comend 42815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com 52815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comfunction string.endsWith(String,End) 62815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com return End=='' or string.sub(String,-string.len(End))==End 72815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comend 82815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com 92815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comlocal canvas = nil 102815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comlocal num_perspective_bitmaps = 0 112815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comlocal num_affine_bitmaps = 0 122815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comlocal num_scaled_bitmaps = 0 132815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comlocal num_translated_bitmaps = 0 142815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comlocal num_identity_bitmaps = 0 150f48ee0a07aa50ab60bfff3c2718b9649e3639eahumper@google.comlocal num_scaled_up = 0 160f48ee0a07aa50ab60bfff3c2718b9649e3639eahumper@google.comlocal num_scaled_down = 0 172815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com 182815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comfunction sk_scrape_startcanvas(c, fileName) 192815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com canvas = c 202815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comend 212815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com 222815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comfunction sk_scrape_endcanvas(c, fileName) 232815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com canvas = nil 242815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comend 252815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com 262815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comfunction sk_scrape_accumulate(t) 272815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com -- dump the params in t, specifically showing the verb first, which we 282815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com -- then nil out so it doesn't appear in tostr() 292815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com if (string.startsWith(t.verb,"drawBitmap")) then 302815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com matrix = canvas:getTotalMatrix() 312815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com matrixType = matrix:getType() 322815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com if matrixType.perspective then 332815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com num_perspective_bitmaps = num_perspective_bitmaps + 1 342815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com elseif matrixType.affine then 352815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com num_affine_bitmaps = num_affine_bitmaps + 1 362815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com elseif matrixType.scale then 372815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com num_scaled_bitmaps = num_scaled_bitmaps + 1 380f48ee0a07aa50ab60bfff3c2718b9649e3639eahumper@google.com if matrix:getScaleX() > 1 or matrix:getScaleY() > 1 then 390f48ee0a07aa50ab60bfff3c2718b9649e3639eahumper@google.com num_scaled_up = num_scaled_up + 1 400f48ee0a07aa50ab60bfff3c2718b9649e3639eahumper@google.com else 410f48ee0a07aa50ab60bfff3c2718b9649e3639eahumper@google.com num_scaled_down = num_scaled_down + 1 420f48ee0a07aa50ab60bfff3c2718b9649e3639eahumper@google.com end 432815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com elseif matrixType.translate then 442815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com num_translated_bitmaps = num_translated_bitmaps + 1 452815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com else 462815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com num_identity_bitmaps = num_identity_bitmaps + 1 472815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com end 482815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com end 492815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comend 502815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com 512815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comfunction sk_scrape_summarize() 522815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com io.write( "identity = ", num_identity_bitmaps, 532815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com ", translated = ", num_translated_bitmaps, 540f48ee0a07aa50ab60bfff3c2718b9649e3639eahumper@google.com ", scaled = ", num_scaled_bitmaps, " (up = ", num_scaled_up, "; down = ", num_scaled_down, ")", 552815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com ", affine = ", num_affine_bitmaps, 569d5fedc5a6fb9476df0d7e5814c9c315b655d5c6humper@google.com ", perspective = ", num_perspective_bitmaps, 579d5fedc5a6fb9476df0d7e5814c9c315b655d5c6humper@google.com "\n") 582815c19c4d52f0fb522e21d1938d63e01c039124humper@google.comend 592815c19c4d52f0fb522e21d1938d63e01c039124humper@google.com 60