func ProcessEvents(win struct {
	Resize  func()
	Hide    func()
	Show    func()
	Focus   func()
	Unfocus func()
	Quit    func()
}) {
	more := true
	for more && !QuitRequested {
		n := peepEvents()
		for i := 0; i < n && !QuitRequested; i++ {
			e := eventAt(i)
			dispatch(e, win)
		}
		more = n >= C.PEEP_SIZE
	}
	var mx, my C.int
	C.SDL_GetRelativeMouseState(&mx, &my)
	MouseDeltaX += int16(mx)
	MouseDeltaY += int16(my)
	btn := C.SDL_GetMouseState(&mx, &my)
	MousePositionX = int16(mx)
	MousePositionY = int16(my)
	MouseButtons = uint32(btn)
}
//////////////////////////////////////////////////////////////////////////////
ProcessEvents processes and dispatches all events.
package internal
import (
	"unsafe"
)
import "C"
type GameLoop interface {
	Enter()
	Leave()
	React()
	Update()
	Render()
}