Sam Edwards
c4126942f6
Merge branch 'master' into cmake
2018-06-10 02:29:21 -06:00
Sam Edwards
bc596797a3
general: Resolve some warnings unique to Windows
2018-06-10 02:25:10 -06:00
rdb
fa6d8b4b39
cppparser: fix class with array member not seen as copy-constructible
2018-06-09 10:29:34 +02:00
rdb
acac93a1d1
parse_file: show various additional type traits
2018-06-09 10:29:19 +02:00
rdb
7086a6a2db
parser-inc: add missing ios_base::iostate
2018-06-09 10:21:28 +02:00
rdb
a76747cba5
parser-inc: C++ headers: cassert, cerrno, fstream, new, cstdlib, csetjmp
2018-06-09 10:18:28 +02:00
rdb
ba2de46beb
Merge branch 'master' into input-overhaul
2018-06-08 15:23:47 +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
4754ba524c
dtoolbase: Avoid Windows's min/max macros
2018-06-07 10:35:00 +02:00
Sam Edwards
e72fab9520
dtoolutil: Add missing declaration for init_libdtoolutil()
2018-06-07 01:47:38 -06:00
Sam Edwards
ce0d79d186
CMake: Remove unused config macros and configure-time tests
2018-06-06 13:59:06 -06:00
Sam Edwards
592a2e2d68
Merge branch 'master' into cmake
2018-06-06 13:18:12 -06:00
rdb
4e7edf8a53
parser-inc: add missing include to <string> header
2018-06-06 12:22:31 +02:00
rdb
c166daf0f3
interrogate: fix detection of special std types
2018-06-06 12:22:23 +02:00
rdb
3a698e5a81
dtoolutil: use std:: qualification when exposing std types
2018-06-06 11:48:52 +02:00
rdb
036d2c2548
parser-inc: properly namespace iostream definitions
2018-06-06 11:27:46 +02:00
rdb
e27cb2dec3
parser-inc: provide various more STL headers and definitions
...
This cuts down on various warnings generated by interrogate.
2018-06-04 20:44:14 +02:00
rdb
5582e174b6
cppparser: fix issue with typedefs to forward declared templates
...
I don't know if this is the right solution, but it does fix an issue accessing std::ios::openmode caused by the ios typedef being defined before ios_base is fully specified.
2018-06-04 17:30:02 +02:00
rdb
be282627a8
express: make PointerTo directly initializable from nullptr
2018-06-04 11:21:18 +02:00
Sam Edwards
9fefa1d2e6
interrogate: Fix missing namespace qualification
2018-06-03 17:40:33 -06:00
Sam Edwards
5e82671084
general: Do away with TYPENAME macro
2018-06-03 16:36:34 -06: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
Sam Edwards
d422d74abb
general: Clean up asserts which were abusing NULL
2018-06-03 16:26:44 -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
190c553c57
dtool_config.h: remove some macros for ancient C++ compilers
2018-05-30 23:15:24 +02: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
Sam Edwards
1c6ae84cdc
dtoolutil: Remove HAVE_OPEN_MASK
...
Rationale:
1. Per standard, fstream::open takes 2 arguments.
If platforms add a third, they're out of spec.
2. The only platform I could find that takes a file
mask specifically as the third argument is IRIX,
which Panda hasn't targeted in forever.
3. The mask being requested isn't even particularly
interesting - falling back to a platform default
is best.
4. When USE_PANDAFILESTREAM is defined, pfstream
is implemented as PandaFileStream, which doesn't
have a three-argument open() and breaks immediately.
5. makepanda doesn't ever define HAVE_OPEN_MASK
6. It's been broken for so long that, if it were
important to anybody, it would have been fixed by now.
2018-05-30 12:04:06 -06:00
Sam Edwards
00e259d4dd
dtoolbase: Fixup NODEFAULT macro
...
1. Test for Clang before _MSC_VER (Clang defines this on Windows)
2. Use it in pdtoa.cxx
2018-05-30 11:50:09 -06:00
rdb
6b726fa697
general: fix various compiler warnings and issues exposed thereby
2018-05-30 11:09:35 +02:00
Psychotropos
3029780f88
dtoolutil: Don't assume RTLD_DI_ORIGIN and RTLD_SELF are present, fall back to using RTLD_DI_LINKMAP if necessary
...
Closes #334
2018-05-30 11:04:12 +02:00
Psychotropos
314cee133a
dtoolbase: The bug in question is glibc-specific, treat it as such.
2018-05-30 09:07:16 +02:00
Donny Lawrence
a270b0f292
Merge branch 'cmake' of https://github.com/panda3d/panda3d into cmake
2018-05-29 22:55:21 -05:00
Donny Lawrence
5619c3ed90
Make sure HAVE_OPENAL_FRAMEWORK is set correctly
2018-05-29 21:58:43 -05:00
Donny Lawrence
a8954d7f67
Don't build GLX support if on macOS
2018-05-29 21:49:00 -05:00
Sam Edwards
827f322d0e
CMake: Update for upstream change
2018-05-27 14:07:26 -06:00
Sam Edwards
d0ebc59d32
Merge branch 'master' into cmake
2018-05-27 14:07:05 -06:00
Sam Edwards
a504a910b0
CMake: Rename `check` function in checkPandaVersion.h
...
This mirrors 239f66c on master.
2018-05-27 14:06:58 -06:00
Sam Edwards
a251c6dd8f
general: Change HAVE_LOCKF to PHAVE_LOCKF
...
HAVE_LOCKF is already defined by pyconfig.h in
(at least) Python 3.6 - changing the macro name
here avoids warnings
2018-05-27 14:06:14 -06:00
Sam Edwards
0ce9dc98b1
general: Move inclusion of checkPandaVersion.h to dtoolbase
...
This includes it everywhere, meaning developers no longer must
remember to include it in each metalib init file.
2018-05-26 18:39:24 -06:00
Sam Edwards
399f4a33a1
CMake: Check Git commit SHA1
...
This is for PandaSystem::get_git_commit()
2018-05-25 13:33:47 -06:00
Sam Edwards
2d5d1400be
CMake: Remove references to WxWidgets/FLTK
...
The plugin once used these; it's since been deprecated,
so we don't be needing GUI toolkits anymore.
2018-05-24 18:33:15 -06:00
Sam Edwards
85b8d96919
CMake: Add reminder for when we upgrade to C++17
2018-05-24 14:47:12 -06:00
rdb
5e0ce969fe
Work around clang 3.1 compile error with static constexpr
...
There is a bug in clang versions before 3.2 (including the one shipped with Xcode) that makes it give a "conflicting types" compile error when there is a static constexpr function defined outside the class. The way to work around this is either to remove one of the "static" or "constexpr" keywords, or to simply put the definition inline.
See: https://stackoverflow.com/a/17494592/2135754
I would try and upgrade Xcode to version 5 to see if the problem is fixed, but the buildbot still runs OS X Lion (10.7) and the last version of Xcode that works on Lion is 4.6.3, so it seems easier to just apply these workarounds for now.
2018-05-24 14:34:03 +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
f45ddcab2f
general: switch to C++11 Lockable semantics for mutexes
...
This renames acquire/release to lock/unlock in order to be compatible with std::lock_guard and std::unique_lock (which will eventually replace the *MutexHolder classes). It will also allow us to typedef MutexImpl to std::mutex later on.
2018-05-23 20:37:56 +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
Donny Lawrence
1b3c6fb444
Fix issue with extra flags
2018-05-19 10:30:26 -05:00
Donny Lawrence
8b51b0faeb
Merge branch 'cmake' of https://github.com/panda3d/panda3d into cmake
2018-05-17 16:59:04 -05:00
Donny Lawrence
beec6578c8
Fix CMake build issues on macOS.
2018-05-17 15:41:31 -05:00
Sam Edwards
c62f3d0d23
CMake: Don't set a default Python version.
...
A blank string to FindPythonInterp finds the version
of Python that the system "python" interpreter invokes,
so this means the default is now the system default.
2018-05-16 18:14:07 -06:00
Sam Edwards
d96765b957
CMake: Enhance checkPandaVersion.h
...
This removes the requirement that it only be included
in a single C++ file per library, by forcing the compiler
to emit the function that references the version symbol
as a weak symbol itself. Now, the linker will not only
tolerate redundant inclusions, it will also coalesce them
together.
2018-05-16 17:38:13 -06:00
Sam Edwards
b08ab6324e
CMake: Move panda version logic to dtoolbase
2018-05-16 14:36:31 -06:00
Sam Edwards
9f46d3dc48
CMake: Remove unused LINK_IN_PHYSX
2018-05-15 18:35:22 -06: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
6efb07de93
Merge branch 'master' into cmake
2018-05-14 19:09:14 -06:00
Sam Edwards
aeeabdbd3b
CMake: Move interrogatedb interrogation to p3interrogatedb
2018-05-14 19:07:27 -06:00
Sam Edwards
8e230495a1
CMake: Consolidate "module or static" library logic
2018-05-14 19:07:27 -06:00
Sam Edwards
d2d5e3014c
CMake: Generate, don't use, pydtool.cxx
2018-05-14 19:07:27 -06:00
rdb
6175e79c57
cppparser: fix infinite recursion stack overflow with enum classes
2018-05-06 22:21:24 +02:00
rdb
666591ff48
cppparser: fix compile warnings on MSVC
2018-05-06 22:19:33 +02:00
Mitchell Stokes
bf1b486e5a
Merge branch 'master' into deploy-ng
2018-05-06 11:30:01 -07:00
rdb
8a98bf42a3
general: enable use of tie and tuple on macOS (from TR1, for now)
2018-05-05 23:09:39 +02:00
Sam Edwards
95785407a3
CMake: General whitespace fixes
...
- Remove trailing whitespace from ends of lines
- Convert tabs to (two) spaces
2018-04-20 02:30:04 -06:00
Sam Edwards
56a6e6a80a
Merge remote-tracking branch 'origin/master' into cmake
2018-04-20 01:57:46 -06:00
Sam Edwards
570afa6973
CMake: Fix include path when building prc into metalib
2018-04-19 20:06:09 -06:00
Sam Edwards
218d0e8ade
CMake: Build dtool metalibs as metalibs
2018-04-19 00:07:08 -06:00
Sam Edwards
4cec331722
CMake: Add support for building metalibs as metalibs
2018-04-18 14:42:56 -06:00
Sam Edwards
655e661035
CMake: Minor typo fix
2018-04-18 14:38:59 -06:00
rdb
742c143a01
deploy-ng: support logging via log_filename (and log_append) setting
2018-04-08 17:57:48 +02:00
rdb
f5932bf070
deploy-ng: fix MAIN_DIR when running from outside the main directory
2018-04-08 17:26:49 +02:00
rdb
b0cece7faf
Merge branch 'master' into deploy-ng
2018-04-08 15:44:32 +02:00
rdb
d13464104c
Fix compilation issue with --nothing on MSVC
...
I have no idea why this error happens, but it does not seem worth the effort to investigate further, so I'm just reverting the previous change to this file.
2018-04-06 20:50:31 +02:00
Sam Edwards
cfd603bb8d
CMake: Build Python binary modules as MODULE, never SHARED
2018-04-05 16:11:59 -06:00
rdb
7125a3e587
interrogate: allow passing None for args that have NULL as default value
2018-04-05 20:49:13 +02:00
rdb
552a649ef3
interrogate: add back NULL definition, fixes some keyword arguments
...
I am not sure why the definition of NULL was removed; it might have been by mistake, but in any case it broke code like this:
img = PNMImage(w, h, color_space=CS_srgb)
since it would not understand the default value (NULL) for the argument preceding color_space.
2018-04-04 21:50:02 +02:00
Sam Edwards
aed544bf5f
CMake: Have CMake itself track versions
2018-04-02 15:47:53 -06:00
rdb
e9ae7dcc40
Use vector_uchar instead of string for binary network/file data
...
This distinction allows us to better support Python 3, since it will raise exceptions when trying to put arbitrary binary data in a str object.
This also adds some convenience functions for efficiently initializing a Datagram or PTA_uchar from a vector_uchar.
2018-04-02 23:17:14 +02:00
Sam Edwards
449195a33d
CMake: Define appropriate BUILDING_ symbols
2018-03-31 04:24:06 -06:00
Sam Edwards
dd42371610
CMake: Update for upstream changes
2018-03-31 04:24:03 -06:00
Sam Edwards
25b13ad199
Merge branch 'master' into cmake
2018-03-31 04:23:49 -06:00
rdb
84915073e1
Fix compilation warning on MSVC 2015
2018-03-30 20:15:13 +02:00
Sam Edwards
9dd37e9dbc
general: Add guards to ensure proper BUILDING_ macros defined
...
This is designed to sanity-check the buildsystem, ensuring that the
expected BUILDING_ macros are defined at the expected time. It
also helps catch cases where the wrong BUILDING_/EXPCL_ macros
are used.
2018-03-25 13:17:52 -06:00
Sam Edwards
bd2a9d709a
dtoolbase: Introduce BUILDING_ defines for each component
...
This mirrors the prior commit.
2018-03-25 13:17:52 -06:00
Sam Edwards
9739923593
dconfig: Change export macros to EXP*_DTOOL_DCONFIG
...
This is for consistency with `panda`, which follows this format.
2018-03-25 13:17:52 -06:00
Sam Edwards
775fcb5b0b
prc: Change export macros to EXP*_DTOOL_PRC
...
This is for consistency with `panda`, which follows this format.
2018-03-25 13:17:52 -06:00
Sam Edwards
ad5b45811d
dtoolutil: Change export macros to EXP*_DTOOL_DTOOLUTIL
...
This is for consistency with `panda`, which follows this format.
2018-03-25 13:17:52 -06:00
Sam Edwards
9852ada792
dtoolbase: Change export macros to EXP*_DTOOL_DTOOLBASE
...
This is for consistency with `panda`, which follows this format.
2018-03-25 13:17:52 -06:00
Sam Edwards
cfd70ebead
general: Remove '#pragma interface'/'#pragma implementation'
...
The GCC documentation states that, as of GCC 2.7.2, these aren't
necessary for proper program behavior. The documentation further
discourages their use because they don't suppress unnecessary code
duplication.
The Panda codebase these days uses "extern template class" instead,
which tells the compiler not to perform implicit template expansion
because an explicit template expansion is available for linking
elsewhere in the program. This is a more compiler-neutral way of
achieving the same thing as '#pragma interface', making
'#pragma interface' not only redundant, it could also mask problems
in the "extern template class" machinery.
2018-03-20 14:36:19 -04:00
Sam Edwards
a4c1b44371
dtoolbase: Remove EXPORT_TEMPLATES define
...
As of f69354d9fa , this is just always
expected on all platforms. If it's not defined,
TemplateClass<X>::_type_handle won't link correctly with some compilers
(e.g. Clang) and the lack of 'extern template class' will result in
duplicated code in any case. In short, turning it off causes problems.
makepanda also always turns this on, so it doesn't represent any
optional feature or autodetected platform-specific behavior anyway.
2018-03-20 14:36:19 -04:00
rdb
aebdefcf60
Merge branch 'master' into deploy-ng
2018-03-11 23:01:10 +01:00
rdb
766b38fb7a
dtoolbase: make TypeHandle a constexpr class
2018-03-08 12:58:16 +01:00
Sam Edwards
ebe9e75d84
dtoolbase: Delete unused preprocessor macro
...
[skip ci]
2018-03-04 20:28:51 -07:00
Sam Edwards
013af2ac4b
dtool: Delete 'newheader'
...
This is a task better handled by editors/scripts.
[skip ci]
2018-03-04 20:28:09 -07:00
rdb
f535a641e4
Merge branch 'master' into deploy-ng
2018-02-27 20:53:28 +01:00
rdb
8b6616814d
interrogate_module: warn about circular dependencies between classes
...
This will help us catch cases wherein we inadvertently create a circular dependency between component libraries. Right now it only checks inheritance and typedefs, but this can be expanded in the future.
Also, sorts the module initialization by dependency topology. This isn't very important right now, but having this guarantee might help when refactoring module initialization in the future.
2018-02-27 20:23:36 +01:00
rdb
bdb575e766
interrogatedb: add interrogate_type_is_global (+regenerate pydtool)
2018-02-27 19:44:14 +01:00
rdb
162b86c6d9
interrogatedb: fix library name setting for typedefs
...
Typedefs are evidently always considered "fully defined", so we need to add another condition to the database merging code to prefer the type that is marked "global" when merging two types.
2018-02-27 19:33:18 +01:00
rdb
fa231664bd
interrogate: don't mark base types as global
2018-02-27 18:47:51 +01: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
Sam Edwards
705fd445f3
dtool: Fix an inconsistent EXPCL/EXPTP
2018-02-26 00:03:09 -07:00
Sam Edwards
c3106411f5
dtool: Remove 'attach'
...
See #244 for discussion. It's really old, hasn't been used in almost
a decade, and doesn't support the current Git workflow either.
2018-02-25 18:27:10 -07:00
Sam Edwards
9e841800ee
CMake: Migrate detection for the physics packages
2018-02-21 02:38:54 -07:00
Sam Edwards
196d780820
CMake: Remove commented-out TODOs regarding unsupported rendering backends
2018-02-20 23:38:39 -07:00
Sam Edwards
17d56279f5
CMake: Migrate FreeType package detection
2018-02-20 19:28:32 -07:00
Sam Edwards
590523ac8c
CMake: Rename FindSquish to FindLibSquish
...
CMake already has a "FindSquish" for finding the GUI testing product.
This minimizes the chances of the wrong module being run on accident.
2018-02-20 18:58:52 -07:00
Sam Edwards
2717c24ffc
CMake: Migrate detection of the audio libraries
2018-02-20 18:19:45 -07:00
Sam Edwards
769fd30119
CMake: Remove more HAVE_MESA references
2018-02-20 17:52:33 -07:00
Sam Edwards
3210302caf
CMake: Migrate FFmpeg package detection
2018-02-20 17:52:33 -07:00
Sam Edwards
72d668e05a
CMake: Migrate zlib package detection
2018-02-20 17:19:21 -07:00
Sam Edwards
0ed64c72ce
CMake: Migrate over VRPN detection
2018-02-20 17:02:17 -07:00
Sam Edwards
e882088421
CMake: Remove INSTALL_PYTHON_SOURCE option
...
It's unused and easy to run "make" in between changes anyway
2018-02-20 13:55:28 -07:00
Sam Edwards
75366484b0
CMake: Migrate over Nvidia Cg package detection
2018-02-19 00:05:49 -07:00
Sam Edwards
ecfd924f0d
CMake: Remove references to unsupported versions of DirectX.
2018-02-18 23:34:02 -07:00
Sam Edwards
a9717cf3ab
CMake: Migrate detection of libsquish
2018-02-18 21:41:33 -07:00
Sam Edwards
71836f09e3
CMake: Remove references to genPyCode
2018-02-18 20:42:59 -07:00
Sam Edwards
283db1fb7a
CMake: Implement detection for FFTW3
2018-02-17 23:35:43 -07:00
Sam Edwards
84e7539f99
Merge branch 'master' into cmake
2018-02-17 23:35:19 -07:00
Sam Edwards
68b1ecfd32
parser-inc: Add stub for FFTW3 header
2018-02-17 23:31:08 -07:00
Sam Edwards
5c4ef25bb7
CMake: Use proper target_use_packages definitions for Eigen
2018-02-17 16:56:35 -07:00
Sam Edwards
5c1ff5fdbc
CMake: Migrate detection of libtar
2018-02-14 17:38:25 -07:00
Sam Edwards
f2e9e25230
CMake: Remove lingering references to Helix
2018-02-14 17:29:04 -07:00
Sam Edwards
68cb953479
CMake: Migrate JPEG/PNG/TIFF discovery to Package.cmake
2018-02-14 17:27:50 -07:00
Sam Edwards
ab7dbebf3f
general: Remove lingering references to Helix
...
Support for Helix has been dropped long ago; it's very unlikely to return.
See also de4280ea20 .
2018-02-14 17:26:35 -07:00
Sam Edwards
0b68316b3f
CMake: Migrate OpenSSL detection to Package.cmake
2018-02-14 16:46:23 -07:00
Sam Edwards
021728f4b3
CMake: Start the process of organizing packages into Package.cmake
2018-02-14 16:46:20 -07:00
Sam Edwards
b11e15cec5
CMake: HAVE_MESA isn't really a thing anymore
2018-02-14 14:38:00 -07:00
Sam Edwards
897e3b9e5b
CMake: Nuke PYTHON_NATIVE
...
The old Python bindings aren't a thing anymore. This is assumed ON.
2018-02-10 21:15:41 -07:00
Sam Edwards
0b940b0588
CMake: Take care of some of the TODO tests in LocalSetup
2018-02-10 12:34:28 -07:00
rdb
730279531a
makepanda: build on Intel Android machines
2018-02-10 12:13:05 +01:00
Sam Edwards
b9f717e790
CMake: Remove redundant pipeline/thread support message
2018-02-09 22:41:30 -07:00
Sam Edwards
7b4698cd7a
CMake: Quiet all find_package commands
2018-02-09 22:30:54 -07:00
Sam Edwards
b68b6caeb0
CMake: Support targeting Python 3
2018-02-09 22:06:14 -07:00
Sam Edwards
556c03c0c1
CMake: Take care of panda3d.interrogatedb module
2018-02-07 18:59:41 -07:00
rdb
d269f7c6c3
android: allow stdout/stderr capture using extra field on intent
...
This allows launching the Panda apk from termux and getting command-line output back to termux.
2018-02-06 22:42:40 +01:00
Sam Edwards
8d1b20b974
CMake: Adjust for upstream changes
2018-02-04 17:13:32 -07:00
Sam Edwards
eda119dac4
Merge branch 'master' into cmake
...
# Conflicts:
# .travis.yml
2018-02-04 17:12:51 -07:00
Sam Edwards
fb6c92cf08
express: Move all vector_* types to dtoolutil
2018-02-04 17:12:03 -07:00
Sam Edwards
fbe373dfdc
general: Fix includes
2018-02-04 17:11:55 -07:00
Sam Edwards
0d079e2b80
general: Remove execute modes from ordinary text files
2018-02-04 17:11:43 -07:00
rdb
09bd662919
Merge branch 'master' of github.com:panda3d/panda3d into input-overhaul
2018-02-04 11:37:09 +01:00
rdb
7c1dd4050b
android: change assets mount dir, point binary path to .apk
...
The binary path we get from /proc/self/exe isn't very useful; the path to the .apk is barely more useful but it still doesn't make a whole lot of sense. It might make more sense to set it to the path of the native .so that is being loaded by NativeActivity.
2018-01-29 19:44:39 +01:00
rdb
e301e5fe5e
android: fix various compilation errors
2018-01-29 19:36:51 +01:00
rdb
94385e865f
Merge remote-tracking branch 'origin/master' into input-overhaul
2018-01-28 14:31:45 +01:00
rdb
60a572f88a
android: some changes for building on Android:
...
- allow setting API target with --target=android-21
- always link to libpython on Android, seems to be necessary
- support aarch64 (arm64-v8 ABI) architecture
- enable building on an Android machine (tested in termux)
[skip ci]
2018-01-28 14:24:51 +01:00
rdb
8bd617c4ee
input: new windows input manager based on raw input
...
The new implementation uses a message-only window to register raw input events.
XInput is still used when possible, but raw input is being used to handle device detection. (XInput is only enabled when an XInput device is plugged in, which also prevents us from having to load and poll the XInput library unnecessarily.)
For raw devices, the Windows HID parser library is used to parse the raw data. Unfortunately, the Windows 7.1 SDK does not ship hid.lib (which is in the WDK 7.1.0), so I am dynamically loading hid.dll to prevent pulling in a dependency on the WDK. (But perhaps we can ship hid.lib in the thirdparty libraries?)
Input devices other than XInput gamepads and the 3D mouse have not been tested very well yet. Adding keyboard and mouse support is still a TODO.
This also splits out the Windows implementation of InputDeviceManager into a separate subclass; it is intended that the other implementations will follow suit.
2018-01-22 22:05:14 +01:00
rdb
c911ba8059
Merge branch 'master' of github.com:panda3d/panda3d into deploy-ng
2017-12-21 15:10:53 +01:00
rdb
f703fd51ed
deploy-ng: allow deploy-stub to set MAIN_DIR via blobinfo
2017-12-21 12:25:17 +01:00
rdb
c6401c45c1
deploy-ng: support macOS universal binaries
2017-12-21 12:20:19 +01:00
rdb
8e6cf2a60b
Merge branch 'master' into input-overhaul
2017-12-17 13:04:15 +01:00
rdb
193e4b5f59
interrogate: clean py_panda.h; use macros to access Dtool_PyInstDef
2017-12-12 23:03:38 +01:00
rdb
18678214ae
interrogate: pass "args" tuple to function that takes PyObject *args
2017-12-12 16:20:59 +01:00
rdb
f54b8be676
Separate out Python compat hacks from py_panda.h into py_compat.h
2017-12-03 15:48:02 +01:00
Mitchell Stokes
d90e59ca2d
Merge branch 'master' into deploy-ng
2017-12-02 18:36:47 -08:00
Younguk Kim
3abf3a0c88
Add HAVE_PYTHON macro to build without python
2017-11-28 13:04:57 +09:00
rdb
27f20c80fd
Don't include dlmalloc_src.cxx in interrogate
...
Fixes : #200
2017-11-27 18:49:28 +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
Mitchell Stokes
fcb1d9308b
Merge branch 'master' into deploy-ng
2017-11-25 14:58:25 -08:00
Mitchell Stokes
aba26bd862
Merge branch 'master' into deploy-ng
2017-11-25 14:55:47 -08:00
rdb
409b241b40
Fix compile errors
2017-11-24 22:38:51 +01:00
rdb
d755de849c
deploy-ng: new extensible blob format with PRC configurability
2017-11-24 21:48:18 +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
08629ef1a0
Fix a few compiler warnings
2017-11-07 15:38:40 +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
dd2806c8bd
Mark constructors 'explicit' for which coercion makes no sense
2017-11-06 19:47:38 +01:00
rdb
96d237377b
interrogate: add various sequence/mapping methods to seq/map property
2017-11-05 18:01:39 +01:00
frainfreeze
f22c0cdd83
Add README.md files for various directories
...
Closes : #10
2017-10-31 19:20:24 +01:00
rdb
0c0f9adab9
Support coroutines and async/await in the task manager and loader
2017-10-31 18:56:41 +01:00
rdb
dee8d83998
interrogate: fix regression with setter of MAKE_PROPERTY2
...
See also tobspr/RenderPipeline#86
2017-10-17 21:18:51 +02: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
1583196022
pystub: fix faulty definition of PyTuple_Type symbol
2017-09-19 19:41:18 +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
Sam Edwards
0f3b52c51f
CMake: Define NOTIFY_DEBUG option
2017-08-30 21:03:17 -06:00
Younguk Kim
99cf21acec
Fix failure to load DLL with unicode path
...
- Change LoadLibrary API to unicode version on Windows
2017-08-22 23:42:42 +09:00
rdb
3e6dc3b046
Fix Python 3.2 compilation error
2017-08-07 23:32:45 +02:00
rdb
d1c34c3360
interrogate: support static properties
2017-08-07 22:04:56 +02:00
rdb
925ce854d0
general: make DO_MEMORY_USAGE setting not change ABI compatibility
2017-07-10 19:50:09 +02:00
rdb
7228bc7e5f
Fix NATIVE_WORDSIZE on 64-bit Windows (fixes memory alignment)
2017-07-10 01:51:12 +02:00
rdb
2b537d2263
Use XDG basedir spec for model-cache-dir (now $XDG_CACHE_HOME/panda3d which is usually $HOME/.cache/panda3d)
...
User appdata directory on posix is now $XDG_DATA_HOME (usually $HOME/.local/share).
Common appdata dir is /usr/share (or /usr/local/share on FreeBSD)
2017-07-03 22:27:37 +02:00
rdb
fa1c480508
general: clean up use of override keyword
2017-07-03 12:56:23 +02:00
rdb
f57a3f9cde
Hack to remove build warning on MSVC 2010
...
Fixes LP #1700329
2017-07-03 11:13:02 +02:00
rdb
a66b497f2b
We no longer support GCC 4.6. Version 4.8+ is recommended.
...
Ubuntu Precise users can install GCC 4.8 from the ppa:ubuntu-toolchain-r/test repository.
CentOS 5/6 users can install devtoolset-2 or later.
2017-06-12 19:47:54 +02:00
rdb
88e963b936
Fix compilation errors in GCC 4.6 and 4.8
2017-06-09 20:36:45 +02:00
rdb
4bcf225baf
openssl: fix use of deprecated calls
2017-05-25 21:35:02 +02:00
rdb
d6657baf29
cppparser: fix scope bug in constructor inits
...
This also fixes the Android build.
2017-05-25 13:20:11 +02:00
rdb
828f1c10ca
Support loading Opus audio files via libopusfile.
2017-05-24 22:21:54 +02:00
rdb
904209b277
Split out interrogate jobs for dtool directories from express
2017-05-24 13:44:52 +02:00
rdb
d576c6b638
Improvements to generated API docs, especially in direct tree.
...
Also add an entry point for pfreeze.
2017-05-24 13:30:21 +02:00
rdb
65a705217e
Compile fixes for older Python 3 versions
2017-05-14 23:14:37 +02:00
rdb
a387fb9f35
interrogate: nullptr handling, faster kwargs handling in some cases
2017-05-14 22:19:25 +02:00
rdb
652f2d7f21
bullet: improve performance of adding geometry to BulletTriangleMesh
2017-05-14 22:17:41 +02:00
rdb
325ac4c114
Fix memory tracking bug - DeletedBufferChain erroneously showed leak
2017-05-13 21:59:29 +02:00
rdb
160f652d58
text: use HarfBuzz for text shaping; support right-to-left text
2017-04-25 12:25:31 +02:00
rdb
a175ad6a82
interrogate: fix compile error with default values that call scoped functions
2017-04-07 13:56:47 +02:00
rdb
2669cc8710
Remove unused macros
2017-04-07 13:56:35 +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
e1c916cdc3
interrogate: handle implicit destructors correctly
2017-04-02 14:44:51 +02:00
Sam Edwards
76a7c84330
Merge branch 'master' into cmake
2017-03-08 01:59:15 -07:00
Sam Edwards
4d59ad4014
interrogatedb: Build even when _PyErr_OCCURRED is undefined
2017-03-08 01:59:02 -07:00
Sam Edwards
ea1ba281b5
interrogate: Add missing cast in generated calls to PyObject_INIT_VAR
2017-03-08 01:54:21 -07:00
Sam Edwards
6926fbfbe6
CMake: Push Python links back to where they're actually needed
...
This keeps the Panda3D core free of any Python-specific linkage
2017-03-08 01:44:27 -07:00
rdb
edb83fe89a
Various optimizations to reduce performance overhead of rendering
2017-02-21 02:20:06 +01:00
deflected
f6e2e2ea05
Fix compile issue on FreeBSD 11
2017-02-20 15:10:15 +01:00
rdb
88dd3389ee
cmake: install header files
2017-02-19 23:42:48 +01:00
rdb
f5f51c5d5b
Remove OpenSSL includes from headers, so C++ users don't need to have OpenSSL
2017-02-17 16:15:04 +01:00
rdb
8c914a2855
Work towards ABI stability wrt allocation. Let MemoryHook take advantage of dlmalloc's internal bookkeeping.
2017-02-17 13:02:01 +01:00
rdb
29edf55069
GlobPattern: support trailing slash and globstar (eg. **/*.egg)
2017-02-17 13:02:01 +01:00
Sam Edwards
dd490656a0
CMake: Update for upstream changes
2017-02-15 03:46:14 -07:00
Sam Edwards
ed4725afa2
Merge branch 'master' into cmake
2017-02-15 03:46:00 -07:00
Sam Edwards
ec3c2c5681
general: Fix missing include
2017-02-15 03:44:48 -07:00
rdb
2acde88695
New alignment code to hopefully fix the alignment issues
2017-02-10 03:01:32 +01:00
rdb
18f09c48dd
cppparser: parse template friend declaration
2017-02-09 23:52:38 +01:00
rdb
218ad7058d
pystub: definitions for debug version of Python
2017-02-09 23:50:14 +01:00
rdb
cfe810ace7
Add set_shader_inputs for efficiently setting multiple shader inputs
2017-02-06 13:16:27 +01:00
rdb
c0191a3126
cppparser: update cppBison prebuilt files
2017-01-17 22:51:04 +01:00
rdb
e2771d39a9
cppparser: support for various C++11/C++14/C++17 features:
...
- decltype(auto)
- attributes (ie. [[deprecated]]), incl. with C++17 "using"
- extern template class (parses)
- sizeof struct members
- aggregate initialization
- initializers in capture lists
- alignas (parses)
2017-01-15 15:39:34 +01:00
rdb
e12420571b
cppparser: support C++11 lambda expressions
2017-01-14 22:37:33 +01:00
rdb
5aabd56697
cppparser: support C++11 raw string literals
2017-01-14 22:35:38 +01:00
rdb
a15d84dbeb
Fix compile errors and warnings in MSVC 2010 / GCC 4.6
2017-01-12 15:18:48 +01:00
rdb
e60d1e292e
Make better use of C++ rules for implicit generation; allow PointerTo and some mutex impls to be static initialised
2017-01-12 12:34:15 +01:00
Sam Edwards
f1da5ce92f
Merge branch 'master' into cmake
2017-01-09 17:59:22 -07:00
rdb
4ed199cece
Fix various compile warnings and a few code consistency issues
2017-01-09 20:36:53 +01:00
rdb
ba5bba42b0
Fix interrogate warnings, flesh out iterator header
2017-01-08 17:51:09 -05:00
rdb
41d26284d7
Fix various compilation issues on Mac.
...
Work around bugs in Apple Clang that ships with XCode 4 with C++11 by disabling constexpr
Use move() instead of std::move()
It also looks like we'll have to continue using pystub for tools that use libp3interrogatedb for now.
2017-01-08 17:17:56 -05:00
rdb
816b2ac3ba
C++11 polyfills. This should fix Snow Leopard build.
2017-01-05 23:26:13 +01:00
rdb
40ea0ab786
cppparser: support directives __LINE__, __FILE__, __has_include
2017-01-04 22:46:57 +01:00
rdb
cf105f276c
More alignment fixes for 32-byte AVX
2016-12-28 20:23:27 +01:00
rdb
8434914ab6
Merge branch 'master' into input-overhaul
2016-12-28 17:26:58 +01:00
Sam Edwards
dad14499cd
Merge branch 'master' into cmake
2016-12-26 17:17:25 -07:00
rdb
fb2568afad
Fix faulty merge
2016-12-26 17:36:11 +01:00
rdb
9c789db918
Compile fix for Python 3.2
2016-12-25 23:58:08 +01:00
rdb
ab5b5e7e74
Merge branch 'release/1.9.x'
2016-12-25 22:47:22 +01:00
rdb
0c742d59e5
Fix crash due to incorrect alignment when building Eigen with AVX extensions
...
Consequentially, we now use 32-byte alignment when building with eigen if __AVX__ is set.
2016-12-25 22:13:05 +01:00
rdb
45356e85e1
Backward compat with older OpenSSL versions
2016-12-25 11:48:38 +01:00
rdb
122d9dd3ff
Support building with OpenSSL 1.1.0
2016-12-24 22:19:51 +01:00
rdb
637767fec8
Flush nout before inducing crash in assert-abort
2016-12-20 23:15:21 +01:00
Sam Edwards
b326c6e12d
CMake: Implement test for HAVE_IOS_BINARY.
2016-12-15 04:13:24 -08:00
rdb
c422f5952f
Increase default alignment to 2x word size, make DeletedBufferChain allocations more efficient
...
NB. NeverFreeMemory no longer performs alignment.
This fixes the Bullet crash on Win64. Need to check Win32.
2016-12-08 23:22:16 +01:00
rdb
8d305273dd
Merge remote-tracking branch 'origin/master' into cmake
2016-12-07 23:05:40 +01:00
rdb
32377cb618
interrogate: fix to allow pointers to forcetyped classes
2016-12-07 23:04:15 +01:00
rdb
e778c529b2
Implement Python 3.6 fspath protocol; allow passing a pathlib.Path wherever Filename is expected
...
The Python 3.6 fspath protocol allows passing Filename objects into any Python standard library calls that take a path.
2016-12-07 00:42:44 +01:00
rdb
b182224463
interrogate: fix issues with abstract classes and covariance (fixes EggPolygon constructor)
2016-12-05 17:22:24 -05:00
rdb
a056543d5a
Support push_macro and pop_macro in cppparser
2016-12-05 02:02:25 +01:00
Sam Edwards
e1dfd4ee3d
cmake: Oops, turn on USE_PANDAFILESTREAM by default.
2016-12-04 15:19:40 -08:00
Sam Edwards
e3fcacb1f7
Merge branch 'master' into cmake
2016-11-30 19:21:50 -08:00
Sam Edwards
573dad8dde
general: Fix missing includes.
2016-11-30 19:21:34 -08:00
rdb
d0e9f136c0
Merge branch 'master' into input-overhaul
2016-11-22 12:15:21 +01:00
rdb
b0a8408755
Fix issue with Windows build
2016-11-04 00:49:04 +07:00
rdb
d54d43ac34
cppparser: fix issue with templated external method definitions
2016-11-03 18:04:14 +01:00
tobspr
c0fd29d822
Add functional header to parser-inc ( #126 )
...
* Support for the functional header
* Add unordered_map and initializer_list
* Add unordered_set header
* Fix spacing, and remove unecessary defines
* Add missing definitions to memory header
* Use variadic templates in functional header
2016-11-03 14:08:25 +01:00
rdb
c2abb4b2f8
Revert code that is triggering an odd compiler quirk in MSVC
2016-11-03 19:27:04 +07:00
rdb
22f0b50851
More Interrogate C++11 support changes:
...
* Parse variadic templates
* Add (incomplete) type_traits support
* Parse anonymous class template params
* Parse volatile/lvalue/rvalue methods
* Don't generate destructor for indestructible types
* Add xmmintrin.h header
* Allow invoking extensions with references
2016-11-03 12:17:11 +01:00
rdb
1467541b8d
Interrogate issues: "fix #pragma once" for files specified on command-line, fix "unexpected $end" not having line numbers when parsing template parameter list
2016-11-01 12:19:11 +01:00
tobspr
50e8d5d08d
Update stdint.h
...
This adds missing definitions from the standard library header ` stdint.h` to the interrogate header.
I also changed the `typedef` to the C++11 style `using`.
Closes : #125
2016-10-31 22:34:47 +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
Mitchell Stokes
59b0913b0b
Cleanup .gitignore files
...
Remove all .gitignore files in subdirectories and add a few new ignores
to the top-level directory .gitignore file.
2016-10-30 20:06:12 -07:00
rdb
f1f4951fb5
Merge remote-tracking branch 'origin/release/1.9.x'
2016-10-13 00:25:57 +02:00
rdb
955ca0d334
Fix support for passing keyword arguments to methods named make()
...
such as *Attrib.make() and Shader.make()
2016-10-13 00:21:59 +02:00
rdb
06cc1794fc
Drop support for OpenSSL versions before 0.9.7
2016-10-10 14:47:00 +02:00
rdb
a973107bd9
Remove duplicate definition of USE_GENERIC_DXERR_LIBRARY in ppremake
2016-10-10 10:04:41 +02:00
rdb
33c6e21352
Fix regression that stopped buffer protocol from working
2016-08-09 01:45:26 +02:00
rdb
29ea65bb3f
Merge branch 'release/1.9.x'
2016-08-09 01:44:21 +02:00
rdb
db97747981
cppparser: Parse nonstandard specifier order like "const static"
2016-08-09 01:27:30 +02:00
rdb
47388b0dbc
Separate out CPython calls from core libs; eliminate need for pystub
2016-07-20 14:30:41 +02:00
rdb
a4554a7dfe
gcc build fix
2016-07-14 13:21:39 +02:00
rdb
8381118a97
Assorted tweaks and compile warning fixes
2016-07-14 12:54:39 +02:00
rdb
6f168446d0
Merge branch 'release/1.9.x'
2016-07-12 14:57:48 +02:00
rdb
69f15258e4
Fix race condition reading filename/string from config var
2016-07-12 14:47:20 +02:00
rdb
5dcaac9c75
Map size_t to int if possible. Fixes regression with __len__().
2016-07-03 09:17:43 +02:00
rdb
b3bb19180e
Fix LNK4217 linker warnings on Windows
2016-06-29 19:10:50 +02:00
rdb
733456cb41
Merge branch 'release/1.9.x'
2016-06-28 02:58:47 +02:00
rdb
99f7fb6fcd
Show error instead of crash when using method or property before C++ object is constructed
2016-06-28 02:58:06 +02:00
Sam Edwards
fffd105f96
Merge branch 'master' into cmake
2016-06-25 19:12:14 -07:00
Sam Edwards
2933b8ed39
general: Fix missing includes.
2016-06-25 19:10:38 -07:00
rdb
b98d3c06ee
Merge branch 'master' into input-overhaul
2016-06-24 10:51:41 +02:00
rdb
9963fe2c3c
Fix a couple of compile warnings, reduce unnecessary includes
2016-06-23 22:59:50 +02:00
rdb
7e08b87ff7
IPv6 support, improve URL handling/comparison
2016-06-22 17:57:40 +02:00
rdb
4724a7ddbc
Add 1.9.3 release notes, bump version number
2016-06-22 17:22:06 +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
d53b2ca80e
Backport various bugfixes from master, among which:
...
- Fix Windows pbuffer crash on Intel cards
- Fix crash when using pnmimage.write with unsupported format
- Fix GLSL diagnostics on Mesa GLES2 compiler
- Reduce warning severity when resizing immutable storage texture
- Print more debug info when FrameBufferProperties are insufficient
- Fix "Bam file contains objects of unknown type: MovingPart<LMatrix4f>"
- Fix memory leak in BulletTriangleMesh
- Fix pmerge in Python 3
2016-06-07 14:40:27 +02:00
rdb
8d05ef3022
Assorted fixes
2016-06-03 22:23:42 +02:00
rdb
08db72a2ca
Update dlmalloc
2016-06-03 17:42:49 +02:00
rdb
5543716660
Interrogate wraps vector<unsigned char> as Python 3 bytes object
2016-06-03 01:47:54 +02:00
rdb
242cc5f57d
Support template "using" definitions in interrogate
2016-05-31 18:48:32 +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
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
dc09e28ed9
Also accept a .gz wherever a .pz file is accepted
2016-04-29 16:54:25 +02:00