!7 !include once #1025225 // Shared IntegralImage cmodule FindConstantArea > DynImageSurface { switchable int displayWidth = 400, cubeSize = 40; transient Rect area; // area currently looked at transient RGB lastColor; start { dm_vmBus_onMessage_q newScreenshotInStream(voidfunc(O mod, virtual Screenshot ss) { IntegralImage ii = cast rget integralImage(ss); setImage(scaledBufferedImageFromIntegralImage(displayWidth, ii)); if (area == null) area = randomRect(cubeSize, cubeSize, ii_rect(ii)); print("Area: " + area); setSelection(scaleRect(area, doubleRatio(displayWidth, ii.getWidth()))); RGB color = ii_averageColorOfArea(ii, area); if (lastColor != null) { if (eq(color, lastColor)) print("Same color! " + color); else { print("New color (" + lastColor + "/" + color + "). Switching area."); area = null; } } lastColor = color; }); } }