Commit Graph

23752 Commits

Author SHA1 Message Date
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
rdb 0cb763a10a ShaderGenerator: always use generic attr on Linux
48808fe269 disabled this on Linux, but I believe this was an accidental change.
2018-07-26 22:58:15 +02:00
rdb 02b32a5814 glgsg: support vertices-float64 in core profile shaders
Requires OpenGL 4.1 or GL_ARB_vertex_attrib_64bit extension.
2018-07-26 22:58:15 +02:00
rdb 0f4168a304 text: use 64-bit coords in TextAssembler if vertices-float64 set 2018-07-26 22:58:07 +02:00
rdb d081b4d420 mathutil: override plane.normalize() to be meaningful for planes
Now it only divides by the length of the normal, rather than also adding in the square of the w component.
2018-07-26 22:08:37 +02:00
rdb c634c455fd framework: add zero-argument version of open_framework() 2018-07-26 22:08:37 +02:00
rdb ecfeae8a27 shader: support double-precision vertex columns in GLSL 2018-07-26 22:07:20 +02:00
rdb 7fe72c47f3 glgsg: update copy of glext.h 2018-07-23 09:02:12 +02:00
rdb 1a6d329fde gobj: support T_unsigned_int_24_8 in TexturePeeker 2018-07-23 08:32:58 +02:00
rdb 71e18eb960 tests: add test for setting near distance to infinitiy 2018-07-17 23:23:48 +02:00
rdb f45fa747d1 x11display: fix BadWindow if get_pointer called after win close 2018-07-17 23:01:44 +02:00
rdb bbb15631c6 mathutil: support infinite near/far in LFrustum
I don't know if anyone is using LFrustum, but just in case, it's good to support this corner case.
2018-07-17 23:00:57 +02:00
rdb cf240d95c1 gobj: support infinite near distance in PerspectiveLens
Useful when rendering with near/far planes flipped around.
2018-07-17 22:59:54 +02:00
rdb eafab53729 tests: fix depth buffer test failure 2018-07-17 22:59:38 +02:00
rdb 359ce3e9ef glgsg: fix error with glObjectLabel and SSBO 2018-07-17 22:59:23 +02:00
rdb b5194d9ff2 glgsg: pad SSBOs to 16 byte boundary (required by some drivers) 2018-07-17 22:59:15 +02:00
rdb 06539f5c66 glsl: support passing uint variables to shader 2018-07-17 22:32:34 +02:00
rdb 911a549386 collide: add tube-into-tube collision test 2018-07-17 22:30:06 +02:00
rdb 71b4b807f8 collide: add line-into-box test, improve segment/ray into box 2018-07-17 22:24:35 +02:00
rdb 684a58e7e9 parser-inc: add timespec 2018-07-17 22:21:44 +02:00
rdb 57578ee58f direct: add MetaInterval underscore aliases (fixes override bug)
These methods are supposed to override the underlying C methods, which do have underscore aliases, so it is important that the Python class defines these underscore aliases as well.
2018-07-17 22:20:35 +02:00
rdb 6cd59807dd Remove useless test_display.cxx file 2018-07-17 19:38:10 +02:00
rdb 799f0b4f78 glgsg: work around driver bug extracting buffer texture data
Some drivers would report the wrong internal format.  But it's silly that we query the internal format anyway, since buffer textures have a fixed sized internal format.
2018-07-17 17:04:50 +02:00
Mitchell Stokes e4cf73378c Merge remote-tracking branch 'origin/master' into deploy-ng 2018-07-15 14:38:05 -07:00
Mitchell Stokes c33ae8a95f Merge branch 'master' into deploy-ng 2018-07-15 12:42:51 -07:00
Mitchell Stokes 0fd1250142 deploy-ng: Fix execute permission bits for tarball installers created on Windows 2018-07-15 12:07:22 -07:00