This adds a new dependency, but most systems likely already have
SDL_image installed. Use of SDL_image can be disabled, but this is
discouraged, because various in-game interfaces assume the use of the
original background.
The old implementation automatically corrected for filename case. The
new implementation expects that the supplied filename can be passed to
PYHSFS_openRead as-is. All known uses in-game have been corrected to
satisfy this requirement. If the new stricter match requirement becomes
a problem, a variant of PHYSFSRWOPS_openRead that adjusts filename case
could be created for use here.
- Update install instructions
- Update ebuild
- Update Arch PKGBUILD
- Remove the d1x, d2x ebuilds. Gentoo uses the dxx name now, so the old
placeholder ebuilds are no longer needed.
- Update the dxx snapshot ebuild to a current commit.
- Resynchronize the dxx snapshot ebuild from the dxx live ebuild.
- This adds support for USE=valgrind and for USE=data.
- Add a helper script to generate snapshot ebuilds for arbitrary
commits.
For each link given as http://, verify that the site is accessible over
https:// and, if so, switch to it. These domains were converted:
* llvm.org
* clang.llvm.org
* en.cppreference.com
* www.dxx-rebirth.com
* www.libsdl.org
* www.scons.org
This commit enables Rebirth to build with SDL2, but the result is not
perfect.
- SDL2 removed some sticky key support. Rebirth may behave differently
now in this area.
- SDL2 removed some key-repeat related support. Rebirth may behave
differently now in this area.
- SDL2 gained the ability to make a window fullscreen by sizing it to
the desktop instead of by changing the desktop resolution. Rebirth
uses this, and it mostly works.
- Resizing while in the automap does not notify the automap code, so
the view is wrong until the player switches out of automap mode and
back in.
- SDL2 changed how to enumerate available resolutions. Since
fitting the window to the desktop is generally more useful than
fitting the desktop to the window, I chose to drop support for
enumerating resolutions instead of porting to the new API. Users can
now enter an arbitrary window dimension and Rebirth will make an
attempt to use it.
- It might be useful to cap the window dimension at the desktop
dimension, but that is not done yet.
- Entering fullscreen mode through the Controls->Graphics submenu
failed to notify the relevant subsystems, causing the rendered
content not to rescale. For now, compile out the option to toggle
full screen through that menu. Toggling through Alt+Enter works
properly.
Despite these quirks, this is a substantial improvement over the prior
commit, where SDL2 cannot be used at all. The remaining issues can be
resolved in future work.
References: <https://github.com/dxx-rebirth/dxx-rebirth/issues/82>
- Add descentX-freedata-1.ebuild to manage the freely downloadable
music, German briefings, and (for Descent 1 only) higher resolution
textures. These can be added/removed without rebuilding the game, so
they get a separate ebuild. This prevents reinstalling these
resources on game upgrades, and permits using these resources with
live ebuilds.
- Fix $LICENSE to reflect Rebirth 2014 license change.
- Add USE=+joystick. When unset, SDL joystick support is unnecessary
and Rebirth is built without joystick support. This reduces
code size, which may be important on constrained targets. When
USE=joystick is set, SDL joystick support is now required.
- Add blockers for co-installation with <d1x-rebirth-0.59.100,
<d2x-rebirth-0.59.100, as these install files of the same name and
would otherwise collide with this package. Compiling while the older
version is installed is safe, so this is only an RDEPEND blocker.
- Add USE flags for the various descentX-freedata features, and depend
on a descentX-freedata with those flags enabled. When all such flags
are clear, there is no dependency, since descentX-freedata with USE=-*
installs no files.
- Add commented out IUSE_RUNTIME to record which USE flags are
runtime-only. When Portage implements IUSE_RUNTIME, this definition
should be uncommented.
- Mirror xdg integration from main Gentoo Portage ebuild for Rebirth.
Also match layout with that ebuild where possible, to simplify sharing
changes. Notable differences remaining:
- Gentoo Portage ebuild handles freedata assets inline.
- Gentoo Portage ebuild disallows enabling both music pack USE flags,
even though the files install to separate names. Rebirth freedata
ebuild permits both to be enabled.
- Gentoo Portage ebuild hard-enables joystick support and
hard-requires SDL joystick support. Rebirth ebuild makes it
optional via USE=joystick.
- Gentoo Portage ebuild is less strict about SDL_mixer features.
- Gentoo Portage ebuild has USE=+data to control whether game data is
a required dependency. Rebirth ebuild hard-depends on game data
(but still provides a choice of demo data or retail data).
- Gentoo Portage ebuild hard-blocks _all_ d1x-rebirth, d2x-rebirth
package versions. Rebirth ebuild hard-blocks only such packages
that would cause a file collision, so that the transition
meta-packages can be installed.
- Gentoo Portage ebuild carries two useless patches.
- $P-flags.patch removes default CXXFLAGS flags, even though
SConstruct adds them to the left of the user's CXXFLAGS, so that
user CXXFLAGS override default flags.
- $P-sharepath.patch changes the sharepath by patching SConstruct.
Rebirth ebuild changes the sharepath by passing an appropriate
`sharepath=` argument to the `scons` call.
- Gentoo Portage ebuild lacks USE=editor and associated build of Descent
editor mode.
- Gentoo Portage ebuild does not export PKG_CONFIG.