Enable stereo mode when launched via -gl_stereo option.
GL_STEREO quad buffering may not be available unless OGL layer
supports stereo pixel format descriptors.
Half-height viewport rendering for above/below format.
Half-width viewport rendering for side/by/side formats.
HUD & cockpit elements disabled when stereo views active.
OGL layer used for rendering surfaces, so using left/right viewports absent stereo quad buffers.
Using legacy Descent +/- eye offset method for left/right stereo perspective rendering passes.
fbd05a1592 dropped an include of "jukebox.h" as unnecessary. jukebox
was almost unnecessary, but jukebox includes physfsx, and physfsx
includes stdexcept. stdexcept is necessary. Include stdexcept
directly.
Fixes: fbd05a1592 ("optimize include files (include what you use)")
Commit e6875641c9 moved allowed_chars from global scope into
individual newmenu_item entries. However, it did not enforce that this
field be initialized, and some callers failed to do so. The save game
menu was such a caller, and crashed when using an uninitialized value as
the allowed_chars pointer. There is no character restriction here, so
explicitly set the pointer to nullptr.
Reported-by: kitelessd <https://github.com/dxx-rebirth/dxx-rebirth/issues/571>
Fixes: e6875641c9 ("Move Newmenu_allowed_chars into individual newmenu_item")
clang warns for an unused constexpr global variable. gcc does not.
Move the affected variable into the same #if that guards the use of the
variable.
Fixes: 4a8d7c7574 ("Default to 1024x768 for new users, not 640x480")
640x480 is too small to render some dialogs correctly, and is much
smaller than even a small laptop screen. Smaller resolutions are still
supported, if the user chooses to switch.
When the user opens the menu via the mouse, grd_curcanv points to a
canvas other than the top level canvas. When the user opens the menu
via the keyboard, grd_curcanv points to the top level canvas. For this
menu, the top level canvas must be used in order to get correct
alignment. Switch the constructor to always use the top level canvas.
Reported-by: dimag0g <https://github.com/dxx-rebirth/dxx-rebirth/issues/564>
Fixes: e45ba0b4a9 ("Make new game menu inherit from newmenu")
Callers only ever test for whether the movie was skipped, and never
distinguish between a movie that ran to completion versus a movie that
the user interrupted. Combine these two statuses into one value, and
eliminate the logic in RunMovie that picked which of the two to return.
Previously, rendering the preferred bomb type could also change it if
the active type was exhausted. This is undesirable, since it depends on
the user to have a HUD mode which causes the bomb type to render.
Switch to only change the active type if the user tries to drop a bomb
while the active type is unavailable. Some call sites already switch
bomb types automatically on depletion. Those sites will still do so.
v0.58.1 did this, but the functionality was accidentally removed in
859b399d20. Restore it.
Fixes: 859b399d20 ("Use mask for Secondary_last_was_super")