open_toontown_panda3d/panda/src/glstuff
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
..
glBufferContext_src.I Implement support for SSBOs 2016-12-13 21:22:17 +01:00
glBufferContext_src.cxx Implement support for SSBOs 2016-12-13 21:22:17 +01:00
glBufferContext_src.h Implement support for SSBOs 2016-12-13 21:22:17 +01:00
glCgShaderContext_src.I general: clean up use of override keyword 2017-07-03 12:56:23 +02:00
glCgShaderContext_src.cxx shader: support double-precision vertex columns in GLSL 2018-07-26 22:07:20 +02:00
glCgShaderContext_src.h general: remove macros for compatibility with non-C++11 compilers 2018-05-23 23:33:05 +02:00
glGeomContext_src.I New file headers, new comment style 2016-02-17 17:47:48 +01:00
glGeomContext_src.cxx general: Replace NULL (and 0 as pointer) with C++11 nullptr 2018-06-03 16:35:13 -06:00
glGeomContext_src.h New file headers, new comment style 2016-02-17 17:47:48 +01:00
glGeomMunger_src.I New file headers, new comment style 2016-02-17 17:47:48 +01:00
glGeomMunger_src.cxx Define stable ordering for WeakPointerTo for use as map/set key 2018-07-30 17:27:09 +02:00
glGeomMunger_src.h Change handling of unsupported render mode so that behaviour can be shared among renderers 2016-07-20 15:59:42 +02:00
glGraphicsBuffer_src.I New file headers, new comment style 2016-02-17 17:47:48 +01:00
glGraphicsBuffer_src.cxx glgsg: if 32-bit unorm depth is not available, fallback to float 2018-07-12 14:17:02 +02:00
glGraphicsBuffer_src.h general: Fully qualify header references into the std namespace 2018-06-07 10:35:12 +02:00
glGraphicsStateGuardian_src.I general: Fully qualify header references into the std namespace 2018-06-07 10:35:12 +02:00
glGraphicsStateGuardian_src.cxx glgsg: support vertices-float64 in core profile shaders 2018-07-26 22:58:15 +02:00
glGraphicsStateGuardian_src.h glgsg: support vertices-float64 in core profile shaders 2018-07-26 22:58:15 +02:00
glImmediateModeSender_src.I New file headers, new comment style 2016-02-17 17:47:48 +01:00
glImmediateModeSender_src.cxx general: Replace NULL (and 0 as pointer) with C++11 nullptr 2018-06-03 16:35:13 -06:00
glImmediateModeSender_src.h New file headers, new comment style 2016-02-17 17:47:48 +01:00
glIndexBufferContext_src.I New file headers, new comment style 2016-02-17 17:47:48 +01:00
glIndexBufferContext_src.cxx New file headers, new comment style 2016-02-17 17:47:48 +01:00
glIndexBufferContext_src.h New file headers, new comment style 2016-02-17 17:47:48 +01:00
glLatencyQueryContext_src.I New file headers, new comment style 2016-02-17 17:47:48 +01:00
glLatencyQueryContext_src.cxx New file headers, new comment style 2016-02-17 17:47:48 +01:00
glLatencyQueryContext_src.h New file headers, new comment style 2016-02-17 17:47:48 +01:00
glOcclusionQueryContext_src.I New file headers, new comment style 2016-02-17 17:47:48 +01:00
glOcclusionQueryContext_src.cxx New file headers, new comment style 2016-02-17 17:47:48 +01:00
glOcclusionQueryContext_src.h New file headers, new comment style 2016-02-17 17:47:48 +01:00
glSamplerContext_src.cxx Improve OpenGL ES support, add OpenGL ES 3 support 2016-04-04 17:00:27 +02:00
glSamplerContext_src.h Improve OpenGL ES support, add OpenGL ES 3 support 2016-04-04 17:00:27 +02:00
glShaderContext_src.I general: clean up use of override keyword 2017-07-03 12:56:23 +02:00
glShaderContext_src.cxx shader: support double-precision vertex columns in GLSL 2018-07-26 22:07:20 +02:00
glShaderContext_src.h general: fix many compilation warnings in GCC 8 2018-06-19 00:37:28 +02:00
glTextureContext_src.I Fix various emscripten compile issues 2016-04-28 21:15:46 +02:00
glTextureContext_src.cxx Add a way to get access to OpenGL texture index 2017-10-05 17:34:26 +02:00
glTextureContext_src.h general: remove macros for compatibility with non-C++11 compilers 2018-05-23 23:33:05 +02:00
glTimerQueryContext_src.I New file headers, new comment style 2016-02-17 17:47:48 +01:00
glTimerQueryContext_src.cxx express: make a thread safe weak pointer implementation (#321) 2018-05-15 13:40:21 +02:00
glTimerQueryContext_src.h New file headers, new comment style 2016-02-17 17:47:48 +01:00
glVertexBufferContext_src.I New file headers, new comment style 2016-02-17 17:47:48 +01:00
glVertexBufferContext_src.cxx New file headers, new comment style 2016-02-17 17:47:48 +01:00
glVertexBufferContext_src.h New file headers, new comment style 2016-02-17 17:47:48 +01:00
glmisc_src.cxx glgsg: support gl-depth-zero-to-one to get same NDC Z range as D3D 2018-07-12 14:13:32 +02:00
glmisc_src.h general: Break apart BUILDING_PANDAGL 2018-06-12 16:15:45 -06:00
glpure.cxx New file headers, new comment style 2016-02-17 17:47:48 +01:00
glstuff_src.cxx Implement support for SSBOs 2016-12-13 21:22:17 +01:00
glstuff_src.h Implement support for SSBOs 2016-12-13 21:22:17 +01:00
glstuff_undef_src.h New file headers, new comment style 2016-02-17 17:47:48 +01:00
panda_glext.h glgsg: update copy of glext.h 2018-07-23 09:02:12 +02:00