Changelog History
Page 1
-
v1.10.7
September 14, 2020 -
v1.10.6
March 19, 2020 -
v1.10.5 Changes
January 08, 2020๐ This is a recommended bugfix release, especially for macOS users.
๐ Read the announcement on our blog, or go straight to the download page for the binary builds.
- ๐ Fix DPI scaling issue in macOS 10.15 "Catalina" (#794)
- ๐ Fix crash on macOS Catalina without "Input Monitoring" permission (#795)
- ๐ macOS installer now installs to /Library/Developer/Panda3D (#760)
- ๐ macOS thirdparty packages are now linked with libc++ (#584)
- Homebrew Python should now locate Panda libraries correctly (#755)
- ๐ Work around Tk bug cancelling Load Params in Particle Panel on macOS (#811)
- ๐ Fix NaN assertions when particles get very large positions (#822)
- โ Add support for Autodesk Maya 2020
- ๐ Fix maya2egg erroring when running from a pip installation (#709)
- ๐ Support DualShock 4 (2nd gen) controller on Windows
- ๐ Support .pz and .gz compressed models in deployment system
- ๐ Support implicit namespace packages in deployment system (#778)
- ๐ Fix issues when using CEF Python on macOS with deployment system
- ๐ Fix deployment system issues reading .pyc files in some Python versions
- ๐ Fix error with distutils package when deploying in a "virtualenv" env (#747)
- ๐ Fix "NameError: name 'mdef' is not defined" error when deploying (#721)
- Deployment system now strips weird -psn_* argument passed to macOS GUI apps
- ๐ Fix custom loader hooks sometimes not working with Actor (#750)
- Fix defaults for package_data_dirs in deployment system (#779)
- ๐ Fix issues with adding icons to deployed executable (#718)
- โ Add PNMImage.quantize() that palettizes using median cut algorithm
- ๐ Fix stereo and MRT FBO rendering in OpenGL ES (#815)
- RTM_copy_ram mode is now fixed for multiview textures in OpenGL
- ๐ Fix OpenGL multisample FBO issue with 16-bit float buffer (#756)
- ๐ Fix DirectX 9 crash when resizing vertex buffer in certain ways (#824)
- โช Workaround for infinite loop in Triangulator for certain polygons (#737)
- ๐ Fix dcparser issue with unpacking uint64 and int64 (#751)
- ๐ Fix ability to compile dcparser outside of the Panda3D codebase (#759)
- ๐ Fix all direct.stdpy.threading2 threads behaving daemonically (#758)
- direct.stdpy.threading2.Thread instances provide daemon and name properties
- ๐ Workaround for Tkinter crash on Windows when resizing window (#586)
- ๐ Fix possible stack overflow when reading many bytes from a stream (#754)
- ๐ Fix mouse confinement region on Windows not updating on window resize (#727)
- ๐ Fix mouse confinement being lost on Windows when window loses focus (#729)
- ๐ Support adjusting particle birth offset time (#769)
- ๐ Support building against OpenEXR 2.4 on Windows (#799)
- ๐ Fix ability to pass a tuple to loader.loadModel
- ๐ Fix an issue in interrogate with generating C bindings (#722)
- ๐ Fix a variety of ABI compatibility issues with NDEBUG builds
- ๐ Fix static linking of harfbuzz and freetype in makepanda
- ๐ Fix ability to specify
--python-incdir
and -libdir to makepanda on macOS ls()
andbam-info -ls
now list included animations- ๐ Fix white ambient color when loading PBR materials from .bam/cache (#828)
- ๐ Fix inconsistent behavior when passing small values to shader inputs (#827)
- ๐ Fix very rare NVIDIA driver crash when mixing GLSL and Cg shaders
- ๐ Fix issue passing unicode to DirectScrolledList (#752)
- ๐ Fix interrogate parser issue with function-like macro expansion
- Interrogate now finds types nested in explicitly specialized template class
- ๐ Improve performance reading all data from a file with direct.stdpy.file
- ๐ PandaSystem now records whether libc++ or libstdc++ was used on macOS
- ๐ makepanda.bat now builds against Python 3.7 by default
- ๐ Many improvements to API documentation
- ๐
pandac/input/*.in
interrogatedb files are now included in .whl builds - ๐ Fix division exception in ServerRepository (#762)
- ๐ Fix ShaderBuffer contexts not being cleared at GSG destruction
- ๐ Fix DirectOptionMenu item text scale reset on item unhighlight (#768)
- Python particle classes now have snake-case aliases
- ๐ Fix crash printing out cached buffer contexts
- Rudimentary, experimental, low-level handling of digitizer input devices
-
v1.10.4 Changes
August 19, 2019๐ Read the announcement on our blog, or go straight to the download page for the binary builds.
๐ This release fixes a regression with DirectScrolledList in 1.10.3, fixes various other bugs, and introduces a few minor features.
- ๐ Fix exception trying to create DirectScrolledList
- ๐ Fix flickering in DirectScrolledFrame and other scissor issues (#681)
- ๐ Experimental support for Python 3.8
- ๐ Support adding icons to deployed applications
- Support non-affine (eg. projective) transforms in calc_tight_bounds
- ๐ Allow setting notify-output after initial import
- ๐ Fix macOS issue locating Panda3D using Python 2.7.13+ from python.org
- ๐ Support for Maya 2019
- ๐ On Windows, pip is now installed by the installer (#690)
- ๐ Fix Actor.makeSubpart on models with pre-bound animations (#647)
- Properly interrupt task manager if first task chain raises error (#692)
- ๐ Fix return value of encrypt_string in Python 3 (#684)
- ๐ Support writing loader plug-ins in Python
- ๐ Fix reading multiple
p3d_TextureMatrix[]
values from GLSL shaders - ๐ Fix shader error flag not being set if GLSL compilation failed (#622)
- โ Add
NodePath.replace_texture()
convenience method - ๐ Fix deadlock when building with
SIMPLE_THREADS=1
(#704) - ๐ Fix DirectOptionMenu cancelFrame not working inside scrolled frame (#658)
- ๐ Fix assertion when calling
analyze()
on geometry with strip cut index - ๐ Implement fallback in GL renderer when
F_sluminance
is not supported (#693) - Set reasonable limits for sliders in ParticlePanel
- ๐ Fix for DirectEntry autoCapitalize feature on Python 3 (#628)
- ๐ Fix various DirectGUI items not working before ShowBase is instantiated
- ๐ Work around an MSVC compiler bug in the release build
PythonUtil.weightedChoice
now raises IndexError on empty list- ๐ Support changing DirectScrollBar width after initialiation (#699)
- โช Workaround for Bullet deadlock when adding shape to a scaled body (#689)
- ๐ Support setting DirectEntryScroll entry after initialization (#702)
- ๐ Fix some missing imports in directtools (#698)
- ๐ Fix undefined behavior issue when using musl-libc
- โก๏ธ Update Eigen in Windows thirdparty packages to 3.3.7
- ๐ Update metadata of pip wheels
-
v1.10.4.1 Changes
August 20, 2019๐ This release fixes only one critical regression in 1.10.4: calling
destroy()
on a DirectGUI item would cause an exception.๐ Read the announcement on our blog, or go straight to the download page for the binary builds.
-
v1.10.3 Changes
May 14, 2019๐ This is another bugfix release that addresses a variety of issues in 1.10.2 and further improves the stability.
๐ To download binary builds, please visit the download page.
- ๐ Fix crash when unplugging certain devices on macOS
- ๐ Fix crash on macOS when using RIME input
- ๐ Fix logging issues/crashes in apps deployed with Python 2.7
- ๐ Fix issues when starting in fullscreen on Linux/X11
- ๐ Fix mapping of several gamepads including Trust GXT 24
- ๐ Fix Linux crash when no input devices are present
- ๐ Unbreak support for matrix arrays in vertex data in OpenGL
- ๐ Allow creating multisample FBO in OpenGL with non-MS host window
- ๐ Support playing and looping compressed Ogg and WAV audio files
- ๐ Fix generation of CollisionBox for transformed geometry in .egg
- ๐ Fix Bullet rigid body transform not updating after reparenting
- ๐ Fix sporadic color scales with lighting and custom GLSL shader
- Prevent faulty shaders from shutting down GSG on some drivers
- ๐ Allow None as either argument to OdeJoint.attach()
- ๐ Fix BufferViewer when main window is not opened right away
- Properly detect extension of pz/gz compressed video/audio files
- ๐ Fix for invalid behavior of SparseArray methods to clear bits
- FilterManager now allows overriding framebuffer properties
- ๐ Fix detection of core-only OpenGL profile on some drivers
- โ Add gl-forward-compatible config var for OpenGL context creation
- โ Add paste-emit-keystrokes variable to disable Ctrl+V on Windows
- ๐ Fix in-place
|=
operator on Panda types (such as SparseArray) - ๐ Fix rare FFmpeg "bad src image pointers" errors after seek
- ๐ Fix uses of types.InstanceType in some obscure direct functions
- ๐ Fix capsule-into-sphere collision test in degenerate case
- KeyboardButton.ascii_key now also accepts a str character
- ๐ Fix errors in various Tkinter DIRECT widgets
- Expose save_egg_file/save_egg_data functions in Python API
- Fix assertion error in BoundingBox.set_min_max
- Fix typo in CollisionTraverser.respect_prev_transform property
- ๐ Properly install Python bindings when building FreeBSD installer
-
v1.10.2 Changes
March 11, 2019๐ This release fixes several more bugs, including a few regressions
โฌ๏ธ in 1.10.1. Upgrading is highly recommended.- ๐ Fix regression on Windows causing freezes and instability
- ๐ Fix a memory leak issue in Python applications
- ๐ Fix crash reading unaligned float4 column in GeomVertexReader
- ๐ Fixes for switching to fullscreen at runtime on Windows and Linux
- ๐ Fix incorrect display mode listing in some Linux distributions
- Fix threading crash on Linux when using
get_keyboard_map()
- Support
from __future__ import division
for Panda types - ๐ Support building with Visual Studio 2019 in makepanda
- โช Work around Assimp crash when loading multiple .ply models
- ๐ On Windows, a Python 3-compatible version of Pmw is included
- ๐ Fix ParticlePanel spam when hovering over File menu items
- ๐ TexMemWatcher has been fixed for Python 3
- ๐ Prevent macOS window getting stuck after
base.destroy()
- ๐ Fix assertion setting mass before shape with Bullet debug build
- Don't error if DirectScrolledFrame is destroyed twice
- Fix reference count corruption accessing
task. __dict__
- ๐ Fix writing to SequenceNode frame_rate property
- ๐ Fix collider sort not copied when copying CollisionNode
- โ Add OpenCollective backer file
-
v1.10.1 Changes
February 14, 2019๐ This is a bugfix release with several critical bugfixes for 1.10.0. There are no known breaking changes from 1.10.0. It is recommended to upgrade as soon as possible.
- ๐ Fix crashes when gamepad is plugged in on 32-bit Windows
- ๐ Fix deploy-ng error regarding 'exist_ok' on Python 2
- ๐ Fix Linux install from pip not working with some mesa drivers
- ๐ Fix compatibility issues with upcoming Python 3.8
- ๐ Fix regression with Audio3DManager.setSoundVelocityAuto()
- ๐ Fix issues when awaiting loader.loadModel in Python 3.7
- Audio3DManager accepts tuple in setSoundVelocity/setListenerVelocity
- ๐ Fix lighting being disabled when only an AmbientLight is active
- ๐ Fix an error saving from Particle Panel in Python 3
- ๐ Depth buffer now defaults to 24-bit on macOS (fixes flickering)
- ๐ Fix no devices being detected on Windows with threading-model
- โ Implement collision tests from Capsule and Box into InvSphere
- ๐ Fix odd behavior and occasional crash in QuatInterval
- ๐ Fix SpriteAnim error in particle system
- ๐ Fix ShaderGenerator error when using too many shadowing lights
- ๐ Fix interrogate crash in Python 3 with optional wstring args
- ๐ Fix compilation errors for x86 Android platform
- ๐ Fix permissions of directories created by installpanda
- ๐ Improvements to API reference documentation
- ๐ Fix incorrect features printed out when printing an InputDevice
- ๐ Support cross-compiling for Android platforms in makepanda
- โช Work around various bugs when compiling with OS X 10.7's libc++
- ๐ Fix wrong error sometimes being reported when loading plug-in
- ๐ Allow getting NodePath from CullTraverserData object
- โ Add config options to Assimp loader for generating normals
- ๐ Fix multisampling in floating-point framebuffers on OpenGL
- ๐ Parse egg files with 4-component tangents (must be 1 or -1)
- StencilAttrib.make() write_mask argument is now optional
-
v1.10.0 Changes
January 03, 2019๐ This is a major release with significant changes. Please review the
โฌ๏ธ changes when upgrading. The list below is by no means exhaustive, but
should contain the most important changes.General
- ๐ Experimental ability to build for Android
- ๐ New input framework to natively support gamepads, joysticks, etc.
- Multi-threaded render pipeline is a lot more stable now
- ๐ New setuptools-based deployment pipeline
- ๐ Improvements to mouselook smoothness
- Cache is now at $XDG_CACHE_HOME/panda3d (~/.cache/panda3d), not ~/.panda3d
- โ Addition of unit test suite
- Many improvements to thread safety
- ๐ Many performance improvements
- ๐ Tons of bugfixes
- ๐ Big style cleanup of C++ source code
Python API
- ๐ Complete support for Python 3
- ๐ Support for coroutines and async/await
- Property interfaces have been added for many settings
- More flexible handling for keyboard arguments in C++ APIs
- Python bindings are completely separated out of the C++ libraries.
- Interrogate binding generator has many improvements.
- ๐ Use of pandac.PandaModules is discouraged, use panda3d.core et al
- ๐ Use of libRocket is discouraged due to lack of Python 3 support
- Tasks are now sorted in addition order when lacking a sort value
- ๐ Fixes iris/fade transitions for extreme aspect ratios
- WeakNodePath is now exposed to Python
- ๐ WindowProperties.size(x, y) deprecated; use WindowProperties(size=(x, y))
- ๐ Calling bare run() is deprecated, use base.run() instead
- ๐ downcastTo*() methods have been removed, they were already no-ops
Rendering
- โ Add new shader-based terrain rendering method (ShaderTerrainMesh)
- 0๏ธโฃ The default ColorAttrib mode is now T_vertex
- The ColorAttrib T_off mode now properly disables vertex colors entirely
- ๐ Make handling of color attributes more consistent between renderers
- Ability to create an OpenGL core profile context; set "gl-version 3 2"
- ๐ Experimental support for reverse-Z rendering for best depth precision
- ๐ sRGB framebuffers supported more widely
- ๐ Support for infinite near/far clip in lens
- โ Add some PBR material parameters to material class
- โ Addition of more built-in GLSL shader inputs; see manual.
- โ Add p3d_FragData[] GLSL output for MRT in GLSL 1.30
- โ Add flag enabling vertex shader control over point size
- ๐ Support signed ints and double-precision floats in vertex data with GLSL
- ๐ Support unsigned 11/10/10-bit floating-point textures and vertex data
- ๐ Support for SSBOs via ShaderBuffer class
- ๐ Support OpenGL FBO buffers without any attachments
- ๐ Support passing uint variables to GLSL shader
- ๐ Allow rendering objects with empty vertex data (for vertex pulling)
- โ Add LogicOpAttrib, for supporting logical operator blending
- ๐ Improvements to OpenGL ES support
- ๐ Support for geometry with adjacency information
- ๐ Change default alpha blending to improve blending rendered result
- ๐ New method for obtaining native OpenGL texture object
- ๐ Support windowless offscreen rendering on macOS
- ๐ Panda resets OpenGL state better before and after draw callbacks
- ๐ OpenGL renderer better supports debugging tools like apitrace
- ๐ Support fixed-depth billboards, useful for 2D tags that don't change size
Shader generator
- ๐ Significant performance improvements
- ๐ Support for point light shadows
- ๐ Hardware skinning support
- ๐ Changes to match fixed-function pipeline better
- ๐ Fixes for normal vector normalization
- ๐ Support multiple normal maps (uses Reoriented Normal Mapping)
- Tracks modifications to materials and texture stages automatically
Lighting
- ๐ Allow specifying light color based on color temperature
- ๐ Setting specular color of a light separately is deprecated
- ๐ New GLSL inputs to make implementing lighting in shaders much easier
- โ Add representation for sphere light and rectangle light
- Efficiency improvements for passing light information to shader
- 0๏ธโฃ Interocular distance for shadow cameras now always defaults to 0
- โ Add low-level lighting module from RenderPipeline
Textures
- ๐ Support cube map arrays
- ๐ Support buffer textures
- ๐ Many more texture formats supported
- ๐ BC4 and BC5 compression modes supported
- ๐ Proper depth textures supported in DirectX 9 renderer
- set_ram_image(_as) directly supports buffer protocol
- ๐ TexturePeeker supports more formats and component types
Text
- ๐ Dramatic improvements to text rendering performance
- ๐ Support for HarfBuzz for higher-quality text shaping and kerning
- ๐ Support for right-to-left text
- ๐ Support for signed-distance-field rendering in egg-mkfont
Audio/video
- 0๏ธโฃ The default unit for audio is now 1 meter for each Panda unit.
- Native .flac loader
- ๐ Support videos with alpha channel in ffmpeg
- ๐ OpenAL stability improvements, especially on macOS
- ๐ Support loading .opus files with libopusfile
- ๐ Fix various memory leaks
Physics / collisions
- CollisionTube is renamed to CollisionCapsule.
- โ Box-box collision test is improved to work well with the Pusher
- โ More box tests for collision system: box-into-plane, box-into-poly
- Capsule (tube) can be used as "from" shape into plane, sphere, capsule, box
- Bullet objects are serializable to .bam files.
- Bullet bindings are now thread safe.
- Bullet debug drawer is more efficient; no longer inherits GeomNode.
- ๐ Various fixes to bullet vehicle wheel synchronization
- ๐ PhysX bindings are deprecated.
Pipeline / loading
- ๐ Support for Assimp library to load a broad variety of model formats
- Ability to specify min-lod, max-lod, lod-bias in .egg file
- ๐ Egg file materials support PBR-style material parameterization
- ๐ Support loading more DDS files, including DX10-style ones
- โ Add support for OpenEXR and HDR textures
- ๐ Support line/point thickness in bam2egg
- bam2egg no longer inserts a vestigial ModelNode at the top
- โ bam2egg supports depth test, offset, cull bin attributes
- Accept a .gz file wherever a .pz file is accepted
- ๐ egg-palettize supports mirror and border-color wrap modes
- More robust checks against memory corruptions when loading bad .bam files
- ๐ Support for Maya 2017 and 2018
- ๐ Support preprocessing GLSL shaders created with Shader.make
๐ Build
- ๐ We now require using MSVC 2015 or 2017 to compile on Windows.
- At least GCC 4.8 is now required.
- With GCC/clang, enabling C++11 is now required.
- ๐ Allow building with more recent ffmpeg versions
- ๐ Support for old FFMpeg versions (before 1.1) dropped.
- ๐ท The ppremake build system has been removed.
- ๐ Support for OpenSSL versions before 0.9.7 has been dropped.
C++
- ๐ Use of NULL is replaced with nullptr
- ๐ WeakPointerTo now requires use of lock() method for thread safety
- Mutex et al now satisfy C++11 Lockable constraints
- Panda headers no longer contain
using namespace std;
- ๐ PN_int32 et al have been removed, use stdint.h types instead
- ๐ The need to link with pystub and add Python include dirs is removed.
-
v1.9.4 Changes
April 01, 2017๐ One of the bugfixes in the last 1.9.3 release introduced a regression,
๐ therefore it was decided to make another 1.9.x release.- ๐ Fix 1.9.3 regression with generating geometry in threaded pipeline
- โ Various compile warning fixes
- Fix occasional crash in PNMImage::quick_filter_from()
- ๐ Fix issue taking screenshots from an OpenGL FBO buffer
- ๐ Fix various issues with MeshDrawer
- ๐ Fix issue with collision sphere generation in bam2egg
- ๐ Fix compile errors with more obscure Python configurations
- Fix assert when using Texture.load_sub_image to load whole image
- ๐ Fix fsm FourState