Commit Graph

68 Commits

Author SHA1 Message Date
terminx 04811f21f4 Replace separate timer implementations in SDL and Winlayer with a shared implementation based on std::chrono
git-svn-id: https://svn.eduke32.com/eduke32@7976 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	platform/Windows/build.vcxproj
#	platform/Windows/build.vcxproj.filters
#	source/build/src/mdsprite.cpp
2019-09-20 16:09:24 +02:00
terminx 28c778c8a3 Automatic source file dependency generation for GNUmakefile
This automatically saves the dependencies used for a given object file during the first compilation, then uses the generated data for each subsequent compile to determine if the object needs to be rebuilt. Why? Because if I see one more warning about the C++ One Definition Rule, I'm going to fucking snap.

git-svn-id: https://svn.eduke32.com/eduke32@7839 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:50 +02:00
hendricks266 6a06a74886 Print extern declaration when generating .cpp from .glsl
git-svn-id: https://svn.eduke32.com/eduke32@7800 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:14:25 +02:00
hendricks266 5f1ec28913 Tweak build process messages when building objects from .glsl files
git-svn-id: https://svn.eduke32.com/eduke32@7797 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:11:05 +02:00
pogokeen 12ce6a78fe Fix parallel build by switching to generating .obj files from .glsl files and treat the shader source as an externed global resolved at link time.
Additionally, remove the no longer necessary shader generated headers folder from .gitignore

git-svn-id: https://svn.eduke32.com/eduke32@7793 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	.gitignore
#	source/build/src/polymost.cpp
2019-09-20 15:10:56 +02:00
hendricks266 616b0c2347 Fix sequential GNUmakefile build
git-svn-id: https://svn.eduke32.com/eduke32@7786 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:10:09 +02:00
pogokeen f6993940e5 Separate out polymost1Frag and polymost1Vert shaders from polymost.cpp and add rules for building in the GNUmakefile.
Additionally, git ignore the shader's generated headers folder.

git-svn-id: https://svn.eduke32.com/eduke32@7782 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	.gitignore
#	source/build/src/polymost.cpp
2019-09-20 14:57:42 +02:00
terminx e59f8e3b71 Use FORCE_INLINE and CONSTEXPR where appropriate in the Q16 fixed point math library
git-svn-id: https://svn.eduke32.com/eduke32@7588 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	platform/Windows/build.vcxproj.filters
2019-09-19 14:30:22 +02:00
hendricks266 36b75561cc Update some program names
git-svn-id: https://svn.eduke32.com/eduke32@7537 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:06:18 +02:00
hendricks266 ac8dabb0fb Rename net.* to network.*
git-svn-id: https://svn.eduke32.com/eduke32@7443 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:20:45 +02:00
hendricks266 7414f29348 Add buildvfs, abstraction layer for file I/O.
Currently it passes calls through to the system libraries as before.

Also adds an incomplete implementation on PhysFS.

git-svn-id: https://svn.eduke32.com/eduke32@7359 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-01 08:51:50 +00:00
hendricks266 fd175086a3 Move the LZW compression functions out of cache1d.cpp into their own object, klzw.cpp.
This eliminates the hackiness of libcache1d.so (now libkzlw.so) and CACHE1D_COMPRESS_ONLY.

git-svn-id: https://svn.eduke32.com/eduke32@7140 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-05 07:28:07 +00:00
hendricks266 a0c87b5fda Update glad to 0.1.25
Includes https://github.com/Dav1dde/glad/pull/140

git-svn-id: https://svn.eduke32.com/eduke32@6948 1a8010ca-5511-0410-912e-c29ae57300e0
2018-07-23 02:55:49 +00:00
pogokeen 1df7127609 Support software renderer upscaling engine-side in sdlayer and sdlayer12 with various scaling factors (beyond just pixel doubling).
When glsurface is available, use GL to upscale the render buffer.
Additionally, fix build issues with sdlayer12 introduced by GLAD changes (r6656).

git-svn-id: https://svn.eduke32.com/eduke32@6939 1a8010ca-5511-0410-912e-c29ae57300e0
2018-07-14 21:36:44 +00:00
terminx 652c0044a1 Fix building the Build tools
git-svn-id: https://svn.eduke32.com/eduke32@6924 1a8010ca-5511-0410-912e-c29ae57300e0
2018-06-14 17:49:53 +00:00
pogokeen 9d243606d0 When OpenGL is available, prefer using the new glsurface to blit the classic renderer's 8-bit buffer to the screen.
git-svn-id: https://svn.eduke32.com/eduke32@6919 1a8010ca-5511-0410-912e-c29ae57300e0
2018-06-13 19:15:16 +00:00
pogokeen dcdffb73d0 Dynamic tilepacking for indexed colour textures
git-svn-id: https://svn.eduke32.com/eduke32@6883 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-08 17:32:16 +00:00
terminx 4cd19d5435 Update Miniz
git-svn-id: https://svn.eduke32.com/eduke32@6849 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-23 06:35:34 +00:00
hendricks266 bb84fa725e Makefile: Allow component cflags to override global CWARNS for clang-tools rule.
git-svn-id: https://svn.eduke32.com/eduke32@6781 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-22 04:48:50 +00:00
terminx 4d8bb170a3 Use Q16.16 fixed point for player horiz
git-svn-id: https://svn.eduke32.com/eduke32@6724 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-07 04:21:05 +00:00
hendricks266 af69391c24 Silence -Wcast-qual in glad.c.
git-svn-id: https://svn.eduke32.com/eduke32@6667 1a8010ca-5511-0410-912e-c29ae57300e0
2018-02-16 08:33:39 +00:00
pogokeen 3ca5f33c73 Moved to GLAD for dynamic GL/WGL and extension loading.
Refactored extension usage that became core in GL2, and adjusted some types for GL2 compatibility.

git-svn-id: https://svn.eduke32.com/eduke32@6656 1a8010ca-5511-0410-912e-c29ae57300e0
2018-02-16 06:38:21 +00:00
terminx b65458ebfe Rename CLANG_DEBUG_FLAGS -> ASAN_FLAGS in makefile and enable them for GCC, because GCC supports ASan these days
git-svn-id: https://svn.eduke32.com/eduke32@6549 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-10 03:24:39 +00:00
hendricks266 64d76db260 Add support for MTM modules.
git-svn-id: https://svn.eduke32.com/eduke32@6475 1a8010ca-5511-0410-912e-c29ae57300e0
2017-10-15 23:09:59 +00:00
hendricks266 f5d0acfee8 Makefile: Fix building the tools on Mac.
git-svn-id: https://svn.eduke32.com/eduke32@6425 1a8010ca-5511-0410-912e-c29ae57300e0
2017-08-06 13:44:57 +00:00
hendricks266 eb332f21a4 Makefile: More no-shell stuff that I didn't want to rebase past the lowercase stuff.
git-svn-id: https://svn.eduke32.com/eduke32@6424 1a8010ca-5511-0410-912e-c29ae57300e0
2017-08-06 13:44:54 +00:00
hendricks266 ccf09530e6 Makefile: Make the dynamic rule creation a little bit simpler, thanks to the previous commit.
git-svn-id: https://svn.eduke32.com/eduke32@6423 1a8010ca-5511-0410-912e-c29ae57300e0
2017-08-06 13:44:52 +00:00
hendricks266 0ebfd394d2 Makefile: Make most variables in the component construction lowercase.
git-svn-id: https://svn.eduke32.com/eduke32@6422 1a8010ca-5511-0410-912e-c29ae57300e0
2017-08-06 13:44:49 +00:00
hendricks266 04bc041c2e Makefile: Eliminate all mandatory use of *nix userland tools.
Windows should no longer need an msys install to build with MinGW-w64.

Working Title: MSYS Gets Shell-Shocked

git-svn-id: https://svn.eduke32.com/eduke32@6419 1a8010ca-5511-0410-912e-c29ae57300e0
2017-08-06 13:44:41 +00:00
hendricks266 b56255e774 Makefile: Assignment operator cleanup.
git-svn-id: https://svn.eduke32.com/eduke32@6418 1a8010ca-5511-0410-912e-c29ae57300e0
2017-08-06 13:44:39 +00:00
terminx fd19569099 Drop libpng and zlib in favor of a custom < 100 line .png writer and a drop-in zlib replacement called miniz.
git-svn-id: https://svn.eduke32.com/eduke32@6365 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-18 20:53:00 +00:00
hendricks266 d57234e668 Replace sound_func function pointer parameter and associate functions for hardcoded ANMs with equivalent animsounds arrays.
git-svn-id: https://svn.eduke32.com/eduke32@6285 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-25 11:24:34 +00:00
hendricks266 22a7b3c6f3 Makefile: Move rules around to unbreak Linux builds. This may be a GNU Make bug. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@6173 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-10 06:21:29 +00:00
hendricks266 05cd4aa231 Makefile: Distinguish between .c files in rsrc and ones generated at build time in obj.
git-svn-id: https://svn.eduke32.com/eduke32@6172 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-10 06:21:24 +00:00
hendricks266 483488643f Amend r6150.
git-svn-id: https://svn.eduke32.com/eduke32@6171 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 07:00:07 +00:00
hendricks266 44536c51d0 Makefile: Add libxmp-lite, replacing static linking to a library that was uncommon in Linux and Mac package managers.
git-svn-id: https://svn.eduke32.com/eduke32@6159 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:39:42 +00:00
hendricks266 000050c7b9 Makefile: Add LPeg sources, replacing the haphazard static linking that required a custom-built library in a hardcoded location.
git-svn-id: https://svn.eduke32.com/eduke32@6157 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:39:21 +00:00
hendricks266 e00c3a92bd Makefile: Move the ENet group up into a new section for libraries that are not ours but included in our repository.
git-svn-id: https://svn.eduke32.com/eduke32@6154 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:39:04 +00:00
hendricks266 f0be1fb1e2 Makefile: Remove manual assembly of object file lists and replace it with a system for tracking dependencies between groups.
git-svn-id: https://svn.eduke32.com/eduke32@6153 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:39:01 +00:00
hendricks266 6d990b592e Makefile: Rename some groups so that the part before the first _ corresponds to the parent group that has _SRC and _OBJ defines.
git-svn-id: https://svn.eduke32.com/eduke32@6152 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:38:58 +00:00
hendricks266 f81f6b76e6 Makefile: Remove $(LUNATIC_LUA_PREFIX).
git-svn-id: https://svn.eduke32.com/eduke32@6151 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:38:55 +00:00
hendricks266 3306b8d5a3 Makefile: Move duke3d and engine directory definitions to their proper spots, as they no longer need early definition after the great repository rearrangement.
git-svn-id: https://svn.eduke32.com/eduke32@6150 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:38:52 +00:00
hendricks266 3627c7710e Makefile: Update heading comments.
git-svn-id: https://svn.eduke32.com/eduke32@6149 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:38:49 +00:00
hendricks266 91c8ca11bd Makefile: Remove printing of compiler/assembler/linker options at build start. Use PRETTY_OUTPUT=0 if you need that information.
git-svn-id: https://svn.eduke32.com/eduke32@6148 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:38:46 +00:00
hendricks266 b3d597200b Common.mak: Massive reorganization/cleanup.
Any functional changes are incidental and minor, other than the outright removals.

git-svn-id: https://svn.eduke32.com/eduke32@6147 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:38:42 +00:00
hendricks266 0a74a878e1 Rename savegame.lua to lunasave.lua to avoid a collision with savegame.cpp. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@6145 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-07 05:56:35 +00:00
hendricks266 934849a965 Amend r6126, which doesn't leave "eduke32" defined anywhere for binary names when APPBASENAME is not specified.
git-svn-id: https://svn.eduke32.com/eduke32@6129 1a8010ca-5511-0410-912e-c29ae57300e0
2017-04-24 05:11:11 +00:00
terminx 645f88dba9 Base output binary name on APPBASENAME. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@6126 1a8010ca-5511-0410-912e-c29ae57300e0
2017-04-24 04:35:27 +00:00
hendricks266 cf3a4550b0 Makefile: Add phony target "clang-tools" for use with clang-tools.
ex: clang-query `make clang-tools`

DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@6108 1a8010ca-5511-0410-912e-c29ae57300e0
2017-03-23 20:47:11 +00:00
hendricks266 886924126a Makefile: Add *_ORDERONLYDEPS, which saves us an error message when building Lunatic on Mac.
git-svn-id: https://svn.eduke32.com/eduke32@6107 1a8010ca-5511-0410-912e-c29ae57300e0
2017-03-23 20:47:08 +00:00