func Recover() {
	r := recover()
	if r != nil {
		internal.Log.Printf("*** PANIC stack trace *********************************\n")
		internal.Log.Println(string(debug.Stack()))
		internal.Log.Printf("*** end of PANIC stack trace **************************\n%s", r)
		var err error
		err = internal.InputErr()
		if err != nil {
			internal.Log.Printf("*** panic: INPUT unchecked ERROR ***\n%s", err)
		}
		err = internal.PixelErr()
		if err != nil {
			internal.Log.Printf("*** panic: PIXEL unchecked ERROR ***\n%s", err)
		}
		err = internal.PolyErr()
		if err != nil {
			internal.Log.Printf("*** panic: POLY unchecked ERROR ***\n%s", err)
		}
	}
}
Recover is a convenience function.  When called with defer at the start of
the main function, it will intercept any panic, log the stack trace, and
finally log any unchecked errors in Cozely's packages.

This function exists because many errors in the framework, in addition to
setting the package's sticky error, also returns an invalid ID; if the error
is unchecked and the ID used, this will trigger an "index out of range"
panic.
package cozely
import (
	"runtime/debug"
	"github.com/cozely/cozely/internal"
)
var stopErr error
func Stop(err error) {
	if stopErr == nil {
		stopErr = err
	}
	internal.QuitRequested = true
}
func Error() bool {
	return internal.GLErr() != nil ||
		internal.InputErr() != nil ||
		internal.PixelErr() != nil ||
		internal.PolyErr() != nil
}