22865 Commits

Author SHA1 Message Date
rdb
6640e5698d EventManager: various microoptimizations to Python event handling 2019-02-12 14:30:04 +01:00
Brian Lach
95f3e30d37 ShaderAttrib: add set_shader_inputs() for C++ users
Closes #521
2019-02-12 01:16:15 +01:00
rdb
80bb5c09fe Merge branch 'release/1.10.x' 2019-02-12 01:13:56 +01:00
rdb
e1b86287ef readme: update FreeBSD package list 2019-02-12 00:32:48 +01:00
rdb
18b7350400 egg: update prebuilt parser.cxx and parser.h 2019-02-12 00:31:13 +01:00
rdb
35d28cdd0d doc: update release notes for 1.10.1 2019-02-12 00:29:30 +01:00
rdb
4d0970c072 pgraph: StencilAttrib.make() takes default write_mask argument 2019-02-11 23:48:00 +01:00
rdb
5310945f4c py_panda: fix use of macro that was removed in Python 3.8 2019-02-11 23:36:30 +01:00
rdb
3024e6daeb direct: fix various syntax warnings in Python 3.8 2019-02-11 23:35:56 +01:00
rdb
d93fb702eb makepanda: fix various syntax warnings in Python 3.8 2019-02-11 18:58:22 +01:00
rdb
11b5f09819 general: replace remaining references to ConditionVarFull. 2019-02-11 16:23:16 +01:00
rdb
afed80e83a pipeline: use constant-initi static MutexImpl for global debug lock 2019-02-11 16:23:16 +01:00
rdb
3df3b27a4e prc: prefer global-scope static MutexImpl over local one
MutexImpl guarantees nowadays to be initialized at constant init time, so this is safer on Windows, where we can't rely on magic statics.
2019-02-11 16:23:16 +01:00
rdb
b466e77fe3 dtoolbase: make TypeRegistry lock statically initialized
This is possible now that all MutexImpl have a constexpr constructor.
2019-02-11 16:23:16 +01:00
rdb
fb5191e812 pipeline: unify ConditionVarFull and ConditionVar
See #550.  Now that we use the Vista API for condition variables, the only place where the distinction is still relevant is Windows XP, and it's just not worth it for that one corner case.
2019-02-11 16:23:10 +01:00
rdb
ab569916b1 Disable WinXP mutex emulation when _WIN32_WINNT >= 0x0600 2019-02-11 14:52:21 +01:00
rdb
f741c9476f display: fix lighting being disabled when only AmbientLight is on 2019-02-10 16:19:45 +01:00
tc
33d11dba27 ParticlePanel: fixed an issue that prevented saving with Python 3
Since in Python 3 `str == bytes` no longer holds true, I modified
the source to write a text file, which it actually is, instead of a
binary file.

Closes #553
Fixes #543
2019-02-08 15:46:52 +01:00
rdb
3875cc8259 device: add proper mapping for 8bitdo N30 Pro Controller on Linux 2019-02-07 22:28:04 +01:00
tc
96bb90b5e9 cocoa: guarantee 24bit depth when Config.prc has depth-bits set to 1
Checks if the value of Config.prc for `depth-bits` is `1` and sets it
manually to 24.
This prevents getting a 16 bit depth buffer on macos
Intended to address #501

Closes #551
2019-02-07 22:26:54 +01:00
rdb
89392f0e2d dtoolbase: new mutex and condition variable impl on Windows
This uses SRWLock on Vista and above, and uses a hand-rolled implementation on Windows XP that uses Events (and a spinlock, if this is a multi-core system).

Since SRWLocks aren't recursive, ReMutexWin32Impl has been added to implement recursive mutices, using old-fashioned critical sections.

MutexImpl now has a constexpr constructor on all implementations.
2019-02-07 00:20:59 +01:00
rdb
7e0952e367 parser-inc: add synchapi.h and winnt.h headers 2019-02-07 00:20:59 +01:00
rdb
3f1bd1744b tests: add threaded unit tests for Mutex and ConditionVar 2019-02-07 00:19:15 +01:00
rdb
c4f52bfdfe pipeline: don't require holding lock for ConditionVar.notify()
As far as I know, none of the implementations strictly require this, and this may cause the waiting thread to wake up only for it to immediately have to wait for the lock again.

This change brings our implementation closer to C++11 std::condition_variable semantics.
2019-02-06 23:00:12 +01:00
rdb
36dd8889e7 Merge branch 'release/1.10.x' 2019-02-06 22:52:19 +01:00
rdb
666568a513 prc: fix recursive use of non-recursive mutex 2019-02-06 22:10:39 +01:00
rdb
0ef9f9bef5 device: various button/axis mapping fixes in Windows raw impl
Now uses a table like on Linux with the various mappings.
2019-02-06 22:06:43 +01:00
rdb
f8d7941fe8 device: fix a bad axis mapping on Linux 2019-02-06 22:03:44 +01:00
rdb
1b4035f29a device: move HID API definitions to separate header file 2019-02-06 21:56:47 +01:00
rdb
aadc62a96c device: fix inability to detect devices with pipelining enabled
This is because the message window is being created in the main thread, but there is nothing processing messages in the main thread.
2019-02-06 21:51:06 +01:00
rdb
63d2992d5e egg: add ability to read <Tangent> with four components
This is not intended to be used just yet in 1.10, but already added in preparation for changes on master to support #546.  I'm just allowing Panda to parse the syntax ahead of time to reduce potential .egg incompatiblities.
2019-02-05 00:30:54 +01:00
rdb
2afd604c9d collide: implement capsule-into-invsphere and box-into-invsphere tests 2019-02-04 23:50:53 +01:00
rdb
e967368468 collide: add capsule-into-polygon test
Need to find a better solution for the interior point calculation when the capsule is hitting a polygon edge with the cylindrical part.  The current approach pushes the capsule back too much.
2019-02-04 23:45:19 +01:00
rdb
16d5c27a57 collide: remove unused legacy_to_3d method 2019-02-04 23:38:02 +01:00
rdb
22cac1cdf9 device: fix stack corruption crashes on 32-bit Windows 2019-01-31 18:23:29 +01:00
rdb
86c266fd88 Merge branch 'release/1.10.x' 2019-01-31 00:58:29 +01:00
rdb
3a6f7fcde1 dtoolbase: docstring clarification for record_python_type
[skip ci]
2019-01-31 00:11:21 +01:00
John Cote
2627c433d6 particles: Import SpriteAnim in Particles.py
Fixes #544
Closes #545
2019-01-31 00:06:34 +01:00
rdb
0ba1235d35 ShaderGenerator: print out generated shader in spam output mode 2019-01-31 00:05:23 +01:00
rdb
1d9334f578 parser-inc: add atomic_int, etc. typedefs 2019-01-30 23:59:34 +01:00
rdb
0e447b7429 ShaderGenerator: do shadow map calcs in fshader if out of varyings
If too many shadow-casting lights are active, too many TEXCOORD varyings will be used and a shader compilation error will be displayed.  Instead, Panda will now just do the calculation in the fragment shader if not enough varyings are available.  It's slower, but better than crashing.
2019-01-30 23:54:22 +01:00
rdb
dc8f01df8a ShaderGenerator: pack eye-space normal to save one varying
Only when normal mapping is enabled.
2019-01-30 23:51:50 +01:00
rdb
ffa0c74402 Merge branch 'release/1.10.x' 2019-01-26 20:18:02 +01:00
rdb
376cef51c4 interrogate: fix Python 3 crash with optional std::wstring args
This would cause PyMem_Free to be called on an uninitialized pointer if a default argument was not specified.

Fixes #542
2019-01-26 19:27:50 +01:00
rdb
403e56817a dtoolbase: fix x86 compilation error on Android 2019-01-26 19:22:44 +01:00
rdb
d8891674e3 Merge branch 'release/1.10.x' 2019-01-23 23:28:28 +01:00
rdb
0b087ecf92 installpanda: create intermediate directories with mode 0755 too
Fixes #541
2019-01-23 23:23:33 +01:00
rdb
3cc9e49469 installpanda: fix issues installing includes to existing dir 2019-01-23 23:07:15 +01:00
rdb
9d12a4c437 general: improvements to doxygen API reference:
* In C++ reference, only pick up classes defined in .h file
* Add a few excludes to C++ reference that aren't public API
* On class index pages, reduce number of columns
* Add @since for some methods/classes that are new in 1.10.0
* Fix/improve a few docstrings here and there
2019-01-23 22:24:02 +01:00
rdb
66655aae85 device: fix incorrect features when printing InputDevice 2019-01-21 15:32:22 +01:00