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
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
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
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
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
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
96a48a6848
glgsg: fix issue with extract_texture_data and buffer textures
...
It would always extract the last-created buffer texture, not the texture in question.
2018-07-04 20:56:07 +02:00
rdb
94cbdc563b
general: fix a few more compiler warnings
2018-06-30 17:19:23 +02:00
rdb
886e1c2f16
general: fix many compilation warnings in GCC 8
2018-06-19 00:37:28 +02:00
rdb
d48695cb2e
glgsg: fix occasional WeakPointerTo dereference
2018-06-14 22:51:35 +02:00
rdb
f804b10d45
Fix more compiler warnings
2018-06-14 22:49:45 +02:00
Sam Edwards
b2bfb31114
general: Remove `using std::*` from headers
...
Also remove most `using namespace std;` statements. The only one that remains is in py_panda.h.
Closes #350
Closes #335
2018-06-14 16:04:49 +02:00
Sam Edwards
a971bc1dfc
general: Break apart BUILDING_PANDAGL
2018-06-12 16:15:45 -06:00
rdb
b88bd99704
Various compiler warning fixes
2018-06-12 12:38:07 +02:00
Sam Edwards
7790f8429d
general: Fully qualify header references into the std namespace
...
Closes #341
2018-06-07 10:35:12 +02:00
Sam Edwards
e2b4353800
general: Replace NULL (and 0 as pointer) with C++11 nullptr
...
Exceptions to this replacement are:
- .c files
- Headers included by a .c file
- stb_image.h
- dr_flac.h
- Strings
- Comments
2018-06-03 16:35:13 -06:00
rdb
e0245d2777
First step towards eliminating `using namespace std;` ( #335 )
2018-06-03 20:32:23 +02:00
rdb
21d8c29645
More warning fixes
2018-06-03 06:45:35 -04:00
Sam Edwards
159b43e563
general: Address a few more compiler warnings
2018-06-01 02:54:13 -06:00
rdb
6b726fa697
general: fix various compiler warnings and issues exposed thereby
2018-05-30 11:09:35 +02:00
rdb
9fad3dba60
general: remove macros for compatibility with non-C++11 compilers
...
Now that we require MSVC 2015, we no longer need all this nonsense, so we can write cleaner code.
2018-05-23 23:33:05 +02:00
rdb
0bb81a43c9
express: make a thread safe weak pointer implementation ( #321 )
...
To access a WeakPointerTo in a thread-safe way, use something like this:
if (auto ptr = weak_ptr.lock()) {
..use ptr as regular PointerTo
}
The new implementation no longer needs a reference to be stored to all weak pointers on the WeakReferenceList; a mere count of weak pointers is sufficient. Therefore, callbacks theoretically no longer require a WeakPointerTo to be constructed.
The WeakPointerTo class is not actually atomic; it could be made so, but I don't believe it's worth it at this time.
2018-05-15 13:40:21 +02:00
Sam Edwards
52e7c952b3
putil: Rename config_util to config_putil
2018-05-14 02:36:42 -06:00
rdb
3b4d4b0804
glgsg: fix broken upload of downscaled texture without mipmaps
...
Fixes #306
2018-04-30 19:13:54 -04:00
rdb
94476fd1f0
glgsg: fix invalid operation error with multisample FBO
...
Panda is forgetting to reset the current FBO when resolving multisamples.
2018-04-04 21:46:01 +02:00
rdb
9638eb47eb
Add support for geometry with adjacency information
...
Example code: https://gist.github.com/rdb/7cebb8941b962c59d5a092048efb3855
2018-03-01 21:20:19 +01:00
rdb
428c5cbbf3
gles2gsg: fix compilation error with OpenGL ES 2
2018-01-05 14:34:15 +01:00
rdb
a96b171095
glgsg: only consider texture/texgen in munger if !gl_parallel_arrays
...
This could possibly be used to workaround issue #218
2017-12-31 09:51:25 +01:00
rdb
7ee9467f8d
shadows: fix shadow buffer creation deadlock in multithreaded pipeline
...
Fixes #162
2017-12-30 17:47:15 +01:00
rdb
ef7f856c46
cocoa: support windowless offscreen rendering on macOS
...
Fixes : #183
2017-12-20 14:27:08 +01:00
rdb
f82a940878
glgsg: fix shader version in macOS 3.2+ context
2017-12-20 14:16:05 +01:00
rdb
e9a50c8898
texture: fix get_clear_data() return type, make it work with sRGB
2017-12-19 19:27:36 +01:00
rdb
e4e24eee56
glgsg: use T_float when downloading 24-bit depth textures
...
This is to match behavior with previous Panda3D versions. See #212
2017-12-19 18:44:44 +01:00
rdb
29f50be15e
Fix bug: copy-to-ram depth texture binding gets format set to RGB
...
This was a regression introduced by be8f4de337
Fixes : #212
2017-12-16 21:03:08 +01:00
rdb
410049fd4b
Improvements for ShaderGenerator-based programs:
...
* Disable state munger, which isn't needed
* Reflect updates to TextureStage properties (Fixes #178 )
* Also respect combine mode and rgb scale changes
* Allow rehashing and clearing generated shader cache
State munger is now disabled whenever any shader is applied. Panda assumes that any custom shader will apply color scale by itself.
2017-10-18 11:16:29 +02:00
rdb
85a9cdd052
Add a way to get access to OpenGL texture index
2017-10-05 17:34:26 +02:00
rdb
e3d8123940
glsl: fix broken shadowMatrix as member of named light input
...
Fixes : #157
2017-08-07 22:58:02 +02:00
rdb
e45af355cc
glgsg: fix multisample FBO regression (on Intel Windows driver)
2017-07-09 15:32:13 +02:00
rdb
fa1c480508
general: clean up use of override keyword
2017-07-03 12:56:23 +02:00
rdb
48c811e112
cull: remove GeomMunger stored on CullableObject
2017-07-03 11:47:59 +02:00
rdb
7755a2e1c7
shadows: provide dummy shadow maps for nonexistent/noncasting lights
2017-05-15 14:50:50 +02:00
rdb
e67ebd80cd
glgsg: deal with false negatives with feature checks on Intel
2017-04-14 19:40:02 +02:00
rdb
fa1b656961
glgsg: fix get_host() of GL FBO. Fixes LP 1672560 shadow bug
2017-04-09 22:14:20 +02:00
rdb
2980bbc955
android: fix error when uploading BGRA image
2017-04-03 01:41:28 +02:00
rdb
6f8b379bda
Big patch full of performance improvements
...
This particularly benefits applications with a lot of nodes.
2017-04-03 01:41:23 +02:00