22369 Commits

Author SHA1 Message Date
rdb
f986f8de1b showbase: add back clampScalar and PriorityCallbacks to PythonUtil
These were removed by 88dbb31daa02779405ef5326677eefb5cf93f3c8 under the assumption that they were not used, but it has recently come to my attention that there is still code out there that uses these.

PriorityCallbacks has been updated to be compatible with Python 3 by only comparing the priority, rather than the (priority, callback) tuple. This also has the side-effect of ditching the bisect dependency.

Also moves testing code from the source to the unit tests.
2018-04-21 11:43:46 +02:00
Donny Lawrence
574000aedd Add getter and setter for Content-Type header
Fixes #296
Closes #305
2018-04-21 11:20:18 +02:00
deflected
1ac351d594 bullet: Allow intractions with bullet world during tick callbacks
- Release the global lock during the user tick callback
        and allow interactions with bullet world
        - Acquire the lock again after the callback

Signed-off-by: deflected <deflected@users.noreply.github.com>
2018-04-20 21:29:08 +03:00
rdb
e6e39cce0e bullet: fix deadlock in get_manifold 2018-04-20 12:51:26 +02:00
rdb
fc172f8918 tests: fix unit test on 32-bit Ubuntu due to float imprecision 2018-04-20 12:48:26 +02:00
Sam Edwards
5f0a390b8f travis: Always use system 'virtualenv' command for venvs 2018-04-20 03:22:45 -06:00
Sam Edwards
cca5b910dc travis: Correct version of Python 3 in use
Travis-CI environment only has Python 3.4 available, not 3.5.
2018-04-20 02:32:22 -06: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
1fcb8a2748 CMake: Skip optional subdirectories in a cleaner way
Instead of wrapping the whole subdirectory's CMakeLists in
a gigantic if block, we use if(NOT HAVE_FOO) + return()

This is tidier since it keeps the indentation generally consistent
across all CMakeLists files.
2018-04-20 02:26:47 -06:00
Sam Edwards
56a6e6a80a Merge remote-tracking branch 'origin/master' into cmake 2018-04-20 01:57:46 -06:00
Sam Edwards
5beaeb0f66 travis: Fix Python version selection
Apparently this is only respected by Travis if 'language' is set
to 'python'
2018-04-20 01:53:36 -06:00
Sam Edwards
d9e769f656 travis: Practically rewrite .travis.yml
- Make the build matrix actually run as a matrix
  - Add a few exclusion rules to turn off some of the
    more esoteric cases.
- Install libav, to test that p3ffmpeg builds
- Don't do a makepanda build at all on this branch
- Simplify uses of Python
- Change indentation style; no indentation for nested lists
2018-04-20 01:15:44 -06:00
Sam Edwards
5b3ca1bb05 CMake: Fix up the "transitive library" metalib logic
This fixes some cases where transitive libraries, as nominated
by a component library, were not being absorbed into a metalib,
due to the library actually not being defined yet. This makes the
logic a little more robust, first by explicitly requiring a metalib
definition to come after all component library definitions, and second
to assume a library "linked" to a component library is a non-component
if it isn't defined (yet).
2018-04-20 00:20:14 -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
5a31844e11 CMake: Slightly tweak component-library -D inheritance rules
This only inherits -D flags from another component library. The private
-D flags should not be inherited from regular libraries.
2018-04-19 00:07:08 -06:00
Sam Edwards
29799643e0 CMake: Move source file accidentally counted as a header 2018-04-18 16:58:20 -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
Sam Edwards
7590c37f0c CMake: Have Interrogate respect INTERFACE_COMPILE_DEFINITIONS
This commit isn't technically quite right, since Interrogate should
use the definitions from COMPILE_DEFINITIONS but the module should
be built with INTERFACE_COMPILE_DEFINITIONS, but whatever. That can
be changed if it becomes a nuisance later on.

The rationale here is it's consistent with how CMake treats these
two properties.
2018-04-18 12:23:18 -06:00
rdb
4877e8350d tests: fix unit test on 64-bit Ubuntu due to float imprecision
[skip ci]
2018-04-18 18:25:29 +02:00
Sam Edwards
d642ca4fa0 CMake: Change linkages to go through metalibs
This changes the target_link_libraries() declarations so they only
go directly to a component library if it's in the same metalib.

If it's outside of the metalib, the correct thing to do is link against
the metalib. CMake takes care of the transitive linking for us, so
there isn't actually any big change here.
2018-04-15 01:10:21 -06:00
Sam Edwards
c0b8b3c542 CMake: Interrogate bugfix for LINK and IMPORT keywords together 2018-04-15 00:35:49 -06:00
rdb
f979c4d312 makepanda: don't use pkg-config for assimp
It seems that they removed the -I option, which we need to build with.  This commit is intended to fix the Ubuntu Bionic build.
2018-04-11 17:41:16 +02:00
rdb
0cef19fd90 putil: more validation in DatagramInputFile::get_datagram
Intended to fix test_file_corrupt for 32-bit platforms.

See discussion in 89be2c19af74c62b57961469c779b324c69979f1
2018-04-11 17:29:49 +02:00
rdb
e1675f1a53 makepanda: fix compile error on Windows with some versions of flex 2018-04-10 15:31:48 +02:00
rdb
607af9ff49 flt: fix compile error on macOS 10.6 (which has no strnlen) 2018-04-10 15:29:43 +02:00
Younguk Kim
9ca0d089a6 event: fix a crash when removing a task is not owned by user 2018-04-10 19:45:54 +09:00
rdb
753ae39740 readme: use MSVC 2015 instead of 2010 (see #288)
[skip ci]
2018-04-08 13:51:52 +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
rdb
22f933a419 tests: disable datagram bytes() test on Python 2
See #297
2018-04-06 20:34:48 +02:00
rdb
b4d29e6096 express: allow using bytes() on Datagram
Closes: #297
2018-04-06 17:42:59 +02:00
rdb
de6d753f79 net: don't use get_message() when constructing datagram header
This is causing an unnecessary copy operation.
2018-04-06 17:17:04 +02:00
Sam Edwards
1401a1cc48 CMake: Don't use (SO)VERSION for modules 2018-04-05 16:11:59 -06:00
Sam Edwards
cfd603bb8d CMake: Build Python binary modules as MODULE, never SHARED 2018-04-05 16:11:59 -06:00
Sam Edwards
411e0ee93f CMake: Use interrogate's -import instead of linking directly 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
rdb
94476fd1f0 glgsg: fix invalid operation error with multisample FBO
Panda is forgetting to reset the current FBO when resolving multisamples.
2018-04-04 21:46:01 +02:00
rdb
7cbdd3b6c4 gobj: release GIL for (un)compress_ram_image 2018-04-04 21:36:26 +02:00
Sam Edwards
2f6c79b9e6 CMake: Build libraries with VERSION/SOVERSION
This takes advantage of SONAME and versioning on platforms that support it.
2018-04-02 15:49:05 -06: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
fadbcd91e5 ffmpeg: Bump supported minimums lower for libav 9.20
We need to support this because Ubuntu 14.04 ships with this
version, and has no "backports" option to bring in a newer version
(without use of a PPA or compiling it yourself).

We can consider raising the minimums again once Trusty is EOL.
2018-03-31 05:53:45 -06: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
Sam Edwards
bb6e0abeba ffmpeg: Switch the video cursor to the new decoding API 2018-03-31 04:17:07 -06:00
Sam Edwards
8d36908556 ffmpeg: Use avcodec_flush_buffers when seeking
Previously this would close and reopen the codec context;
that's entirely unnecessary, as all supported versions of
libavcodec support flushing the buffers instead.
2018-03-31 04:17:07 -06:00
Sam Edwards
e430428703 ffmpeg: Add async audio decoding loop
This leverages libavcodec >= 57.37.100's new asynchronous API,
which both allows decoding in hardware and in a separate thread,
and in any case would free up more CPU time for Panda's app loop.

This also avoids use of the now-deprecated `avcodec_decode_audio4`
2018-03-31 04:17:07 -06:00