This macro is enabled when the SDL_ASSERT_LEVEL is >= 1, otherwise it is disabled. This is meant to be
for tests that are cheap to make and extremely unlikely to fail; generally it is frowned upon to have an
assertion failure in a release build, so these assertions generally need to be of more than life-and-
death importance if there's a chance they might trigger. You should almost always consider handling these
cases more gracefully than an assert allows.
When assertions are disabled, this wraps condition in a sizeof operator, which means any function calls
and side effects will not run, but the compiler will not complain about any otherwise-unused variables
that are only referenced in the assertion.
One can set the environment variable "SDL_ASSERT" to one of several strings ("abort", "break", "retry",
"ignore", "always_ignore") to force a default behavior, which may be desirable for automation purposes.
If your platform requires GUI interfaces to happen on the main thread but you're debugging an assertion
in a background thread, it might be desirable to set this to "break" so that your debugger takes control
as soon as assert is triggered, instead of risking a bad UI interaction (deadlock, etc) in the
application. *