Commit Graph

146 Commits

Author SHA1 Message Date
loblao 68b7986557 NodePath: Implement replace_material
Closes #472
2018-12-09 19:05:25 +01:00
rdb 89236ac136 pgraph: fixed-depth billboards, bam additions (6.43)
This makes it possible to use BillboardEffect to specify a fixed distance to the camera, in order to keep them at a fixed apparent size.

This also enables serialization to .bam of the reference NodePaths of BillboardEffect and CompassEffect.
2018-12-06 23:52:58 +01: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 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 941fda6ec3 pgraph: fix comparisons between WeakNodePath and NodePath
Previously it would only work correctly if the WeakNodePath appeared on the left side of the comparison operator.
2018-05-20 15:57:23 +02:00
rdb 854d736882 pgraph: fix alignment error in 32-bit Windows with Eigen
Fixes #251
2018-02-17 18:30:58 +01:00
rdb 69b3468b2c interrogate: more improvements to seq/map wrappers
Gets rid of properties defined as both MAKE_SEQ_PROPERTY/MAKE_MAP_PROPERTY, which are just a bad idea. Instead, adds a way for map properties to define a separate "keys" interface.

Fixes: #203
2017-11-27 17:29:50 +01:00
rdb 1b1d80cd27 More thoroughly fix issues with pickling Panda objects in Python 3
This also adds DatagramBuffer, a class for writing datagrams to memory and reading them from there again.
2017-11-08 00:02:35 +01:00
rdb 7d721a33a6 Restore setShaderInput overload taking 4 numbers, but deprecate it 2017-10-18 11:26:20 +02:00
rdb bf190f7306 interrogate: support MAKE_MAP_PROPERTY 2017-10-09 00:02:46 +02:00
rdb 0e2b14cf4c pgraph: custom binding for set_shader_input()
Should be faster and more reliable at PTA handling
We no longer need the interrogate perf hack for the first-arg InternalName

Fixes: #161
2017-10-08 17:50: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
rdb cfe810ace7 Add set_shader_inputs for efficiently setting multiple shader inputs 2017-02-06 13:16:27 +01:00
rdb 34068dc0c1 Implement support for SSBOs 2016-12-13 21:22:17 +01:00
rdb 47388b0dbc Separate out CPython calls from core libs; eliminate need for pystub 2016-07-20 14:30:41 +02:00
rdb ce29ae490d Interrogate improvements, more properties, MAKE_SEQ_PROPERTY 2016-05-11 00:16:53 +02:00
rdb 82ab126ea7 Add support for glLogicOp via LogicOpAttrib / NodePath::set_logic_op 2016-03-25 17:33:30 +01:00
tobspr 0fcfb8e372 New file headers, new comment style 2016-02-17 17:47:48 +01:00
rdb 41fad59ae8 bam 6.40: support writing NodePaths, allows instanced lights and clip planes 2016-01-11 15:04:06 +01:00
rdb 75019784f4 Changes to inlining so we can use FORCE_INLINING in gcc as well 2015-07-27 15:39:46 +02:00
rdb 214d799d82 Add optional "other" NodePath argument for get_tight_bounds() 2015-07-06 14:52:08 +02:00
rdb 11ed8a4d8d Use dynamic type lookup for interrogate to eliminate inter-module dependencies
It is now no longer necessary to link to core.pyd
Also includes a slight coercion optimization for trivial types
2015-06-06 19:36:40 +02:00
rdb 238cbad2a1 Merge branch 'master' into interrogate-overhaul 2015-02-27 12:48:33 +01:00
rdb db87bc7914 PointerToArray fixes, Windows build fixes, more move constructors 2015-02-27 12:45:11 +01:00
rdb 7a6aa7bfae Implement ParamNodePath; fix circular include issue in shaderInput.h 2015-02-25 01:25:19 +01:00
rdb b2f73d0877 Merge branch 'master' into interrogate-overhaul 2015-02-08 12:11:19 +01:00
rdb 028c09add5 Implicit cast string to InternalName in c++, also optimize for string literals 2015-02-07 16:43:25 +01:00
rdb 78f8f65ef9 Add M_filled_wireframe render mode 2015-02-06 12:15:25 +01:00
rdb 0ad0d4ec33 Further optimizations to the cull pipeline.
The only transform still stored in CullableObject is internal transform.

NB: I haven't tested my PipeOcclusionCullTraverser changes.  Please contact me if you encounter problems with it.
2015-01-22 16:22:16 +01:00
rdb 142bd6a021 Remove old MLightVector TexGen mode and FFP-based normal mapping 2015-01-22 12:26:22 +01:00
rdb 6db5d0dc11 Huge cppparser and interrogate overhaul, bringing:
* Better support for typedefs
* Same code should compile for both 32-bit and 64-bit
* C++11 typed enum support
* Synthesize __setitem__ when operator [] returns reference
* Rewrite coerce system to have better performance
* Change semantics of __getattr__ and __setattr__ to match
  Python's, add __getattribute__, __delattr__ and __delitem__
* Improve performance of slot functions a bit more
* Reduce memory overhead of type system
* Some support for wrapping arrays of numeric types
* C++11 character type support in cppparser
* Chars are handled as strings of length 1
* Template functions for CreatePyInstance that use runtime type map
* More functions from dtool as extension functions
* Code cleanup
2014-12-30 16:43:52 +01:00
rdb 95d85819b0 Separate out sampler state from texture, support sampler objects, support LOD min/max/bias 2014-12-12 15:58:45 +01:00
rdb 3fbdc43fbb Fix compile errors with clang 2014-12-06 22:38:40 +01:00
rdb cd79de19b2 Add more parameters for binding images to shaders. 2014-08-19 20:22:57 +00:00
rdb 03eddda4a2 Add more integer versions of set_shader_input 2014-07-04 17:34:49 +00:00
rdb 667b3a2729 Allow passing ints to set_shader_input 2014-07-04 12:16:35 +00:00
rdb 6e64ff951c Add support for passing int arrays and vectors to GLSL shaders. 2014-07-03 21:54:45 +00:00
rdb 5f2c0a6e04 Big commit aiding in separation of Python bindings:
* Most extension functions have been moved to C++.
 * In makepanda, Python bindings are compiled into panda3d/<module>.pyd.
2014-02-20 13:33:26 +00:00
rdb 8c83ab08f4 Add get_tag_keys / get_python_tag_keys (based on patch by Josh Enes) 2012-12-02 12:21:17 +00:00
David Rose 2c7d493513 NodePath::set_tex_projector(..., lens_index) 2012-02-14 02:40:51 +00:00
David Rose 39b32376bb move a few more PStatCollectors out of local statics 2011-11-19 00:11:43 +00:00
David Rose 501470169f stdfloat_double 2011-10-10 05:25:10 +00:00
David Rose 6064045aa3 fix an assertion failure at shutdown 2011-09-09 01:17:35 +00:00
David Rose 44375f019d explicit occlusion culling support from community member teedee, with additional enhancements by drwr 2011-03-18 01:56:09 +00:00
David Rose a8b7f6bc85 write_bam_file() should take a Filename 2011-01-18 19:10:16 +00:00
Mike Christel ad30e4c71f Overload improved (not optimal, but better than list of string arguments) to set_shader_auto to allow any of normal, glow, gloss, ramp, shadow to be turned on or off via bitmask 2010-05-03 16:41:16 +00:00
Mike Christel c308b57137 Overload added to set_shader_auto to allow any of normal, glow, gloss, ramp, shadow to be turned on or off 2010-04-16 14:06:26 +00:00
Mike Christel 6418e6f221 extended shader input system support for Cg (see Panda SE Project 2010-03-17 blog post for more details) 2010-04-07 11:16:29 +00:00
David Rose 4cf4811af6 more refinements to the whole shared-node pickle thing 2010-02-11 01:32:00 +00:00