Age | Commit message (Collapse) | Author |
|
In the interests of keeping things bisectable this is one big commit of
everything necessary to go from OpenGL 2.1 to OpenGL ES 2.0 in one fell
swoop.
There's a handful of annoying mechanical changes necessary in shaders like
removing the 'f' suffix on float constants e.g. 1.f becomes 1.0 etc.
This is primarily happening to enable emscripten builds
|
|
Emscripten integration will want this function.
A few mechanical changes required to catch up with upstream
libplay API changes as well.
|
|
On MacOS in particular it seems when executing sars via gui from
the downloaded .zip the cwd isn't being set to the containing
directory beforehand. This prevents the assets from being found
at the correct location.
With this commit SDL_GetBasePath() is used to try find the
executable's containing directory. When successful, a chdir() is
performed to this path in an effort to ensure the assets/ dir is
where expected in relative terms.
These are all done in a non-fatal best-effort fashion, simply
warning when failed.
An unfortunate side effect of this is when you're explicitly
running sars from somewhere else with a different relative
assets/ directory for development/testing purposes, it no longer
uses the inherited cwd. Instead it will always move itself to
wherever the executable resides. Maybe I'll add a flag for
controlling this behavior.
It's also unclear to me how safe assuming chdir() works will be
vs. platforms supported by SDL2. Sure, chdir() is POSIX, but um,
SDL2 speaks to supporting platforms like PSP and Android. I
doubt chdir() is available everywhere, and I wonder why there's
no SDL_chdir() in SDL_filesystem.h to hide this potential detail
alongside the SDL_GetBasePath() abstraction.
|
|
bpc = boxed projection coordinates, this basically comes from eon just
like the pillar/letter boxing code for fullscreen stuff did.
Previously I didn't need this part of that code, but the touch
coordinates are in ndc and those need to get transformed by the
projection transform's inverse.
|
|
Having these distinct is vestigial, they're no longer different
so merge them. No functional difference.
|
|
The bulk of this is mechanical wiring up of a projection_x to all
the nodes.
But this also introduces maintenance of the projection_x, with
aspect-ratio preservation in two of the modes: WINDOWED and
FULLSCREEN, with the previously default stretched-to-fill
fullscreen mode now relegated to a third FILLSCREEN winmode.
The default at startup is now an aspect ratio-preserving windowed
mode.
Simply press the 'f' key at any time to cycle through them.
This was mostly done in sars to provide a source-available test
for reproducing a fullscreen SDL2 bug I filed @
https://github.com/libsdl-org/SDL/issues/5139
Otherwise it's pretty silly to bother with doing anything on
sars... but it is a handy little mule for such things.
|
|
This is vestigial from Eon and doesn't benefit sars, and
seems to be introducing corruption on the transparent fringes
of the sprites.
|
|
Never updated the window title after ripping this from the Eon
initialization boilerplate
|
|
Just a bunch of shit that doesn't really do much more than produce
an executable yet.
|