Pixelshift

Stuff that relate to checking the “pixelshift”, ie how many pixels changed in an area


SRL.GetPixelShiftTPA

function TSRL.GetPixelShiftTPA(Area: TBox; WaitTime: UInt32; Count: Int32=1; AcceptLength:Int32=0): TPointArray;

Returns a TPA containing all the pixels that changed during the WaitTime period.

The function can repeat the period WaitTime and continue building the result Count times.

if AcceptLength is none-zero, it will return when / if this many pixels has changed.


SRL.IsAnimating

function TSRL.IsAnimating(Area:TBox; Shift, WaitTime:UInt32; Iter:UInt32=1): Boolean;

Counts the pixels that changed in the period WaitTime and checks if Shift value was met if it was the it will return True. The check itself can be repeated several times Iter

Example:

if srl.IsAnimating(Box(10,10, 100,100), 350, 500, 3) then
  WriteLn('Shit changed');

In the example above, we supply a random area, and checks if 350 pixels changed within 500ms, we repeat that test 3 times, or until the condition 350 pixels was met.