When models are installed on the system, the modelcompiler would use
these instead of the local ones found in the "data" folder. However,
the *.model files are not installed on the system, so the
modelcompiler would end up not compiling anything.
Fix this by returning only the local "data" folder files in
FileSystemPosix.cpp if the PIONEER_LOCAL_DATA_ONLY environment variable
is set, and set this environment variable in CMake when the
modelcompiler is called.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
and the reaper's due must be paid.
As we fly back to base after another successful mission, let us clear
comms in a moment of silence for the wingmates who no longer fly in
this squadron.
- To Robn, who wrote newUI in the first place. Without you, there would
be no newUI or pigui, and I'd still be complaining about oldUI.
- To Johnbartholomew, who spearheaded the move of existing systems to
newUI and implemented plenty of code we still use today.
- To ecraven, who did all of the work of adding ImGui to the code base
and worked tirelessly to port existing screens.
- To vakhoir, who not only worked tirelessly to port the most
recalcitrant of screens, but developed UI frameworks and paradigms
that made working on the UI a pleasure instead of a pain.
This commit totally removes the newUI from the codebase. Everything that
made reference to it (save the LuaConsole) has been ported or struck
from the code. This has simplified some systems significantly, has
allowed us to drop 8,000+ lines of C++ code, cut our build times
significantly, and brings us one step closer to a modern rendering and
tools pipeline.
Significantly refactored the Input class, added Input::Manager to handle
most duties of the Input system.
Replaced the legacy KeyBindings system with the new InputBindings
(namespace subject to change) system for handling key state and key
chords - among other improvements, there is no longer a hardcoded
dependency on Pi::input anymore, as well as storing the binding state in
the binding itself, completely decoupling InputBindings from the input
system that handles input events and significantly reducing the
complexity of the binding system.
Input::Manager now is totally responsible for generating binding events,
removing the need for WorldView::HandleSDLEvent and its ilk - interested
parties can simply bind to the onPressed event and they will only be
notified when the binding in question is part of an active input frame
and nothing else has grabbed the input event, vastly simplifying control
flow.
Among other effects, this almost totally eradicates the need for
Pi::IsConsoleActive().
The lua Console widget is slightly broken as a result of this change,
it doesn't handle activation/deactivation state changes properly. The
solution to this seems to simply be a direct rewrite in PiGui, which
I don't expect to cause too many issues.
I've added a CMake option to use LLD to speed up incremental build link
times; this seems to be somewhat platform dependent and is not
implemented for windows at this time.
Serialization of key bindings to the config file is totally completed,
although support for a graphical method of binding multi-key chords is
not anticipated for this pull request.
Update the AppVeyor environment to Visual Studio 2019
Change the Appveyor cmake generator to Ninja (this is what VS now uses by default)
Un-hardcode some paths in pioneer.iss - manual creation of installer now much easier
Change output filename of installer to pioneer-(release)-win.exe
Add build target win-installer that can be used to build the installer
Build modelcompiler and savegamedump as console apps on Windows (AppVeyor)
Intall dlls from pioneer-thirdparty directly instead of using fixup_bundle
Set the GLEW_NO_GLU build flag to avoid pulling in <gl/glu.h> when
including <gl/glew.h>, as it otherwise adds a dependency we don't
actually need.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Update SIGCPP_LIBRARIES to use debug version for debug builds
Fix variable name reference in post_build command
Output executables to the root dir when doing MSVC build
- Shim Error, Warning and Output to the new log framework
- Add multiple non-error log levels, and a non-fatal error log level
- Use fmt::fmt to format args instead of snprintf, avoid using variadics
- Remove the (no-op) OpenGLDebugMsg function
This is primarily to make tool development easier - right now the only
way to build a tool without linking all 90MB+ of pioneer binary into the
tool is to cherry-pick a set of cpp files and hope you have all the
symbols you need for what you're doing.
Over time, "generic" functionality like compression, math, etc. will be
moved to the core module so tools can link against one library without
incurring lengthy link and compile times.
A better way of handling initialization and updates
Still need to incorporate pigui handling into GuiApplication so we don't have to duplicate all of the pigui code
* Fixup projects after many changes
* Use GetProcessMemoryInfo to get memory details
* Moved bracket, spaced the header includes to preserver order, added psapi libs to cmake build
* Buggered up the CMake file
src/lua/Lua.h and contrib/lua/lua.h were conflicting on case-insensitive
filesystems like Windows and OSX (with non-portable include path support)
Ideally we want contrib/lua to have a different name, as we include lua
via #include <lua.hpp> and not #include <lua/lua.hpp>
This will be used only when compiling under MinGW, since MinGW's GLEW
config script seems to be really broken.
Fixes#4662.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Enable multithreaded compilation for VS, prevent it Optimizing the models per-build, fix up the pioneer-thirdparty paths, GLOB the header files, copy the DLLs needed for visual studio, Changed the appveyor MSVC prepare script
Use CMake to detect the availability of feclearexcept, feenableexcept,
fedisableexcept.
Fixes#4645.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
On all platforms (Windows, Linux, OSX), the automated builds and build
instructions don't use the pioneer-thirdparty repo. It's only ever
useful on Windows when building with Visual Studio.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Add a few defines and make 'main' functions extern "C" (see SDL_main.h)
to fix the build under Visual Studio 2017.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Libpng is a dependency of SDL2_image, not a direct dependency, so we
don't need to link against it.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>