local appName="RendererLoopTest" local r, g, b local lFormat = string.format local lastTime = 0 local avgTime = 0 -- Crete a polyline local ren1=lcd.renderer() local ren2=lcd.renderer() local ren3=lcd.renderer() local ren4=lcd.renderer() ren1:addPoint(10, 140) ren1:addPoint(310 * 1000000, 40 * 1000000) ren2:addPoint(20, 140) ren2:addPoint(310 * 1000000, 40 * 1000000) ren3:addPoint(30, 140) ren3:addPoint(310 * 1000000, 40 * 1000000) ren4:addPoint(40, 140) ren4:addPoint(310 * 1000000, 40 * 1000000) ren1:setClipping(0, 0, 320, 160) ren2:setClipping(0, 0, 320, 160) ren3:setClipping(0, 0, 320, 160) ren4:setClipping(0, 0, 320, 160) -------------------------------------------------------------------- -- Print function -------------------------------------------------------------------- local clip local function tprint(width, height) lcd.setColor(0, 0, 255) if (clip == nil) then lcd.setClipping(0, 0, 320, 160) clip = 1 end ren1:renderPolyline(10) ren2:renderPolyline(10) ren3:renderPolyline(10) ren4:renderPolyline(10) lcd.setColor(255, 0, 0) lcd.drawText (10, 20, lFormat("Clipping Loop Time %03u", avgTime), FONT_MEDIUM) lcd.drawText (10, 40, lFormat("Cpu %03u", system.getCPU()), FONT_MEDIUM) if (clip) then lcd.drawText(10, 60, "Clip", FONT_MEDIUM) end lcd.setColor(r, g, b) end local function loop() local newTime = system.getTimeCounter() local delta = newTime - lastTime lastTime = newTime if (avgTime == 0) then avgTime = delta else avgTime = avgTime * 0.95 + delta * 0.05 end end -------------------------------------------------------------------- -- Init function -------------------------------------------------------------------- local function init() r, g, b = lcd.getFgColor () lastTime = system.getTimeCounter() system.registerTelemetry(1, appName, 4 , tprint) end return { init=init, loop=loop, author="JETI model", version="1.00",name=appName}