Commit Graph

119 Commits

Author SHA1 Message Date
rdb 193ae8a3a6 pgraph: take advantage of constant initialization for states maps
SimpleHashMap has a constexpr default constructor, so there is no static init ordering issue that requires us to allocate the states maps on the heap and then to leak them.
2019-01-07 18:40:30 +01:00
rdb 775e4cecff pgraph: fix freeze in garbage_collect(), esp. when rate-limit is on 2018-10-17 19:09:36 +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 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 3077316782 general: use proper deleted funcs instead of stubs with asserts
This gives better compile-time diagnostics and saves on code, while also better communicating intent.
2018-05-23 23:35:27 +02:00
rdb 6ecfcb1fd3 Store munged states more efficiently, without weak key maps 2017-10-17 23:21:38 +02:00
rdb 8078fa2b38 More efficiently store SimpleHashMap with empty values 2017-10-17 23:04:16 +02:00
rdb f79fbf25c3 ShaderGenerator: big overhaul, don't generate more shaders than needed 2017-07-10 21:55:27 +02:00
Younguk Kim e07e5d0203 Fix assert macros that cause a crash in non-debug 2017-07-05 19:49:46 +09:00
rdb 90f96fc1a9 Change SimpleHashMap implementation to improve performance of GC.
The new implementation stores elements contiguously and keeps a separate sparse array of indices, similar to the new PyPy and CPython implementations.  This vastly improves performance when iterating over the individual elements, such as when garbage collecting states, and decreases memory usage.
2017-06-12 19:58:02 +02:00
rdb 6b882ac767 Fix slow garbage collect after using a lot of states 2017-06-09 20:12:49 +02:00
rdb 81e414030e Fix RenderState cache leak - gc did not work properly
(Thanks to deflected for helping to track this down)
2017-05-13 23:30:09 +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
rdb 18874fa151 Replace PN_int/uint types with stdint.h types, since all compilers we support have them.
Plus, we already had code that relied on them being available anyway.
2016-05-11 00:27:58 +02:00
rdb 2bf886fc5b Add premultiplied alpha mode, for convenience 2016-03-02 17:55:34 +01:00
tobspr 0fcfb8e372 New file headers, new comment style 2016-02-17 17:47:48 +01:00
rdb bdf91e206d Remove references to Python.h and py_config.h from Panda headers, to prevent picking up a dependency on Python libraries in third-party modules 2015-11-28 16:33:44 +01:00
rdb 7f7f85794d Fix various compilation and linker issues across several platforms 2015-10-07 21:09:35 +02:00
rdb 0c4c8484ba Merge remote-tracking branch 'origin/release/1.9.x' 2015-08-20 21:28:25 +02:00
rdb 7fa0d3c60a Fix bug #1457688: libRocket elements show solid white in tinydisplay 2015-08-20 18:58:13 +02:00
rdb f33e450823 A lot of performance changes, particularly wrt dcasts and state management 2015-07-27 16:32:57 +02:00
rdb af15797a25 Many, many performance optimizations and enhancements 2015-01-07 19:30:01 +01:00
rdb 0473fa7ead Simplify oddly redundant StencilAttrib implementation.
Also add RenderState::compare_mask().
2014-12-03 22:44:07 +01:00
rdb 566feda34d Commit patch by cfsworks to move pgraph stuff to extensions 2014-04-04 09:23:58 +00:00
David Rose 2a3ad0d4e5 Add RenderState::get_auto_shader_state() 2011-11-07 00:08:04 +00:00
David Rose 369f93951f fix a memory leak in the garbage-collect-states case 2011-09-08 15:02:34 +00:00
David Rose 3ed8632a68 further bugfixes 2011-09-05 23:53:19 +00:00
David Rose 229cf67ae5 Finishing migration of RenderState and RenderAttrib to SimpleHashMap and garbage_collect() models, working towards threaded pipelining 2011-09-04 15:47:45 +00:00
David Rose 220ba658a0 new, experimental TransformState seems to work better for multithreading 2011-09-04 02:52:41 +00:00
David Rose c3d8f81581 progress on multithreaded Panda 2011-09-04 00:11:57 +00:00
David Rose ae77c767c2 fix comment 2010-08-21 00:22:13 +00:00
David Rose aefe3d35c2 merge dev_bam_2009 to trunk 2009-06-10 17:54:40 +00:00
rdb 4e067a74c1 Fix couple of circular dependencies, eliminate ShaderGeneratorBase 2009-06-02 09:57:33 +00:00
rdb 159026571b Added shadow mapping support to Panda 2009-06-02 09:24:03 +00:00
David Rose 8f01bbd3d9 compiler warnings 2009-04-18 12:38:09 +00:00
David Rose e41d03482f fix TransformState leak 2009-03-11 00:21:01 +00:00
rdb f1e660373d Why was _generated_shader not initialized? 2009-02-28 12:11:21 +00:00
David Rose 2db915af4d fix compose 2008-11-22 01:20:16 +00:00
David Rose 8a04a06b0b fix adjust_all_priorities 2008-11-21 20:40:10 +00:00
David Rose 26754b86ca merge dev_slots_2008: slot-based RenderState implementation 2008-11-19 01:21:44 +00:00
David Rose 075710bced create pgraphnodes directory; move some things there from pgraph 2008-11-06 00:06:39 +00:00
David Rose d4c2c9858d SIMPLE_THREADS_NO_MUTEX -> LightMutex 2008-10-08 23:23:40 +00:00
David Rose 15f44d52b1 don't need all that hashtable output 2008-08-08 19:31:37 +00:00
David Rose 4d59f04134 scissor MouseWatcherRegions too 2008-08-01 22:48:42 +00:00
David Rose fb9c56432a we are now using the modified BSD license 2008-05-28 18:37:20 +00:00
David Rose fc46272823 fix set_attrib() with override 2008-03-04 22:33:16 +00:00
David Rose 02b2d76274 more flatten bugs: fix color-scale support 2008-03-01 00:05:03 +00:00
David Rose a3999eff61 fix white nametag issue 2008-01-29 01:56:55 +00:00
Josh Yelon 1d44682463 Much progress implementing shader generator 2008-01-25 03:35:12 +00:00
David Rose e75c8695dd resolve dependency issue 2007-12-17 21:23:38 +00:00