21828 Commits

Author SHA1 Message Date
deflected
8fd4584bd0 grutil: Add control over heightfield filtering in shaderTerrainMesh
Signed-off-by: deflected <deflected@users.noreply.github.com>
2018-02-23 13:37:07 +02:00
Sam Edwards
89be2c19af tests: Add tests for Datagram{,Iterator,InputFile,OutputFile}
This also includes a test for my previous commit which changes
DatagramInputFile::get_datagram().
2018-02-23 03:08:01 -07:00
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
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
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
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
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
rdb
c41b694eb3 makepanda: detect public system libraries when building on Android 2018-02-11 00:56:25 +01:00
rdb
b4ad0a69a0 makepanda: automatic dependency scanning for Java sources 2018-02-11 00:55:04 +01:00
rdb
730279531a makepanda: build on Intel Android machines 2018-02-10 12:13:05 +01:00
rdb
bdb74b1e30 makepanda: add code to build an Android package with --installer 2018-02-10 12:01:34 +01:00
Sam Edwards
e15cea4331 general: Remove more unnecessary +x UNIX modes 2018-02-07 11:29:48 -07:00
rdb
c15c05f642 android: enable resume key events 2018-02-06 22:44:53 +01:00
rdb
d269f7c6c3 android: allow stdout/stderr capture using extra field on intent
This allows launching the Panda apk from termux and getting command-line output back to termux.
2018-02-06 22:42:40 +01:00
rdb
ae0f82911b android: allow launching pview by opening models (using Intents)
Also add code to show notification toasts.
Also enable model cache by default (pointing to app cache dir)
2018-02-06 22:36:21 +01:00
rdb
10789f6936 android: fix issue loading some image files 2018-02-06 22:33:57 +01:00
rdb
c1fccd311b android: properly support multiple Java threads 2018-02-06 22:32:22 +01:00
rdb
2dba9357bb makepanda: update Android cross-compile for clang and NDK r16
Tested on Windows.
2018-02-06 19:24:50 +01:00
Sam Edwards
8a7b47d501 audio: Fix memory leak in OpenAL 2018-02-04 23:06:34 -07:00
Sam Edwards
fb6c92cf08 express: Move all vector_* types to dtoolutil 2018-02-04 17:12:03 -07:00
Sam Edwards
fbe373dfdc general: Fix includes 2018-02-04 17:11:55 -07:00
Sam Edwards
0d079e2b80 general: Remove execute modes from ordinary text files 2018-02-04 17:11:43 -07:00
deflected
50dafd087d bullet: Fixed calculating of Box dimensions
- Fixed wrong claculation of box dimensions, when
        creating BoxShape from solids

Signed-off-by: deflected <deflected@users.noreply.github.com>
2018-02-02 23:19:47 +01:00
deflected
ce79656141 bullet: Fixed crash when rendering bulletDebugNode
- Fixed crash when rendering bulletDebugNode without calls
        to doPhysics. This is caused by _debug_world pointing to
        invalid memory, while _debug_stale is true when bulletDebugNode
        is initialized.

Signed-off-by: deflected <deflected@users.noreply.github.com>
2018-02-02 23:19:39 +01:00
nosyliam
b562aba4e0 Support static linking with FMOD
Closes #241
2018-02-02 23:19:23 +01:00
rdb
18afcdbd0a android: handle right mouse button, more external keyboard keys 2018-01-29 20:09:58 +01:00
rdb
0fa8980be2 android: fix activity lifecycle issues (froze upon quit or resume)
It seems Android doesn't want an application to just quit on its own accord; after main() returns we need to kindly request Android to finish the activity and keep handling events until Android destroys the app.
2018-01-29 20:08:29 +01:00
rdb
e04cb17a30 makepanda: change Android build model
We no longer copy libs to a separate libs dir to entertain Ant (which is no longer the build system of choice on Android).  Also, rather than copying the Java sources to built/src, we now compile them and put the classes in built/classes.

Furthermore, executables are really compiled as executables now (rather than as libraries) to allow building and running Panda in termux.
2018-01-29 20:01:30 +01:00
rdb
7c1dd4050b android: change assets mount dir, point binary path to .apk
The binary path we get from /proc/self/exe isn't very useful; the path to the .apk is barely more useful but it still doesn't make a whole lot of sense.  It might make more sense to set it to the path of the native .so that is being loaded by NativeActivity.
2018-01-29 19:44:39 +01:00
rdb
e301e5fe5e android: fix various compilation errors 2018-01-29 19:36:51 +01:00
rdb
002b373361 makepanda: fix GetHost() on linux
[skip ci]
2018-01-28 14:44:26 +01:00
rdb
d35e6c5113 android: include android_native_app_glue in repository
These files are from the NDK, but don't seem to be included in termux.  Since they are two small files that change very rarely, it's easier to just include them in the Panda repo.

[skip ci]
2018-01-28 14:27:35 +01:00
rdb
60a572f88a android: some changes for building on Android:
- allow setting API target with --target=android-21
 - always link to libpython on Android, seems to be necessary
 - support aarch64 (arm64-v8 ABI) architecture
 - enable building on an Android machine (tested in termux)

[skip ci]
2018-01-28 14:24:51 +01:00
rdb
04352e152d ShaderGenerator: fix TextureStage mixup when stages are disabled
This fixes a regression that caused the wrong textures/stage settings to be applied when a texture stage was being optimized out (eg. when a normal map is present while lighting is disabled).
2018-01-26 15:39:30 +01:00