Subversion Repositories eduke32

Rev

Go to most recent revision | Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
4540 2538d 4h hendricks266 /polymer/eduke32/source/animvpx.c Lunatic fixes:
1 compiler error.
2 compiler warnings.
1 runtime warning.

Note that at this time, CPLUSPLUS=1 LUNATIC=1 fails to build due to C++ function mangling, and Win64 Lunatic crashes.

DONT_BUILD.
 
4320 2688d 2h hendricks266 /polymer/eduke32/source/animvpx.c MSVC: Add support for x64 building and all synthesis libs (libpng/zlib, libvpx, libFLAC).

External ogg/vorbis are no longer required.
 
3644 2998d 19h helixhorned /polymer/eduke32/source/animvpx.c Take over and use static assertion macro found in LuaJIT sources.  
3341 3095d 22h helixhorned /polymer/eduke32/source/animvpx.c Fix LTO=1 RELEASE=1 Lunatic build.  
3176 3139d 22h helixhorned /polymer/eduke32/source/animvpx.c Split r3159..r3161, part 10: add explicit casts to *alloc return values.

NOTE: changes such as these are best viewed with something like
git diff (...) --color-words='[a-zA-Z0-9_]+|[^[:space:]]'
 
3165 3139d 22h helixhorned /polymer/eduke32/source/animvpx.c Revert "Fix the warnings when building with C++, add MSVC C++ build support."

This reverts r3159..r3161.

Conflicts:
eduke32/build/include/compat.h
(Handled so that r3163's changes are kept applied.)
 
3159 3140d 13h terminx /polymer/eduke32/source/animvpx.c Fix the warnings when building with C++, add MSVC C++ build support. This also changes the internal type of lotags, hitags and cstat type fields to uint16_t instead of int16_t to clean up some dubious behavior wherein the code was using a value of 32768 as a flag in these fields for certain types of things, like invisible sprites (using the value as if it was uint16_t) where it was elsewhere checking if the value was < 0 (using the value as if it was int16_t). This change may break a few specific effects if any part of the relevant code was missed when looking for areas that needed to be addressed.

I think there's also a fix for the CON precache system breakage in here (lost it in my local tree when I started getting the C++ build working in MSVC, sorry!)
 
3131 3146d 17h helixhorned /polymer/eduke32/source/animvpx.c New utility ivfrate(.exe) and a couple of small VP8 changes.

The command-line utility can query and set the frame rate of IVF files, since
apparently encoders don't care too much about setting proper values in the IVF
header. Also, add the utility to the synthesis build.

On the playback side in EDuke32, get rid of the 1/(2*fps) "correction" if the
FPS numerator is <1000 (presumably used in older encoders) and properly print
the frame rate's fractional part.
 
3116 3150d 10h hendricks266 /polymer/eduke32/source/animvpx.c Work-in-progress adjustment to the C code to compile under C++. It builds for me without errors using Win32 MinGW-GCC, but it still generates warning soup. No guarantees about MSVC or anything using SDL. Enable C++ by building with CPLUSPLUS=1. C remains the default and should compile with no change in setup.

Credit to Plagman for the idea and doing the work on the game side, which is included in this commit.

(Building as C++ will give us features with which we can make improvements and optimizations on the multiplayer code and Polymer.)
 
3110 3151d 17h helixhorned /polymer/eduke32/source/animvpx.c VPX: print determined frame rate to the log.

Currently, the FPS determination is based on libvpx's vpxdec.c code, which uses
the FPS provided in the IVF file in one case, and simply sets it to 30 FPS in
the other. For the first case, a "correction" is carried out for something
which the comments suggest to originate from other (old?) VPX encoder versions.
 
3026 3191d 16h helixhorned /polymer/eduke32/source/animvpx.c Fix compilation on Debian 6.0 (Squeeze).  
2834 3264d 19h helixhorned /polymer/eduke32/source/animvpx.c VP8: clamp GL texture to edge if possible, preventing potential stray lines  
2832 3264d 19h helixhorned /polymer/eduke32/source/animvpx.c VP8: collect times while playing the video and print a summary to the log afterwards.  
2830 3264d 19h helixhorned /polymer/eduke32/source/animvpx.c VP8: unroll 3 planes -> packed conversion loop.

On an AMD Phenom II X4 system with generic memory modules, this brings down
the mean time for this conversion from 16.5 to 10.5 ms.
(GCC 4.6.1, optimized build)
 
2241 3449d 13h helixhorned /polymer/eduke32/source/animvpx.c In VPX 3 planed --> packed conversion code, pull constant expressions out of
the loop. For the release build and the test animation, this lowers the time
to 3-4 ms per conversion of one frame on my desktop machine.
 
2158 3481d 18h helixhorned /polymer/eduke32/source/animvpx.c Remove some warnings with clang, code-side changes.  
2107 3510d 15h helixhorned /polymer/eduke32/source/animvpx.c Fix building with both LTO and VPX support enabled. Specifically, don't use
the 'optimize' function attribute if LTO is enabled.
 
2083 3525d 0h helixhorned /polymer/eduke32/source/animvpx.c Comment out some unnecessary lines in animvpx.c  
2042 3556d 22h helixhorned /polymer/eduke32/source/animvpx.c VPX: in 3 planes -> packed format conversion code, group together the
three individual loops and compile the enclosing function at -O3 (-O1 for
debugging builds). Now, the time for this conversion ranges from 7 to 18
ms per frame across various tested machines, a clear improvement.
 
1943 3619d 22h helixhorned /polymer/eduke32/source/animvpx.c * Clean up after myself. It seems that Polymost isn't very clean with handling texture IDs sometimes, so switching between the two GL renderers could mess them up with the last revision. This is fixed now by always uninitializing Polymer when changing from it to another renderer.

* New shade/visibility calculation code, which is activated with 'r_usenewshading' (on by default), and is closer to the classic look. Also tweak the FOGSCALE macro to have approximately the same fog distance with all renderers.

* Mapster32: END modifier to RShift. If it's pressed when RShift is released, sprites which are in grayed out sectors are also selected; Make changing shade affect all highlighted sprites in 3D mode (when aiming at one of them).

* some debug code to watch out for suspicious glGenTexture/glDeleteTextures calls, not active.
 

Show All