Cool, this seems to solve the stuttering issue that SetFrameRate() causes.
Code:
ImportC ""
mach_absolute_time.q()
mach_timebase_info(*info)
EndImport
Procedure.d ElapsedTime(); seconds as double
Static base.q, c.d = 0
If c = 0
mach_timebase_info(@c)
c = 1e-9 * PeekL(@c) / PeekL(@c + 4)
base = mach_absolute_time()
EndIf
ProcedureReturn (mach_absolute_time() - base) * c
EndProcedure
InitSprite()
OpenWindow(0, 0, 0,1280, 720, "Scroll", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget)
OpenWindowedScreen(WindowID(0), 0, 0, 1280, 720, 0, 0, 0)
CreateSprite(1, 128, 128)
StartDrawing(SpriteOutput(1))
DrawingMode(#PB_2DDrawing_Default)
Box(0, 0, 128, 128, RGB(0, 0, 220))
StopDrawing()
X = 0
start_time.d = ElapsedTime()
Repeat
Event = WindowEvent()
FlipBuffers()
ClearScreen(RGB(235, 235, 235))
;SetFrameRate(60)
DisplaySprite(1, X, 360 - 64)
end_time.d = ElapsedTime() - start_time.d
If end_time.d > 0.015
X + 4
start_time.d = ElapsedTime()
EndIf
If X = 1280
X = 0 -128
EndIf
Until Event = #PB_Event_CloseWindow