Commit Graph

51 Commits

Author SHA1 Message Date
ptitSeb
360d19b01c Fixed a partable C dithering option, fixing the red artific on shadows for some configurations 2017-07-24 12:23:16 +02:00
ptitSeb
feb12b02d4 Merge branch 'master' of https://github.com/ptitSeb/Serious-Engine 2016-12-26 22:36:41 +01:00
Daniel Gibson
882c7773b5 Game can be executed and quit without crashes
mostly checks before calling AddReference()/RemReference()
2016-06-06 03:53:57 +02:00
Emil Laine
16a2048a2c Fix warning -Wchar-subscripts 2016-05-30 00:50:11 +02:00
Daniel Gibson
b64df456b6 Fix TFE warnings and lots of unused variable warnings
.. still, didn't look at unused variable warnings from *.es because
so many are generated.
2016-05-09 18:51:04 +02:00
Daniel Gibson
8106aedd9f Use at least 16bit for Depth-Buffer (fixes #37)
Seems like on Windows 0 bits is handled as "Let Windows/Driver decide",
so handle that case by setting a reasonable value of 16.
2016-05-09 18:51:03 +02:00
Daniel Gibson
1bfc6d5d81 Fix "unused but set variable" warnings from GCC 2016-05-09 18:51:03 +02:00
Daniel Gibson
72edf1c720 Commented out unused functions and variables
many unused functions and variables are now commented out

You'll still get tons of warnings, which should mostly fall in one of
the following categories:
1. Unnecessary variables or values generated from .es scripts
2. Pointers assigned to from functions with side-effects: DO NOT REMOVE!
   Like CEntity *penNew = CreateEntity_t(...); - even if penNew isn't
   used, CreateEntity() must be called there!
2016-05-09 18:51:03 +02:00
Daniel Gibson
bee4102374 Fix several warnings, warn if not using depth buffer
Fixed -Wreorder warnings (hopefully the last?), also several potentially
uninitialized variables.

In SetupPixelFormat_OGL() Assert if gap_iDepthBits ends up being 0.

Small adjustments to cmake warning settings for gcc/clang
2016-05-09 18:48:39 +02:00
Daniel Gibson
c58328d881 RSBinToGroups() use __builtin_clz() instead of manual bsr if available
should be faster.
2016-05-09 18:48:39 +02:00
Daniel Gibson
46353ffc5d make BYTESWAP*_unsigned() macros inline functions, use GCC builtins
the builtins are only used when using GCC or clang, of course, otherwise
the usual shifting is done.

Them being inline functions instead of macros increases type safety
and gets rid of problems with signed shifts.

Changed two places in the code that swapped bytes in 32bit ints to use
BYTESWAP32_unsigned() instead - in case of PrepareTexture() this has
probably even fixed issues with signed shifts
2016-05-09 18:48:39 +02:00
notaz
1f70d4e242 rework asm to always fall back to portable C code
with this there is no need to worry about x86 asm switch for other
platforms.
2016-04-25 00:14:29 +03:00
notaz
4b5cc03bf0 rename __GNU_INLINE__ to __GNU_INLINE_X86_32__
There is not only x86 in this world.
Simple sed job.
2016-04-25 00:13:37 +03:00
ptitSeb
bbb184aad7 More macro for UNIPTR_MAX 2016-04-22 22:03:07 +02:00
notaz
b1837c2e58 fix Graphics asm
same stuff as in previous commit
2016-04-22 02:29:30 +03:00
notaz
a1b84b3ba0 Revert "fix build on gcc 4.8"
This reverts commit 8bbe4c1d5e.
Going to fix it properly.
2016-04-22 02:29:30 +03:00
Yamagi Burmeister
794180c598 bswap_32() is a linuxism, use inline code instead.
bswap_32() is a function specific to Linux, unavailable on FreeBSD and
OS X. Instead of messing with other platform specific functions, #ifdef
and so on provide a fast inline implementation.
2016-04-19 19:09:20 +02:00
Daniel Gibson
8de421dc9d Textures.cpp: improved td_pulObjects/td_ulObject fix
* td_pulObjects is explicitly set to NULL in the constructor - before
  only td_ulObject was set to NONE (0), so on 64bit half of
  td_pulObjects bytes would remain garbage
* only check td_ulObject for NONE if td_ctFrames <= 1 (until now it
  would frequently check it for NONE even if td_ctFrames > 1, if
  td_pulObjects was != NULL)
2016-04-19 14:38:25 +02:00
Ryan C. Gordon
1f7bb24a4d Merge pull request #26 from DanielGibson/64bit-stuff
Some 64bit improvements, lots of 64bit TODOs/STUBBED()
2016-04-18 22:33:58 -04:00
notaz
8bbe4c1d5e fix build on gcc 4.8
some versions of gcc want to inline DitherBitmap(), and this leads to trouble:
Sources/Engine/Graphics/Graphics.cpp:1167: Error: symbol `rowLoopE' is already defined
Sources/Engine/Graphics/Graphics.cpp:1170: Error: symbol `pixLoopEL' is already defined
...
2016-04-18 23:55:41 +03:00
Daniel Gibson
ab5d0a584f Make Engine/Graphics/Texture.cpp 64bit-clean (hopefully!)
((ULONG*)td_ulObject)[iFr] is fishy - and ULONG td_ulObject already is
in an union with ULONG* td_pulObjects, so use td_pulObjects when
appropriate (i.e. if td_ctFrames>1)
Also fixed some checks accordingly.
2016-04-18 20:10:24 +02:00
Daniel Gibson
80990f2317 Fix some more warnings, Warning about supressed warnings in cmake 2016-04-18 19:10:52 +02:00
Daniel Gibson
599f644328 Resolved some 64bit issues, marked/commented some others
introduced PLATFORM_32BIT and PLATFORM_64BIT macros, so you can do
#ifdef PLATFORM_64BIT if you need to.
I needed that for CDrawPort::GetID() to properly CRC a pointer.
Also added a sanity check in Engine/Base/Types.h that makes sure that
uintprt_t and size_t have the same size, as the code uses size_t to
store pointers (or cast from pointer to int) all over the place.

Made some "tags" from Engine/Templates/BSP_internal.h size_t instead of
ULONG - they're used to store pointers to identify vertices and such,
so they'd better be big enough to actually store a pointer.
Some more are still missing.
2016-04-17 23:35:04 +02:00
ptitSeb
9678ec3e58 Enabled Multi-Threading (as an option) + OpenPandora specific changes (for Shoulder As Mouse Buttons) 2016-04-12 22:29:39 +02:00
Ryan C. Gordon
02af656d1c Whoops, forgot to actually enumerate physical display resolutions. 2016-04-10 00:54:45 -04:00
Ryan C. Gordon
6ce0b9b27e First attempt at a port to SDL2. Untested! 2016-04-09 02:18:57 -04:00
Ryan C. Gordon
9820436fbe First pass at cleaning out 64-bit issues.
Touches a lot of code to remove long constants like "1L", so this patch is
large and ugly, but I think it makes all those Clamp() calls look nicer in
the long run.

Most of the game is 64-bit clean, since we can build without assembly code
now. I've marked the things that are obviously still wrong with STUBBED lines.

That being said: a 64-bit build can already run the demos mostly correctly,
so we're actually almost there!

There are a few obvious things that are obviously wrong, to be fixed.
2016-04-06 23:20:29 -04:00
Ryan C. Gordon
70f3f7fe35 Turned off an assert that reads past the start of an array.
It'll crash here anyway if that assertion would have triggered, I think.
2016-04-06 23:20:29 -04:00
ptitSeb
7590c3ca04 GLES hardware doen't read depth, so I assume ARM based machine can'tt either 2016-04-06 16:30:39 +02:00
ptitSeb
af9d472619 Unstubbed the Dithered Portable C functions (ordered one unstested) 2016-04-06 13:46:26 +02:00
ptitSeb
73aab13a79 Try to fix the Portable C UploadTexture_OGL function 2016-04-06 13:44:36 +02:00
ptitSeb
8c03fccd64 Fixed the bsr Portable C function, the game start correctly now 2016-04-06 13:41:32 +02:00
ptitSeb
8c49b5f7a0 Unstubbed the Fog Portable C function 2016-04-06 13:40:56 +02:00
ptitSeb
2406f62c4b Unstubbed the Color Portable C functions 2016-04-06 13:40:02 +02:00
Ryan C. Gordon
a7e4f8237e Patched to compile on Linux, and cleaned out almost all compiler warnings. 2016-04-04 02:34:07 -04:00
Ryan C. Gordon
1a2ccb8f50 Merge github.com:Croteam-Official/Serious-Engine
Conflicts:
	Sources/Ecc/Parser.cpp
	Sources/Ecc/Scanner.cpp
	Sources/Engine/Base/Scanner.cpp
	Sources/Engine/GameAgent/GameAgent.cpp
	Sources/Engine/Graphics/Gfx_wrapper.h
	Sources/Engine/Network/Network.cpp
	Sources/Engine/Sound/SoundDecoder.h
	Sources/Engine/Templates/HashTableTemplate.cpp
	Sources/Engine/Terrain/Terrain.h
	Sources/EntitiesMP/ParticleCloudsHolder.es
	Sources/EntitiesMP/ParticleCloudsMarker.es
	Sources/SeriousSam/CDCheck.h
	Sources/SeriousSam/Menu.cpp
	Sources/SeriousSam/MenuGadgets.cpp
	Sources/SeriousSam/SeriousSam.cpp
	Sources/SeriousSam/SplashScreen.cpp
	Sources/SeriousSam/StdH.cpp
	Sources/SeriousSam/StdH.h
	Sources/Shaders/StdH.cpp
2016-04-02 23:56:12 -04:00
Salamanderrake
2be26952c7 Case Issue with #include statement.
* Gfx_wrapper.cpp: two #include statemenst with incorrect case.

* Fixed an empty line issue
2016-04-02 01:12:25 -04:00
Salamanderrake
4ce00bca08 Statistics_internal.h: Incorrect case as its Statistics_Internal.h on disk. 2016-04-02 01:11:53 -04:00
Ryan C. Gordon
0d426d5998 Fixed up some StdH includes. 2016-04-01 14:04:24 -04:00
Ryan C. Gordon
5aea1f7c4d Untangle the symbols in the engine's parser and the Ska parser. 2016-04-01 01:49:13 -04:00
Ryan C. Gordon
7c9d29ad1a Naturally, there are two files with inline asm with an "mmShift" symbol. :) 2016-03-31 15:48:48 -04:00
Ryan C. Gordon
ee754e7edf Made static variables that inline asm needs to touch non-static.
I dislike having to do this, but Clang sees them as unused and removes them
from the object file, causing linking to fail.

The real solution here is to remove all the assembly code because it's 2016
and this game doesn't have to run on 133MHz Pentium now.  :)
2016-03-31 13:04:57 -04:00
Ryan C. Gordon
2668cdc44f Fix up some mismerges and get the OpenGL code to compile again. 2016-03-31 12:26:43 -04:00
Ryan C. Gordon
8ea00b12d2 More work on getting this to compile. 2016-03-30 11:00:01 -04:00
Ryan C. Gordon
2e7af8cf00 More mismerge corrections and other fixes to get this closer to compiling. 2016-03-30 02:01:02 -04:00
Ryan C. Gordon
2f10f864d8 Silence a whole bunch of warnings about string literals vs non-const char *. 2016-03-29 12:51:34 -04:00
Ryan C. Gordon
a4000c69a8 Clean out a bunch of compiler warnings. 2016-03-29 12:51:33 -04:00
Ryan C. Gordon
24cb244d43 First attempt to hand-merge Ryan's Linux and Mac OS X port.
This was a _ton_ of changes, made 15 years ago, so there are probably some
problems to work out still.

Among others: Engine/Base/Stream.* was mostly abandoned and will need to be
re-ported.

Still, this is a pretty good start, and probably holds a world record for
lines of changes or something.  :)
2016-03-28 23:46:13 -04:00
zcaliptium
ef0b970490 Fixes 2016-03-22 21:03:12 +03:00
Matt Lee
a4af93fa31 Add GPL header to files 2016-03-11 18:20:51 -06:00