22369 Commits

Author SHA1 Message Date
Sam Edwards
e3cc3eff82 putil: Optimize DatagramInputFile::get_datagram
This new loop is better in two ways:
1) It reads straight into the Datagram's internal buffer,
   saving the trouble of allocating an intermediate buffer
   and wasting CPU time to copy out of it.
2) It's more cautious in the face of large (>4MB) lengths,
   which are more likely to be due to corruption than the
   datagram *actually* being that large.
2018-02-23 01:38:27 -07:00
Sam Edwards
10f1ffa9a7 express: Fix Datagram::modify_array()
This just copies the array initialization out of append_data, so a
COW/uninitialized Datagram can be initialized with modify_array()
2018-02-23 01:38:26 -07:00
Sam Edwards
04cb128140 cftalk: Remove this
It was an incomplete experiment for distributing rendering pipelines over
a LAN of computers all working in concert.

Who knows, it may return someday. Until then, it's best not to keep it
around.
2018-02-22 15:18:34 -07:00
Sam Edwards
f8e321d155 bam: Start more strongly checking pointer types in complete_pointers
This just starts with PandaNode, and uses DCAST_INTO_R instead of DCAST
to catch bad bams. BamWriter should never produce bam output that will
trigger this; I found this with a fuzzer.

I'm unsure about the tradeoff between bam loading performance and
robustness in the face of bad bams. It certainly makes a lot of sense
in debug builds, but we might want to consider a compile flag that
forces bam-related asserts always on even in release builds.
2018-02-22 04:57:29 -07:00
Sam Edwards
293465a516 bam: Add sanity-check against object IDs appearing twice
Found this by fuzzing; not concerned about updating the writer as
the writer itself should never do this. This is just to protect
against segfaults in the face of corrupt or malicious bams.
2018-02-22 03:13:33 -07:00
Sam Edwards
47a9aa4a80 bam: Simplify the resolve_*_pointers loops in BamReader
This should also be a slight performance boost since breaking out
of the loop upon discovering an incomplete child object means we don't
bother resolving everything else just to discard it all.
2018-02-22 02:03:33 -07:00
rdb
e0569815b5 tests: add test for prc page and one for light color temperature 2018-02-21 15:56:45 +01:00
deflected
6c7894f68d terrain: set ShaderTerrainMesh heightfield wrap mode to clamp 2018-02-21 15:27:15 +01:00
deflected
9afdb78d94 bullet: make thread-safe by adding global lock mechanism
Also addresses some memory leaks.
2018-02-21 15:04:47 +01:00
Sam Edwards
540c4fc2cd CMake: Delete excess spaces 2018-02-21 02:54:09 -07:00
Sam Edwards
9e841800ee CMake: Migrate detection for the physics packages 2018-02-21 02:38:54 -07:00
Sam Edwards
196d780820 CMake: Remove commented-out TODOs regarding unsupported rendering backends 2018-02-20 23:38:39 -07:00
Sam Edwards
17d56279f5 CMake: Migrate FreeType package detection 2018-02-20 19:28:32 -07:00
Sam Edwards
590523ac8c CMake: Rename FindSquish to FindLibSquish
CMake already has a "FindSquish" for finding the GUI testing product.
This minimizes the chances of the wrong module being run on accident.
2018-02-20 18:58:52 -07:00
Sam Edwards
8b9d2c0f33 CMake: Delete FindEigen2, we rely on Eigen3+ 2018-02-20 18:19:56 -07:00
Sam Edwards
2717c24ffc CMake: Migrate detection of the audio libraries 2018-02-20 18:19:45 -07:00
Sam Edwards
769fd30119 CMake: Remove more HAVE_MESA references 2018-02-20 17:52:33 -07:00
Sam Edwards
3210302caf CMake: Migrate FFmpeg package detection 2018-02-20 17:52:33 -07:00
Sam Edwards
72d668e05a CMake: Migrate zlib package detection 2018-02-20 17:19:21 -07:00
Sam Edwards
0ed64c72ce CMake: Migrate over VRPN detection 2018-02-20 17:02:17 -07:00
Sam Edwards
e882088421 CMake: Remove INSTALL_PYTHON_SOURCE option
It's unused and easy to run "make" in between changes anyway
2018-02-20 13:55:28 -07:00
Sam Edwards
7aedc21510 tests: Update audio test to recognize missing sounds as NullAudioSound 2018-02-20 00:55:49 -07:00
Sam Edwards
50b3b87ad5 openal: Explicitly signal a needed cleanup from require_sound_data 2018-02-20 00:55:49 -07:00
Sam Edwards
f970bc3229 openal: Don't return OpenALAudioSounds that fail to initialize
Also don't register them in _all_sounds, where they won't remove themselves
due to having already called cleanup() on themselves.

Additionally stops a sound in a cleaned-up state from being passed to the
app and played.
2018-02-20 00:55:49 -07:00
Sam Edwards
bc88566906 tests: Add xfail test for loading a missing audio file 2018-02-19 19:15:08 -07:00
Sam Edwards
75366484b0 CMake: Migrate over Nvidia Cg package detection 2018-02-19 00:05:49 -07:00
Sam Edwards
ecfd924f0d CMake: Remove references to unsupported versions of DirectX. 2018-02-18 23:34:02 -07:00
Sam Edwards
a9717cf3ab CMake: Migrate detection of libsquish 2018-02-18 21:41:33 -07:00
Sam Edwards
71836f09e3 CMake: Remove references to genPyCode 2018-02-18 20:42:59 -07:00
Sam Edwards
0783013ecd CMake: Custom targets don't need EXCLUDE_FROM_ALL 2018-02-18 20:24:27 -07:00
Sam Edwards
6907eb5207 CMake: Fix Interrogate -module panda3d.${module} flag missing 2018-02-18 03:57:56 -07:00
Sam Edwards
283db1fb7a CMake: Implement detection for FFTW3 2018-02-17 23:35:43 -07:00
Sam Edwards
84e7539f99 Merge branch 'master' into cmake 2018-02-17 23:35:19 -07:00
Sam Edwards
68b1ecfd32 parser-inc: Add stub for FFTW3 header 2018-02-17 23:31:08 -07:00
Sam Edwards
ad7669e12a mathutil: Update FFTCompressor for FFTW3
This has been due for a while. The last FFTW 2.x release was in 1999.

Note that this does change some of the loops; this has two benefits:
1) The halfcomplex storage order is now explained with a comment.
2) It fixed the special case "don't break a run of bytes for a zero" which
   was never triggering due to the value not being *exactly* 0.0.

I have tested these changes against older FFT-compressed animation .bams
and no noticeable decompression changes are present, so a .bam version
bump is not necessary.
2018-02-17 22:32:38 -07:00
Sam Edwards
5c4ef25bb7 CMake: Use proper target_use_packages definitions for Eigen 2018-02-17 16:56:35 -07:00
Sam Edwards
2399655920 CMake: Make sure Interrogate doesn't see package include directories 2018-02-17 16:56:35 -07:00
rdb
5c90f64182 text: fix is_whitespace() assertion when invalid chars are included 2018-02-17 20:50:18 +01:00
rdb
95eee0cab2 android: load prc files from assets. Move assets to /android_asset 2018-02-17 20:09:24 +01:00
rdb
8dea93bf38 android: fix touch/stylus taps triggering mouse1 for compatibility 2018-02-17 18:42:39 +01:00
rdb
6bd1976892 android: support writing png/jpg/webp via android.graphics.Bitmap 2018-02-17 18:40:08 +01:00
rdb
854d736882 pgraph: fix alignment error in 32-bit Windows with Eigen
Fixes #251
2018-02-17 18:30:58 +01:00
Sam Edwards
f75e245b1f CMake: Enhance PackageConfig's include directory processing and name separation 2018-02-16 17:38:51 -07:00
Sam Edwards
5c1ff5fdbc CMake: Migrate detection of libtar 2018-02-14 17:38:25 -07:00
Sam Edwards
f2e9e25230 CMake: Remove lingering references to Helix 2018-02-14 17:29:04 -07:00
Sam Edwards
68cb953479 CMake: Migrate JPEG/PNG/TIFF discovery to Package.cmake 2018-02-14 17:27:50 -07:00
Sam Edwards
ab7dbebf3f general: Remove lingering references to Helix
Support for Helix has been dropped long ago; it's very unlikely to return.
See also de4280ea209d567eedfa08084da0dea761ad5917.
2018-02-14 17:26:35 -07:00
Sam Edwards
0b68316b3f CMake: Migrate OpenSSL detection to Package.cmake 2018-02-14 16:46:23 -07:00
Sam Edwards
021728f4b3 CMake: Start the process of organizing packages into Package.cmake 2018-02-14 16:46:20 -07:00
Sam Edwards
b11e15cec5 CMake: HAVE_MESA isn't really a thing anymore 2018-02-14 14:38:00 -07:00