Class VisualProbe
ParityProbe covers what the library can be asked; this covers what it
draws. The two are answerable in different ways: a number can be compared,
where a picture can only be looked at - so the bugs that lived longest this
side were the ones nothing could see. The speech bubble hung off the corner of
the costume canvas rather than the sprite, with its tail pointing at nothing.
The stage's display line sat in the top left instead of along the bottom. A
text came out at 24pt where it should have been 14. Every one of those was
found by somebody noticing.
Each scene below is set up, given a few frames to settle, and saved as a PNG.
./scripts/visual-parity.sh renders them again and compares. Keep them
still: no timers, no randomness, nothing that moves, or the comparison will
fail for reasons that are not a change in how things look.
This is the desktop against itself. The browser draws with a different renderer and a different font engine, so the two cannot be compared pixel for pixel - that would need a browser in the loop and a comparison that measures where things are rather than which pixels they are.
-
Constructor Summary
Constructors -
Method Summary
Methods inherited from class org.openpatch.scratch.Stage
add, add, add, addBackdrop, addBackdrop, addBackdrop, addSound, addSound, ask, broadcast, changeColor, changeTint, changeTransparency, changeVolume, count, debug, display, display, eraseAll, exit, find, getAll, getAnswer, getCamera, getColor, getCurrentBackdropIndex, getCurrentBackdropName, getDeltaTime, getFrameRate, getHeight, getMouse, getMouseX, getMouseY, getPixels, getShaders, getSorting, getTimer, getTimer, getVolume, getWidth, isAsking, isDebug, isKeyPressed, isMouseDown, isSoundPlaying, nextBackdrop, pickRandom, playSound, previousBackdrop, randomBackdrop, remove, remove, remove, remove, removeAll, setColor, setColor, setColor, setCursor, setCursor, setDebug, setTint, setTint, setTransparency, setVolume, stopAllSounds, stopSound, switchBackdrop, wait, waitUntil, whenBackdropSwitches, whenIReceive, whenKeyPressed, whenKeyReleased, whenMouseClicked, whenMouseWheelMoved