mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -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
|
||||
[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
|
||||
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
|
||||
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.2/panda3d-1.10.2-tools-win32.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.3/panda3d-1.10.3-tools-win32.zip
|
||||
|
||||
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
|
||||
@ -135,7 +135,7 @@ macOS
|
||||
-----
|
||||
|
||||
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,
|
||||
you may build Panda3D using a command like the following:
|
||||
|
@ -239,7 +239,7 @@ class FilterManager(DirectObject):
|
||||
|
||||
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
|
||||
computation. Installs a quad into the buffer. Returns
|
||||
@ -253,7 +253,10 @@ class FilterManager(DirectObject):
|
||||
|
||||
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):
|
||||
return None
|
||||
|
@ -1679,16 +1679,18 @@ class ShowBase(DirectObject.DirectObject):
|
||||
return self.mouseWatcherNode.getModifierButtons().isDown(
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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))
|
||||
|
||||
# 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))
|
||||
if prefix is not None:
|
||||
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))
|
||||
self.__inputDeviceNodes[device] = idn
|
||||
|
||||
if gui:
|
||||
if watch:
|
||||
idn.node().addChild(self.mouseWatcherNode)
|
||||
|
||||
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 -----------------------
|
||||
|
||||
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();
|
||||
|
||||
protected:
|
||||
virtual void parents_changed();
|
||||
virtual void transform_changed();
|
||||
|
||||
private:
|
||||
|
@ -755,7 +755,9 @@ do_poll() {
|
||||
PT(FfmpegBuffer) frame = do_alloc_frame();
|
||||
nassertr(frame != nullptr, false);
|
||||
_lock.release();
|
||||
advance_to_frame(seek_frame);
|
||||
if (seek_frame != _begin_frame) {
|
||||
advance_to_frame(seek_frame);
|
||||
}
|
||||
if (_frame_ready) {
|
||||
export_frame(frame);
|
||||
_lock.acquire();
|
||||
|
Loading…
x
Reference in New Issue
Block a user