Commit Graph

21994 Commits

Author SHA1 Message Date
rdb c4b657b5b2 interrogate: support implicit typecast operators in some cases
For example, this will let us pass a ConfigVariableFilename to anything that accepts a Filename, just like in C++.

Does not work if the return value if the typecast operator requires management.
2018-08-19 16:06:16 +02:00
rdb 21f5e77467 dtoolbase: prefer GCC AtomicAdjust implementation over i386 asm one 2018-08-19 16:05:39 +02:00
rdb 5da8b63a66 cppparser: fix formatting of typecast operator 2018-08-19 16:04:56 +02:00
rdb b1d2111037 express: add Datagram add_blob and add_blob32, et al.
This is for writing Python 2/3 agnostic code for writing binary data to a datagram, and reading from it using DatagramIterator.
2018-08-19 16:01:39 +02:00
rdb 74442e41f1 express: slight Datagram constructor cleanup 2018-08-19 14:21:23 +02:00
rdb ba345d590f express: make Datagram.get_message() return bytes in Python 3
This is done using a Python extension function, which also happens to make the call more efficient as this avoids an extra copy.  The C++ version still returns std::string as there is still a lot of C++ code that relies on that.

Fixes #297
2018-08-19 13:40:58 +02:00
Sam Edwards 97d6d84ade dcparser: Add BUILDING_DIRECT_DCPARSER switch
Resolves GH #342.
2018-08-15 20:38:00 -06:00
Sam Edwards 06f7da5215 express: Fix misclassified EXPCL_PANDA_ macro 2018-08-14 21:58:11 -06:00
Sam Edwards 6105953b40 general: Add forgotten include 2018-08-14 17:23:56 -06:00
rdb 00b5c9d168 assimp: add various config variables, change default winding order 2018-08-12 22:37:39 +02:00
rdb f84b0840f9 makepanda: work around GCC/Eigen double matrix invert bug
Fixes #228
2018-08-12 22:15:40 +02:00
rdb 838d238f6e tests: add various test cases to test egg loading and transforms
Used to track down and reproduce the issue in #228.
2018-08-12 22:14:22 +02:00
rdb 72e593800f gobj: don't recalculate proj mat on set_near/far with existing value 2018-08-12 22:06:13 +02:00
rdb 54ec575472 egg: add properties to EggData / EggNode 2018-08-12 22:05:25 +02:00
rdb 3d383a3d9c sceneeditor: get it to run with Python 3 2018-08-10 23:53:33 +02:00
John Cote e99f8a7bcc sceneeditor: clean up scene editor code, removing deprecated calls
Closes #373
2018-08-10 23:50:36 +02:00
rdb be19411cf8 Add support for Maya 2018 2018-08-10 23:03:15 +02:00
rdb 4ff619b75f pystub: fix some definitions that should be variables, not funcs
This is needed to compile Panda3D with -flto.
2018-08-09 14:56:40 +02:00
deflected eb0f753a3c x11display: fix loading cursor from compressed/encrypted stream 2018-08-08 21:54:58 +02:00
rdb aa66d8313e tests: add BoundingPlane unit tests 2018-08-08 21:54:58 +02:00
rdb 433f734d43 mathutil: BoundingPlane improvements 2018-08-08 21:54:52 +02:00
rdb ee318a73f3 interval: prevent hypothetical stack overflow 2018-08-08 20:16:11 +02:00
bfrisby2000 7c375ac531
showbase: Add blendType argument for Fade/Iris/Letterbox
This allows the 'blendType' argument to be passed through the three transitions' Lerp Intervals.
2018-08-07 20:23:16 -04:00
rdb 2556d006f7 glgsg: a few version check tweaks 2018-08-05 13:09:25 +02:00
rdb 8348f16665 glgsg: fix incorrect behavior if mat has either ambient or diffuse
This might have only been an issue in some drivers (not sure, spec is a bit vague here).
Apparently we need to call glMaterial *after* the color material setting has been disabled for it to stick.

Fixes #369
2018-08-05 12:54:32 +02:00
rdb 60468b0bec ShaderGenerator: additional case where vtx_color isn't needed
See sample code in a comment in #370
2018-08-05 12:49:03 +02:00
rdb b836a60adb cull: remove unused variable declarations 2018-08-03 22:59:04 +02:00
rdb 929808b867 ShaderGenerator: fix regression with flat colors 2018-08-03 22:58:29 +02:00
rdb 8806dedb51 ShaderGenerator: avoid writing vtx_color input if unneeded 2018-08-03 22:24:48 +02:00
rdb 9ba2d7242e gobj: get rid of enforce-attrib-lock, just DTRT instead
This setting causes asserts when modifying certain material flags after they are assigned to a node, in case a shader has been generated that uses the materials, which cannot efficiently detect whether the material has changed.  However, we already sort of have a (inefficient, but effective) solution for this in TextureStage (see #178) that we could just apply here as well: changing the material attributes after such a shader has been generated could call GraphicsStateGuardianBase::mark_rehash_generated_shaders().

In the future, we should replace the material model with one that does not require shader regeneration for such seemingly trivial property changes.

Fixes #370
2018-08-03 21:55:06 +02:00
rdb 1e9a64fe63 tests: add Geom.decompose tests 2018-08-03 21:10:26 +02:00
rdb 7e290b221b Remove a few unused and obsolete C++ test files 2018-08-03 21:09:36 +02:00
rdb 668a093c26 gobj: try to fix some deadlocks modifying geometry while rendering
The correct locking order should be: the Geom's GeomVertexArrayData first, *then* the GeomPrimitive.
2018-08-03 20:45:29 +02:00
rdb c959d274be makewheel: add __version__ and docstring to panda3d/__init__.py 2018-08-03 20:22:09 +02:00
rdb 2a2b48134b parser-inc: fix bad socklen_t definition in ws2tcpip.h 2018-08-02 21:24:37 +02:00
rdb 0fbfeb712f ParticlePanel: comment out unimplemented OrientedParticleFactory 2018-08-02 20:31:12 +02:00
rdb f813d2fb60 stdpy: fix broken threading.Event 2018-08-02 20:29:48 +02:00
rdb 2b7ef93e2f travis: set skip_join to false
The IRC channel had +n mode set to it due to spam problems, which disallows external send.
2018-08-02 20:28:07 +02:00
rdb 4b8ff0573e tests: add TexturePool unit tests 2018-07-31 14:57:55 +02:00
rdb 0cd69c8748 gobj: fix TexturePool ambiguity when loading tex with other settings
Previously, if you called load_texture a second time with different parameters (such as an alpha filename), you would still get the old texture.
2018-07-31 14:56:04 +02:00
rdb 30721ba33b cppparser: fix issues when parsing templated constructor definition 2018-07-31 14:05:08 +02:00
rdb fe1bfef5c0 express: fix a few compile errors with certain WeakPointerTo uses
Fixes #367
2018-07-31 14:02:58 +02:00
rdb 4e42c4c941 nativenet: fix interrogate error recognizing sockaddr types 2018-07-31 11:08:14 +02:00
rdb 079a7495f2 Fix macOS build by providing missing std::copysign 2018-07-31 10:47:16 +02:00
Mitchell Stokes 247575df62 CoordinateSystem: Document enumerators 2018-07-30 21:26:50 -07:00
rdb 91b01e5621 collide: add tube-into-box collision test 2018-07-30 22:37:02 +02:00
rdb 243ee75e47 express: refactor WeakPointerTo::lock() a little bit 2018-07-30 22:24:55 +02:00
rdb ad3ab3ad21 Define stable ordering for WeakPointerTo for use as map/set key
Currently, the WeakPointerTo comparison operators compare the raw pointers, but this is not useful as it may cause a false equality if one weak pointer in the comparison is expired and points to memory that has since been reused.

Instead, we can define a comparison based on the control block pointer, which exists since the new weak pointer implementation in 0bb81a43c9.  This is implemented in the owner_before method, matching C++11 std::weak_ptr semantics.

I would now recommend deprecating most comparison operators of WeakPointerTo or redefining them to make more sense, ie. comparing equal if they (once) referred to the same object and not if they simply point to the same memory address.  This has not yet been done, though code that uses the comparison operators has been fixed in this commit.

Overloads of std::owner_less have been provided for creating a map or set with Weak(Const)PointerTo keys.
2018-07-30 17:27:09 +02:00
rdb 2d7e80a89e express: add full range of WeakPointerTo ctors and assign ops
Matches PointerTo constructors/assignment operators, supporting conversion between related pointer types.

Fixes #367
2018-07-30 17:26:02 +02:00
rdb f12bc29d6d tests: do not attempt to run GLSL tests without buffer tex support 2018-07-26 22:58:15 +02:00