mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-01 01:07:51 -04:00
Merge branch 'release/1.10.x'
This commit is contained in:
commit
2e9395b766
@ -24,7 +24,7 @@ Installing Panda3D
|
|||||||
==================
|
==================
|
||||||
|
|
||||||
The latest Panda3D SDK can be downloaded from
|
The latest Panda3D SDK can be downloaded from
|
||||||
[this page](https://www.panda3d.org/download/sdk-1-10-2/).
|
[this page](https://www.panda3d.org/download/sdk-1-10-3/).
|
||||||
If you are familiar with installing Python packages, you can use
|
If you are familiar with installing Python packages, you can use
|
||||||
the following comand:
|
the following comand:
|
||||||
|
|
||||||
@ -64,8 +64,8 @@ depending on whether you are on a 32-bit or 64-bit system, or you can
|
|||||||
[click here](https://github.com/rdb/panda3d-thirdparty) for instructions on
|
[click here](https://github.com/rdb/panda3d-thirdparty) for instructions on
|
||||||
building them from source.
|
building them from source.
|
||||||
|
|
||||||
https://www.panda3d.org/download/panda3d-1.10.2/panda3d-1.10.2-tools-win64.zip
|
https://www.panda3d.org/download/panda3d-1.10.3/panda3d-1.10.3-tools-win64.zip
|
||||||
https://www.panda3d.org/download/panda3d-1.10.2/panda3d-1.10.2-tools-win32.zip
|
https://www.panda3d.org/download/panda3d-1.10.3/panda3d-1.10.3-tools-win32.zip
|
||||||
|
|
||||||
After acquiring these dependencies, you may simply build Panda3D from the
|
After acquiring these dependencies, you may simply build Panda3D from the
|
||||||
command prompt using the following command. (Change `14.1` to `14` if you are
|
command prompt using the following command. (Change `14.1` to `14` if you are
|
||||||
@ -135,7 +135,7 @@ macOS
|
|||||||
-----
|
-----
|
||||||
|
|
||||||
On macOS, you will need to download a set of precompiled thirdparty packages in order to
|
On macOS, you will need to download a set of precompiled thirdparty packages in order to
|
||||||
compile Panda3D, which can be acquired from [here](https://www.panda3d.org/download/panda3d-1.10.2/panda3d-1.10.2-tools-mac.tar.gz).
|
compile Panda3D, which can be acquired from [here](https://www.panda3d.org/download/panda3d-1.10.3/panda3d-1.10.3-tools-mac.tar.gz).
|
||||||
|
|
||||||
After placing the thirdparty directory inside the panda3d source directory,
|
After placing the thirdparty directory inside the panda3d source directory,
|
||||||
you may build Panda3D using a command like the following:
|
you may build Panda3D using a command like the following:
|
||||||
|
@ -239,7 +239,7 @@ class FilterManager(DirectObject):
|
|||||||
|
|
||||||
return quad
|
return quad
|
||||||
|
|
||||||
def renderQuadInto(self, name="filter-stage", mul=1, div=1, align=1, depthtex=None, colortex=None, auxtex0=None, auxtex1=None):
|
def renderQuadInto(self, name="filter-stage", mul=1, div=1, align=1, depthtex=None, colortex=None, auxtex0=None, auxtex1=None, fbprops=None):
|
||||||
|
|
||||||
""" Creates an offscreen buffer for an intermediate
|
""" Creates an offscreen buffer for an intermediate
|
||||||
computation. Installs a quad into the buffer. Returns
|
computation. Installs a quad into the buffer. Returns
|
||||||
@ -253,7 +253,10 @@ class FilterManager(DirectObject):
|
|||||||
|
|
||||||
depthbits = bool(depthtex != None)
|
depthbits = bool(depthtex != None)
|
||||||
|
|
||||||
buffer = self.createBuffer(name, winx, winy, texgroup, depthbits)
|
if fbprops is not None:
|
||||||
|
buffer = self.createBuffer(name, winx, winy, texgroup, depthbits, fbprops=fbprops)
|
||||||
|
else:
|
||||||
|
buffer = self.createBuffer(name, winx, winy, texgroup, depthbits)
|
||||||
|
|
||||||
if (buffer == None):
|
if (buffer == None):
|
||||||
return None
|
return None
|
||||||
|
@ -1679,16 +1679,18 @@ class ShowBase(DirectObject.DirectObject):
|
|||||||
return self.mouseWatcherNode.getModifierButtons().isDown(
|
return self.mouseWatcherNode.getModifierButtons().isDown(
|
||||||
KeyboardButton.meta())
|
KeyboardButton.meta())
|
||||||
|
|
||||||
def attachInputDevice(self, device, prefix=None, gui=False):
|
def attachInputDevice(self, device, prefix=None, watch=False):
|
||||||
"""
|
"""
|
||||||
This function attaches an input device to the data graph, which will
|
This function attaches an input device to the data graph, which will
|
||||||
cause the device to be polled and generate events. If a prefix is
|
cause the device to be polled and generate events. If a prefix is
|
||||||
given and not None, it is used to prefix events generated by this
|
given and not None, it is used to prefix events generated by this
|
||||||
device, separated by a hyphen.
|
device, separated by a hyphen.
|
||||||
|
|
||||||
The gui argument can be set to True (as of Panda3D 1.10.3) to set up
|
The watch argument can be set to True (as of Panda3D 1.10.3) to set up
|
||||||
the default MouseWatcher to receive inputs from this device, allowing
|
the default MouseWatcher to receive inputs from this device, allowing
|
||||||
it to control user interfaces.
|
it to be polled via mouseWatcherNode and control user interfaces.
|
||||||
|
Setting this to True will also make it generate unprefixed events,
|
||||||
|
regardless of the specified prefix.
|
||||||
|
|
||||||
If you call this, you should consider calling detachInputDevice when
|
If you call this, you should consider calling detachInputDevice when
|
||||||
you are done with the device or when it is disconnected.
|
you are done with the device or when it is disconnected.
|
||||||
@ -1700,7 +1702,7 @@ class ShowBase(DirectObject.DirectObject):
|
|||||||
idn = self.dataRoot.attachNewNode(InputDeviceNode(device, device.name))
|
idn = self.dataRoot.attachNewNode(InputDeviceNode(device, device.name))
|
||||||
|
|
||||||
# Setup the button thrower to generate events for the device.
|
# Setup the button thrower to generate events for the device.
|
||||||
if prefix is not None or not gui:
|
if prefix is not None or not watch:
|
||||||
bt = idn.attachNewNode(ButtonThrower(device.name))
|
bt = idn.attachNewNode(ButtonThrower(device.name))
|
||||||
if prefix is not None:
|
if prefix is not None:
|
||||||
bt.node().setPrefix(prefix + '-')
|
bt.node().setPrefix(prefix + '-')
|
||||||
@ -1709,7 +1711,7 @@ class ShowBase(DirectObject.DirectObject):
|
|||||||
assert self.notify.debug("Attached input device {0} with prefix {1}".format(device, prefix))
|
assert self.notify.debug("Attached input device {0} with prefix {1}".format(device, prefix))
|
||||||
self.__inputDeviceNodes[device] = idn
|
self.__inputDeviceNodes[device] = idn
|
||||||
|
|
||||||
if gui:
|
if watch:
|
||||||
idn.node().addChild(self.mouseWatcherNode)
|
idn.node().addChild(self.mouseWatcherNode)
|
||||||
|
|
||||||
def detachInputDevice(self, device):
|
def detachInputDevice(self, device):
|
||||||
|
@ -1,3 +1,40 @@
|
|||||||
|
------------------------ RELEASE 1.10.3 -----------------------
|
||||||
|
|
||||||
|
This is another bugfix release that addresses a variety of issues
|
||||||
|
in 1.10.2 and further improves the stability.
|
||||||
|
|
||||||
|
* 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
|
||||||
|
|
||||||
------------------------ RELEASE 1.10.2 -----------------------
|
------------------------ RELEASE 1.10.2 -----------------------
|
||||||
|
|
||||||
This release fixes several more bugs, including a few regressions
|
This release fixes several more bugs, including a few regressions
|
||||||
|
@ -359,6 +359,20 @@ do_transform_changed() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void BulletRigidBodyNode::
|
||||||
|
parents_changed() {
|
||||||
|
|
||||||
|
if (_motion.sync_disabled()) return;
|
||||||
|
|
||||||
|
if (get_num_parents() > 0) {
|
||||||
|
LightMutexHolder holder(BulletWorld::get_global_lock());
|
||||||
|
do_transform_changed();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -112,6 +112,7 @@ public:
|
|||||||
void do_sync_b2p();
|
void do_sync_b2p();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
virtual void parents_changed();
|
||||||
virtual void transform_changed();
|
virtual void transform_changed();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -755,7 +755,9 @@ do_poll() {
|
|||||||
PT(FfmpegBuffer) frame = do_alloc_frame();
|
PT(FfmpegBuffer) frame = do_alloc_frame();
|
||||||
nassertr(frame != nullptr, false);
|
nassertr(frame != nullptr, false);
|
||||||
_lock.release();
|
_lock.release();
|
||||||
advance_to_frame(seek_frame);
|
if (seek_frame != _begin_frame) {
|
||||||
|
advance_to_frame(seek_frame);
|
||||||
|
}
|
||||||
if (_frame_ready) {
|
if (_frame_ready) {
|
||||||
export_frame(frame);
|
export_frame(frame);
|
||||||
_lock.acquire();
|
_lock.acquire();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user