Sam Edwards
2ab77d9a27
Merge branch 'master' into cmake
2018-08-14 21:59:45 -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
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
deflected
eb0f753a3c
x11display: fix loading cursor from compressed/encrypted stream
2018-08-08 21:54:58 +02:00
rdb
433f734d43
mathutil: BoundingPlane improvements
2018-08-08 21:54:52 +02: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
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
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
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
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
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
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
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
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
rdb
61084a3f4e
pgraph: work around C++11 bug in something or other (see #355 )
2018-07-12 14:24:40 +02:00
rdb
10fe8659c6
gobj: work around a deadlock in GeomCacheManager::flush()
2018-07-12 14:22:27 +02:00
rdb
e41eeaae23
glgsg: if 32-bit unorm depth is not available, fallback to float
...
This prevents falling back to 24-bit depth if 32-bit depth is requested.
2018-07-12 14:17:02 +02:00
rdb
828233a8f2
glgsg: support gl-depth-zero-to-one to get same NDC Z range as D3D
2018-07-12 14:13:32 +02:00
rdb
16daf08e42
glgsg: fix some GCC warning messages
2018-07-11 13:33:50 +02:00
rdb
ff3d005230
x11display: fix Xlib thread safety problems
2018-07-11 13:33:21 +02:00
rdb
55146b9f82
dxgsg9: fix compilation error with WeakPointerTo comparison
2018-07-09 17:09:11 +02:00
rdb
fbce833aae
pgui: reduce unnecessary locking in PGItem
...
A deadlock has been observed if the lock is held while traversing the scene graph, so the need for locking in cull_callback is now reduced.
2018-07-09 16:13:01 +02:00