SDK 1.10.5 Release

Happy new year! We would like to kick this year off with a fresh release of Panda3D. This is another stable release resolving a large amount of issues, and as such, we highly recommend upgrading. Go to the download page to see a list of changes and get the new SDK.

If you are using macOS however, keep reading, as there are a number of changes that are important to be aware of.

New OS X 10.9 builds

If you look at the download page, you will notice two builds for macOS listed, one for 10.6+ and another for 10.9+. For a variety of reasons, we recommend using the 10.9 build unless you are using an older version of macOS. While it should be safe to use the older 10.6 version on any version of macOS, keep in mind that it does not support Python 3.8, and it exhibits a couple of problems on macOS Catalina (outlined further below).

This difference is also significant for C++ users of Panda3D, since the former is built with the older libstdc++ standard library whereas the latter is built with the libc++ standard library. C++ users who are building their applications against the 10.9 SDK or newer will need to use the latter build of Panda3D, or they may encounter link errors.

Starting with Panda3D 1.11.0, we will be dropping support for Mac OS X 10.6 altogether, which will mean that the 10.9 build will be the only build of Panda3D we provide.

Support for macOS 10.15 “Catalina”

With the recent release of macOS 10.15 “Catalina”, Apple has made a number of unannounced changes to the operating system that have caused issues in Panda3D. Firstly, since our installer wrote the SDK to /Developer and this directory is no longer writable in Catalina, installing the SDK from the .dmg did not work. Even when succeeding to install Panda3D (such as via pip), Panda3D could crash if the application was not given “Input Monitoring” permissions. Furthermore, Panda3D games would not show up correctly when using high-DPI monitors.

To address the first issue, we have changed the installation location to /Library/Developer/Panda3D. The installer will remove any previous installation from /Developer/Panda3D and instead write a symbolic link to the new location when installing on macOS 10.14 or lower. In the future, we will evaluate the possibility of installing Panda3D as a framework instead.

The second issue is due to the fact that Apple has restricted their input device API which we use for collecting input from game controllers implementing raw keyboard and mouse support. They have instead created a new API that games are required to use to support a handful of gamepads sanctioned by Apple. We are working on implementing support for this new API, but in the meantime, you may encounter the following warning:

To be able to support game controllers and other devices on macOS, you will need to navigate to System Preferences, Security & Privacy, and then click Input Monitoring on the left side. Then, you will need to tick the box next to the application in question (this will be Terminal.app if running from the terminal), as shown here:

Finally, the issues with HiDPI support on Catalina have been addressed. However, some parts of the fix relating to fullscreen support required building Panda3D against a newer version of the macOS SDK. If you are using Catalina, we highly recommend that you grab the OS X 10.9 build, and not the 10.6 build.

Much is owed to community members el-dee and treamous for their work implementing the above fixes and for their diligent testing!