22851 Commits

Author SHA1 Message Date
rdb
d6b7abedfe prc: fix some race conditions querying bool and searchpath vars
This is not perfect, and we need to more thoroughly address thread safety in the PRC system, but it will nonetheless address a lot of the race condition issues when querying these variables from two threads at the same time.
2018-09-23 13:44:38 +02:00
rdb
aacafe7be3 dtoolutil: give DSearchPath a defaulted move constructor 2018-09-23 13:03:47 +02:00
Sam Edwards
e917c54433 Merge branch 'master' into cmake 2018-09-22 15:55:59 -06:00
Sam Edwards
cfb32fad84 CMake: Detect OpenGL (and SpeedTree) the proper way 2018-09-22 15:55:03 -06:00
Sam Edwards
bd187643f3 CMake: Look for packages by CONFIG first
This requires a macro to override find_package,
as the default behavior in CMake is to fall back
from MODULE onto CONFIG.

Note that Bullet is given a specific override
not to look for a CONFIG, since Bullet tends to
use weird paths in its CONFIG script.
2018-09-21 19:22:59 -06:00
Sam Edwards
b64e850539 egg(2pg): Fix missing EXPCL_PANDA_EGG(2PG) 2018-09-21 18:26:13 -06:00
Younguk Kim
ba9ea8ea27 chan: add missing export macro 2018-09-21 19:49:21 -04:00
Sam Edwards
968ca123d4 CMake: Use packages by imported target where available
This is preferable because imported targets generally include
all of the relevant information specific to the particular
installation of each package, and without needing to hunt down
a bunch of variables to do it.

To do this, package_option() (which is starting to grow in scope
a little beyond just providing the package option, come to think
of it) is given a new IMPORTED_AS option, which tells the package
configuration system to look for one or more imported targets and
link against them instead.
2018-09-21 16:24:48 -06:00
Sam Edwards
1520d712d4 CMake: Remove target_use_packages
Instead, let's use a PKG::PKGNAME interface library, which simplifies
the linking and also allows us to use imported libraries from
find_package in the future.
2018-09-21 10:17:05 -06:00
Sam Edwards
cf26888672 CMake: Stop using include_directories()
Setting this directly on the target is cleaner,
and in most cases, the INTERFACE_INCLUDE_DIRECTORIES
mechanism takes care of it for us.
2018-09-18 18:17:43 -06:00
rdb
0af1b9c988 makewheel: update manylinux1 platform check for latest image
[skip ci]
2018-09-17 16:39:09 +02:00
rdb
822f89fadb dgui: accept arg in setText, setImage, setGeom, also add clearers
This enables the "setters" to behave in a way that people expect setters to behave.  Since `setText(None)` now does not behave expectedly, a `clearText()` has also been added to remove the text.

Closes #385
2018-09-13 21:14:04 +02:00
rdb
8b3cc74cad interrogate: write out OS-generic filenames in #include directives
Fixes #386
2018-09-13 21:14:04 +02:00
rdb
3417b9df09 egg: work around compiler bug in Visual Studio 2017
Fixes #379
2018-09-13 21:14:04 +02:00
rdb
ecb2b6f546 movies: forbid automatic coercion from string to MovieAudio
This was causing issues in the unit test when calling audiomgr.get_sound() with string.
2018-09-13 21:14:05 +02:00
rdb
47496068d3 Show materials with only base color applied properly 2018-09-09 20:56:37 +02:00
rdb
b183e99692 gobj: fix bug printing Material base color 2018-09-09 20:23:48 +02:00
jspam
a333353af6 Make Loader.loadSound() accept a MovieAudio instance as soundPath
This functionality seems to have inadvertently been removed by
refactoring commit 23bf9ea5.

Closes #383
2018-09-09 20:22:51 +02:00
rdb
cb9e65720a interrogate: do not use MOVE in generated code, but use std::move 2018-09-09 13:48:50 +02:00
Sam Edwards
193cf71233 CMake: Pass Python extension files to Interrogate with relative paths
This makes sure absolute paths don't show up in #include,
since Interrogate doesn't (currently) use the proper representation
for this. (See #386)
2018-09-07 00:34:02 -06:00
Sam Edwards
9f55b9e77e CMake: Don't Interrogate with deprecated -longlong on Windows 2018-09-07 00:33:52 -06:00
Sam Edwards
e501d20927 CMake: Don't compile Interrogate runtime code into interrogatedb
This should obviate the need for pystub as well.

Note that it's currently a little bit hacky; the source will
have to be moved to make the CMake dependencies work better.
2018-09-06 23:57:53 -06:00
Sam Edwards
27ac068908 CMake: Clean up p3express's strange dependencies on dtool 2018-09-05 22:22:00 -06:00
Sam Edwards
0c889db928 CMake: Don't conflict with find_package internal variables 2018-09-05 19:19:36 -06:00
rdb
1a94e65b17 tests: fix mutex test on win32 where mutexes are always reentrant 2018-09-04 23:01:41 +02:00
rdb
11ecd3af87 putil: make ButtonHandle::none() constexpr 2018-09-04 12:58:48 +02:00
rdb
809f9b04f6 Fix problems with spinlock mutex/cvar implementation
This reimplements the spinlock on top of std::atomic_flag, which is guaranteed to be lockless.  It also inserts the PAUSE (REP NOP) instruction which is strongly recommended to be placed in busy-wait loops by Intel.

This also includes a recursive spinlock implementation.

The spinlock implementation is disabled by default, but can be enabled by adding the --override MUTEX_SPINLOCK=1 flag to makepanda.
2018-09-04 12:58:48 +02:00
rdb
171ba35f26 tests: add some simple smoke tests for Mutex and ReMutex 2018-09-04 12:58:48 +02:00
rdb
cf4f8b35b6 pgui: fix deadlock in PGScrollFrame/PGSliderBar 2018-09-04 12:58:37 +02:00
rdb
670047b4b0 dtoolbase: enable use of std::atomic_flag, also on macOS 2018-09-04 12:02:13 +02:00
rdb
217cecb77f pgui: remove some unnecessary reentrant locking in PGItem 2018-09-04 12:02:13 +02:00
Sam Edwards
1970751c8a CMake: Do something sensible with static Python modules
These *do* make sense and there are Panda3D users that use
this kind of configuration, so we should try to be accommodating.
2018-09-03 21:04:40 -06:00
Sam Edwards
77018c5383 CMake: Name Python targets more distinctively
Python targets are now prefixed with "panda3d." in
e.g. "panda3d.core"
2018-09-03 21:01:54 -06:00
Sam Edwards
601a82dafc travis: Hackfix for BUILD_METALIBS=OFF tests 2018-09-03 16:45:43 -06:00
Sam Edwards
e13a4d6539 pstatclient: Never pass nullptr to memcpy
Even though the only time this happened was when the size was 0,
it's still undefined to pass memcpy a nullptr.
2018-09-03 16:10:40 -06:00
Sam Edwards
23f46d8a84 CMake: Build p3bullet 2018-09-02 16:14:01 -06:00
Sam Edwards
e48b78bc50 CMake: Handle datagram_ext.h 2018-09-02 16:07:41 -06:00
Sam Edwards
208ecd6708 Merge branch 'master' into cmake 2018-09-02 16:06:41 -06:00
Sam Edwards
5f72e9c763 bullet: Fix misplaced INLINE getter 2018-09-02 16:04:33 -06:00
Sam Edwards
8c09477e37 bullet: Add missing includes and declarations for non-composite build 2018-09-02 16:04:25 -06:00
rdb
b168fa6a85 tests: fix erroneous test_texture_clear_unsigned_byte test 2018-09-02 21:04:40 +02:00
rdb
927016711f travis: use verbose flag to pytest 2018-09-02 20:59:40 +02:00
rdb
17bf50f1e8 audio: get_sound and uncache_sound should take Filename, not string 2018-09-02 20:55:58 +02:00
rdb
845ec7a990 cull: don't munge_points_to_quads if shader handles point size 2018-09-02 20:55:18 +02:00
rdb
b1f32e3f84 shader: reserve SL_SPIR_V ShaderLanguage value (as on vulkan branch) 2018-09-02 12:00:30 +02:00
rdb
eb62d7f223 tests: add unit tests for clearing and then peeking texture 2018-09-02 12:00:10 +02:00
rdb
9dec2aafb5 Fix static init ordering crashes in static build of pview
Fixes #381
2018-09-02 10:59:46 +02:00
rdb
3495537bf9 gobj: support clearing half-float textures
Fixes #374
2018-09-02 10:58:02 +02:00
rdb
c670cd45d9 gobj: handle infinity and NaN when peeking half float values 2018-09-02 10:56:20 +02:00
rdb
c4fe1ed883 gobj: slight refactor of Texture::do_get_clear_data() 2018-09-02 10:54:07 +02:00