Commit Graph

283 Commits

Author SHA1 Message Date
rdb e080d33e31 interrogate: temp hack to make encrypt_string return bytes
Fixes #684
2019-07-10 09:54:57 +02:00
rdb 0ac36185a9 Merge branch 'release/1.10.x' 2019-05-02 21:34:25 +02:00
rdb 204cbe4464 interrogate: support unicode characters in Python 3 for 'char' arg
Fixes #626
2019-05-01 17:05:12 +02:00
rdb daa57733cb Merge branch 'release/1.10.x' 2019-04-14 23:11:03 +02:00
rdb 3ca3dfd13a interrogate: fix in-place or (|=) operators (see #588) 2019-04-14 17:10:52 +02:00
rdb ba256a8b07 interrogate: fix regression in 2c91fdda1b 2019-03-04 22:51:20 +01:00
rdb cbb3c182a5 Merge branch 'release/1.10.x' 2019-03-04 16:57:52 +01:00
rdb 8e4add0326 interrogate: fix refcount trouble assigning PyObject* properties
In particular, this fixes accessing PythonTask.__dict__
2019-03-04 16:46:28 +01:00
rdb fa6c066b2f interrogate: enable true division in Python 2 as well
This allows using "from __future__ import division" and get the expected result for divisions in Python 2.

Fixes #529
2019-03-03 10:29:39 +01:00
rdb 2c91fdda1b interrogate: support in-place ops on properties (eg. light.color *= 2) 2019-02-19 13:46:38 +01:00
rdb c37a33baef interrogate: don't export bindings for global operators
linmath exports a global __mul__, which isn't really useful.
2019-02-19 13:45:37 +01:00
rdb 376cef51c4 interrogate: fix Python 3 crash with optional std::wstring args
This would cause PyMem_Free to be called on an uninitialized pointer if a default argument was not specified.

Fixes #542
2019-01-26 19:27:50 +01:00
Sam Edwards 0c890f059d interrogate: Export Python entry points with EXPORT_CLASS
Closes #505
2019-01-03 12:39:22 +01:00
rdb a9d6d3be46 interrogate: refactor default argument handling 2018-12-26 22:47:14 +01:00
rdb e32388c2f8 interrogate: fix crash reading static property 2018-11-24 22:44:09 +01:00
rdb 598664ab80 interrogate: disambiguate case where static method shadows a property
While it becomes possible to do this now, it should not become standard practice, and we should deprecate cases where we already do it by renaming either the static method or the property.

Fixes #444
2018-11-12 16:31:54 +01:00
Sam Edwards a9dfd8352e general: Distinguish local/system includes
This changes includes so that local includes are consistently
#include "localFile.h"
while system and third-party includes are consistently
#include <systemFile.h>

This commit mostly converts the former to the latter; the two
exceptions are in android_main.cxx and fmodAudioSound.h, where
the reverse was necessary.
2018-11-10 18:00:10 -07:00
rdb 5ba09ec5a0 interrogate: fix compile error when building with LINK_ALL_STATIC
Fixes #442
2018-11-09 11:38:41 +01:00
rdb 49b72fb198 Move Python support code from libp3interrogatedb to generated module
This prevents libp3interrogatedb from having a dependency on the Python library.

See #387
2018-11-06 19:24:37 +01:00
rdb e6f870ece6 Remove Python type tables from interrogatedb 2018-11-05 22:14:25 +01:00
rdb cb9e65720a interrogate: do not use MOVE in generated code, but use std::move 2018-09-09 13:48:50 +02:00
Mitchell Stokes f663d215d5 Remove some unused variables 2018-08-19 16:55:07 +02:00
rdb c4b657b5b2 interrogate: support implicit typecast operators in some cases
For example, this will let us pass a ConfigVariableFilename to anything that accepts a Filename, just like in C++.

Does not work if the return value if the typecast operator requires management.
2018-08-19 16:06:16 +02:00
rdb 68e7f681f4 interrogate: support enum class to limited extent in Python 2
Only the basics are supported; the __members__ or iter interface is not supported at this time.

See also #351 for discussion on pulling in enum34 module.
2018-07-02 12:16:35 +02:00
rdb 9441c28f61 interrogate: do not wrap methods with rvalue arguments
This could in theory be supported, but this is not really intuitive from a Python user's point of view.
2018-06-30 21:38:45 +02:00
rdb b2c04a8c7a interrogate: support scoped enum args and return values 2018-06-30 21:38:40 +02:00
rdb c03a75d755 interrogate: use range for in various places for code cleanliness 2018-06-30 17:18:14 +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
rdb b88bd99704 Various compiler warning fixes 2018-06-12 12:38:07 +02:00
rdb 4fe7fe4c88 interrogate: fix int8_t / signed char range checking on Android 2018-06-12 11:08:02 +02:00
rdb 1c476203fc interrogate: remove Dtool_AddToDictionary (let me know if anyone uses this)
If any code is relying on this, please let me know and I will add it back.  It appears to be redundant, though, since one can access DtoolClassDict directly.

Symbol kept around temporarily in order to keep ABI compatibility for a short while as people may not update their interrogate and Panda in sync, but it can soon be removed.
2018-06-11 13:43:30 +02:00
rdb 3cc88cd304 interrogate: clean up py_panda.h a bit more
Inching towards reducing code in py_panda and eventually having no Python-specific code in interrogatedb anymore.
2018-06-11 13:39:45 +02:00
rdb be282627a8 express: make PointerTo directly initializable from nullptr 2018-06-04 11:21:18 +02:00
Sam Edwards a9ffb9630b dtool: Generate code using nullptr over NULL/0 2018-06-03 16:36:07 -06: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 db5dd98d33 general: further warning fixes, use -Wno-unused-variable if NDEBUG
Disabling unused variable checking is needed in NDEBUG builds because of the heavy use of temporary variables in asserts.
2018-05-30 22:51:04 +02:00
rdb 6b726fa697 general: fix various compiler warnings and issues exposed thereby 2018-05-30 11:09:35 +02:00
rdb 3b4d12cb99 interrogate: also fall back to compare_to in Python 2
This is to create the same behaviour in Python 2 and 3.
2018-05-21 11:55:46 +02:00
rdb 7125a3e587 interrogate: allow passing None for args that have NULL as default value 2018-04-05 20:49:13 +02:00
rdb 2450f31ef5 interrogate: remove deprecated and unneeded downcastTo*() functions
They have not been needed for a very long time, and they create an awkward reverse dependency of base classes on derived classes.
2018-02-27 15:06:12 +01:00
rdb 193e4b5f59 interrogate: clean py_panda.h; use macros to access Dtool_PyInstDef 2017-12-12 23:03:38 +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 404842e70b interrogate: fix warning message caused by erroneously wrapped remap
Fixes: #191
2017-11-11 20:36:58 +01:00
rdb b8bf8bd641 interrogate: fix crash when calling functions returning TypedWritable 2017-11-08 00:04:00 +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 483a491ed7 interrogate: simplify coercion code
This remove support for coercing non-ReferenceCounted types that are neither default-constructible nor move-assignable, but it turns out none of the classes we really need it for matches that.
It further cuts down on the amount of code that is being generated to support coercion in cases where it makes absolutely no sense.
2017-11-06 19:53:38 +01:00
rdb 96d237377b interrogate: add various sequence/mapping methods to seq/map property 2017-11-05 18:01:39 +01:00
rdb 0c0f9adab9 Support coroutines and async/await in the task manager and loader 2017-10-31 18:56:41 +01:00
rdb 51d948a7fa Support compilation for Python 3.7 2017-10-13 12:40:47 +02:00
rdb 464cd5fc8b Replace __builtin_expect macros with LIKELY/UNLIKELY 2017-10-09 00:22:28 +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 7ff8b62fb8 interrogate: various fixes:
* handle static methods with explicit self
 * fix len() and __setitem__ of mapping types
 * fix inheritance of __getattr__ and __setattr__
 * fix overload resolution error with nullptr_t arguments
 * bool overloads now come after float/double overloads
 * record whether class is final in interrogatedb
 * add Dtool_EmptyTuple
 * optimization for final classes: no need for downcast
2017-09-19 18:46:21 +02:00
rdb d1c34c3360 interrogate: support static properties 2017-08-07 22:04:56 +02:00
rdb a387fb9f35 interrogate: nullptr handling, faster kwargs handling in some cases 2017-05-14 22:19:25 +02:00
rdb e1c916cdc3 interrogate: handle implicit destructors correctly 2017-04-02 14:44:51 +02:00
Sam Edwards ea1ba281b5 interrogate: Add missing cast in generated calls to PyObject_INIT_VAR 2017-03-08 01:54:21 -07:00
rdb cfe810ace7 Add set_shader_inputs for efficiently setting multiple shader inputs 2017-02-06 13:16:27 +01:00
rdb 4ed199cece Fix various compile warnings and a few code consistency issues 2017-01-09 20:36:53 +01:00
rdb 32377cb618 interrogate: fix to allow pointers to forcetyped classes 2016-12-07 23:04:15 +01:00
rdb 29411f5e14 Merge remote-tracking branch 'origin/release/1.9.x' 2016-10-31 22:32:39 +01:00
rdb 5832ab8099 Fix errors when trying to raise vectors to a power 2016-10-31 22:10:47 +01:00
rdb 47388b0dbc Separate out CPython calls from core libs; eliminate need for pystub 2016-07-20 14:30:41 +02:00
rdb 8381118a97 Assorted tweaks and compile warning fixes 2016-07-14 12:54:39 +02:00
rdb 0821bec2d0 Backport 2f0bc01 to 1.9: Fix bug causing random crash during module initialization 2016-06-22 15:04:00 +02:00
rdb 4283a63a7d Merge branch 'release/1.9.x' 2016-06-11 01:29:14 +02:00
rdb ba919b0948 Fix crash running TaskTester 2016-06-11 01:11:03 +02:00
rdb 7d6b7f40f5 Merge branch 'release/1.9.x' 2016-06-09 21:52:51 +02:00
rdb b303962e96 Disable cycle detection in tasks for now, it is way too unstable 2016-06-09 16:48:31 +02:00
rdb 8d05ef3022 Assorted fixes 2016-06-03 22:23:42 +02:00
rdb 5543716660 Interrogate wraps vector<unsigned char> as Python 3 bytes object 2016-06-03 01:47:54 +02:00
rdb ce29ae490d Interrogate improvements, more properties, MAKE_SEQ_PROPERTY 2016-05-11 00:16:53 +02:00
rdb fb78fe6e2a Interrogate enum class support (maps to Python 3.4 enums), sanify wrapper code 2016-05-07 00:45:26 +02:00
rdb 5feecd2243 Fix iterator support in interrogate 2016-04-28 11:08:23 +02:00
rdb 2f0bc01b68 Fix bug causing random crash during module initialization 2016-04-18 14:34:50 +02:00
rdb 15b0ba45f9 Fix broken pickling in Python 3 build 2016-03-31 16:49:27 +02:00
tobspr 0fcfb8e372 New file headers, new comment style 2016-02-17 17:47:48 +01:00
rdb ef72a0a410 Merge branch 'release/1.9.x' 2016-02-11 19:09:25 +01:00
rdb bb684b2a07 Fix a few issues with obscure CPython-based deployments 2016-02-09 12:33:57 +01:00
rdb 090e912ce6 Cleanup of comments and whitespace 2016-02-01 22:30:43 +01:00
rdb 8a205ac100 MAKE_PROPERTY should ignore setter overloads that take the wrong number of arguments 2016-01-25 17:02:25 +01:00
rdb bccddaf4e8 TextNode properties, fix setters that return error bool 2015-12-29 18:46:37 +01:00
rdb db6f0342cc Add properties with has/clear (interrogatedb v3.1) 2015-12-24 14:25:45 +01:00
rdb 6480e82e3b First pass adding properties to many Panda classes 2015-12-10 16:23:06 +01:00
rdb 50d2e8324e Merge branch 'release/1.9.x'
Conflicts:
	.travis.yml
	direct/src/directtools/DirectLights.py
	panda/src/nativenet/buffered_datagramconnection.h
2015-12-06 22:32:12 +01:00
rdb 287c44ce53 Various fixes for Python 3 versions before Python 3.3 2015-12-06 22:05:44 +01:00
rdb 1b857d6bda A few interrogate improvements 2015-11-28 17:54:01 +01:00
rdb 0a9f9887f9 Merge branch 'release/1.9.x'
Conflicts:
	direct/src/p3d/Packager.py
	direct/src/p3d/ppackage.py
	makepanda/makepandacore.py
2015-11-21 03:17:33 +01:00
rdb 4c61db6374 Consider non-const overload before considering const overload in Python bindings 2015-11-20 20:24:58 +01:00
rdb d3885b665e Fix static MAKE_SEQs (eg WebcamVideo.get_options(), MicrophoneAudio.get_options()) 2015-11-20 02:05:44 +01:00
rdb ac1c036cac interrogatedb 3.0 to restructure make_seq, improve make_seq handling and performance 2015-11-09 18:03:30 +01:00
rdb da17cce447 Fix error and warnings in 32-bit Windows build 2015-11-01 16:57:52 +01:00
rdb 0ae2df7e02 Merge branch 'release/1.9.x' 2015-11-01 15:54:58 +01:00
rdb 63a9b5dfec Re-expose MouseWatcherGroup; clearer error message for make_seq when getter is not exposed 2015-11-01 15:45:52 +01:00
rdb 7738294657 Fix a few more type size issues 2015-10-07 19:10:52 +02:00
rdb 18ad6d1543 Replace many int params with size_t params where appropriate, and work towards fixing type conversion warnings 2015-10-07 18:58:26 +02:00
rdb 036adff924 Merge branch 'release/1.9.x' 2015-09-30 14:07:21 +02:00
rdb fcd3bfd15c Fix interrogate issues with long, streampos, streamoff, streamsize and ptrdiff_t 2015-09-28 13:08:38 +02:00
rdb d3487eba6b Set visibility attributes on all exported bindings 2015-09-07 23:31:15 +02:00
rdb 3cd15c3d48 Merge branch 'release/1.9.x' 2015-08-31 15:59:06 +02:00