Age | Commit message (Collapse) | Author |
|
s/sars/SARS/
|
|
This tells sars to just wait indefinitely until an ESC is pressed
pre-fadein during the opening hungrycat context.
The --delay [seconds] flag was added to facilitate screen
captures, but it's actually rather annoying to use. This way the
sars window will just sit there ignoring any spurious events
waiting for an ESC to proceed onto DELAY->FADEIN...
Probably not useful but technically this composes with --delay as
well, such that if you have --delay and --wait specified, once
you hit ESC to leave the WAIT state, the delay will then begin.
|
|
Defaults to 10 seconds when bare --delay is used
This is primarily intended for video capture purposes
|
|
currently this just overrides teepee quantities to always be 128
128 is used instead of 256 so you can still exercise the teepee
boost _without_ winning event, and it doesn't take long to
collect two teepee boosts so iteration still isn't bad.
|
|
it's noticable that every fresh game starts the same
|
|
On MacOS the window create can't even succeed when requesting the
GLES2 context.
Seeing as this GLES2 transition was done just to get emscripten
support, let's limit requesting an actual GLES2 context to the
emscripten builds, and still request the same old GL2.1 context
as pre-emscripten for everything else.
It's unclear to me if this will actually work on win/macos, since
the code is still all targeting the GLES2 API - even the glad
abstraction is the GLES2 variant. But the thing is, GLES2 API is
largely just a subset of GL2.1, in some ways it's a cleanup of
GL2.1 like removing a bunch of the fixed function stuff I never
used anyways. The main annoyance with GLES2 is the shader
language version is older than GL2.1 supports. But if I can live
with constraining my API/shader usage to GLES2 land, it might
just work on GL2.1 contexts without modifications.
|
|
Since emscripten builds are often run under a browser window,
putting ourselves into fullscreen mode is most likely to get a
filled-out canvas within the window we find ourselves in.
It's really up to the emscripten runtime environment to deal with
windowing vs. fullscreen handling in an appropriate manner. We
can't really be bothered with that from the nested environment we
find ourselves in there.
|
|
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.
|