Merge branch 'release/1.10.x'
This commit is contained in:
commit
0e41b62743
|
|
@ -386,9 +386,9 @@ jobs:
|
|||
shell: powershell
|
||||
run: |
|
||||
$wc = New-Object System.Net.WebClient
|
||||
$wc.DownloadFile("https://www.panda3d.org/download/panda3d-1.10.15/panda3d-1.10.15-tools-win64.zip", "thirdparty-tools.zip")
|
||||
$wc.DownloadFile("https://www.panda3d.org/download/panda3d-1.10.16/panda3d-1.10.16-tools-win64.zip", "thirdparty-tools.zip")
|
||||
Expand-Archive -Path thirdparty-tools.zip
|
||||
Move-Item -Path thirdparty-tools/panda3d-1.10.15/thirdparty -Destination .
|
||||
Move-Item -Path thirdparty-tools/panda3d-1.10.16/thirdparty -Destination .
|
||||
- name: Get thirdparty packages (macOS)
|
||||
if: runner.os == 'macOS'
|
||||
run: |
|
||||
|
|
|
|||
|
|
@ -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.15/panda3d-1.10.15-tools-win64.zip
|
||||
- https://www.panda3d.org/download/panda3d-1.10.15/panda3d-1.10.15-tools-win32.zip
|
||||
- https://www.panda3d.org/download/panda3d-1.10.16/panda3d-1.10.16-tools-win64.zip
|
||||
- https://www.panda3d.org/download/panda3d-1.10.16/panda3d-1.10.16-tools-win32.zip
|
||||
|
||||
After acquiring these dependencies, you can build Panda3D from the command
|
||||
prompt using the following command. Change the `--msvc-version` option based
|
||||
|
|
|
|||
|
|
@ -319,7 +319,10 @@ class build_apps(setuptools.Command):
|
|||
'win_amd64',
|
||||
]
|
||||
|
||||
if sys.version_info >= (3, 13):
|
||||
if sys.version_info >= (3, 14):
|
||||
# This version of Python is only available for 10.15+.
|
||||
self.platforms[1] = 'macosx_10_15_x86_64'
|
||||
elif sys.version_info >= (3, 13):
|
||||
# This version of Python is only available for 10.13+.
|
||||
self.platforms[1] = 'macosx_10_13_x86_64'
|
||||
|
||||
|
|
@ -707,8 +710,14 @@ class build_apps(setuptools.Command):
|
|||
subprocess.check_call([sys.executable, '-m', 'pip'] + pip_args)
|
||||
except:
|
||||
# Display a more helpful message for these common issues.
|
||||
if platform.startswith('macosx_10_9_') and sys.version_info >= (3, 13):
|
||||
new_platform = platform.replace('macosx_10_9_', 'macosx_10_13_')
|
||||
if platform.startswith('macosx_10_13_') and sys.version_info >= (3, 14):
|
||||
new_platform = platform.replace('macosx_10_13_', 'macosx_10_15_')
|
||||
self.announce('This error likely occurs because {} is not a supported target as of Python 3.14.\nChange the target platform to {} instead.'.format(platform, new_platform), distutils.log.ERROR)
|
||||
elif platform.startswith('macosx_10_9_') and sys.version_info >= (3, 13):
|
||||
if sys.version_info >= (3, 14):
|
||||
new_platform = platform.replace('macosx_10_9_', 'macosx_10_15_')
|
||||
else:
|
||||
new_platform = platform.replace('macosx_10_9_', 'macosx_10_13_')
|
||||
self.announce('This error likely occurs because {} is not a supported target as of Python 3.13.\nChange the target platform to {} instead.'.format(platform, new_platform), distutils.log.ERROR)
|
||||
elif platform.startswith('manylinux2010_') and sys.version_info >= (3, 11):
|
||||
new_platform = platform.replace('manylinux2010_', 'manylinux2014_')
|
||||
|
|
@ -717,7 +726,9 @@ class build_apps(setuptools.Command):
|
|||
new_platform = platform.replace('manylinux1_', 'manylinux2014_')
|
||||
self.announce('This error likely occurs because {} is not a supported target as of Python 3.10.\nChange the target platform to {} instead.'.format(platform, new_platform), distutils.log.ERROR)
|
||||
elif platform.startswith('macosx_10_6_') and sys.version_info >= (3, 8):
|
||||
if sys.version_info >= (3, 13):
|
||||
if sys.version_info >= (3, 14):
|
||||
new_platform = platform.replace('macosx_10_6_', 'macosx_10_15_')
|
||||
elif sys.version_info >= (3, 13):
|
||||
new_platform = platform.replace('macosx_10_6_', 'macosx_10_13_')
|
||||
else:
|
||||
new_platform = platform.replace('macosx_10_6_', 'macosx_10_9_')
|
||||
|
|
|
|||
|
|
@ -3517,6 +3517,7 @@ class ShowBase(DirectObject.DirectObject):
|
|||
remove_camera_frustum = removeCameraFrustum
|
||||
save_cube_map = saveCubeMap
|
||||
save_sphere_map = saveSphereMap
|
||||
user_exit = userExit
|
||||
start_wx = startWx
|
||||
start_tk = startTk
|
||||
start_direct = startDirect
|
||||
|
|
|
|||
|
|
@ -1,3 +1,31 @@
|
|||
----------------------- RELEASE 1.10.16 -----------------------
|
||||
|
||||
This maintenance release fixes some minor defects and stability issues.
|
||||
|
||||
* OpenAL: Support non-default coordinate systems when playing 3D audio
|
||||
* Tasks: Coroutine detect now also handles coroutine subclass to support Nuitka
|
||||
* Tasks: Now properly handles generators without send()
|
||||
* Windows: Fixes a hang when adjusting Z-order in some situations
|
||||
* Fix SparseArray methods get_lowest_off_bit() and get_lowest_on_bit()
|
||||
* Fix linecache error when distributing for newer Python versions
|
||||
* Fix `await AsyncFuture.gather()` returning first item instead of tuple (#1738)
|
||||
* Fix use-after-free in collision system with transform cache disabled (#1733)
|
||||
* Egg: Add limited forward compatibility for metallic-roughness textures
|
||||
* OpenGL: fix error blitting depth texture on macOS (#1719)
|
||||
* OpenGL: fix SSBO support not being detected in certain situations
|
||||
* GLSL: Add p3d_MetallicRoughnessTexture input mapped to M_metallic_roughness
|
||||
* X11: Add config variable to enable detection of autorepeat key events (#1735)
|
||||
* GUI: Fix bug with PGSliderBar dragging (#1722)
|
||||
* Minor thread safety things for free-threaded Python builds
|
||||
* Add forward compatibility for bam version 6.46
|
||||
* Fixes a harmless buffer overflow in pdtoa
|
||||
* Fix compilation issues with SDL version of tinydisplay (#1708)
|
||||
* bam2egg: Fix issue when having more than two tags (#1725)
|
||||
* Fix "Detected leak for ... which interrogate cannot delete." error (#1743)
|
||||
* Fix PythonCallbackObject crash upon destruction in some cases
|
||||
* PStats: Fix crash when receiving frames out of order
|
||||
* PandaFramework::close_framework() now clears task manager of tasks
|
||||
|
||||
----------------------- RELEASE 1.10.15 -----------------------
|
||||
|
||||
This release adds support for Python 3.13, and fixes some significant bugs.
|
||||
|
|
|
|||
|
|
@ -381,6 +381,7 @@ SectionGroup "Python modules" SecGroupPython
|
|||
!insertmacro PyBindingSection 3.12-32 .cp312-win32.pyd
|
||||
!insertmacro PyBindingSection 3.13-32 .cp313-win32.pyd
|
||||
!insertmacro PyBindingSection 3.14-32 .cp314-win32.pyd
|
||||
!insertmacro PyBindingSection 3.15-32 .cp315-win32.pyd
|
||||
!else
|
||||
!insertmacro PyBindingSection 3.5 .cp35-win_amd64.pyd
|
||||
!insertmacro PyBindingSection 3.6 .cp36-win_amd64.pyd
|
||||
|
|
@ -392,6 +393,7 @@ SectionGroup "Python modules" SecGroupPython
|
|||
!insertmacro PyBindingSection 3.12 .cp312-win_amd64.pyd
|
||||
!insertmacro PyBindingSection 3.13 .cp313-win_amd64.pyd
|
||||
!insertmacro PyBindingSection 3.14 .cp314-win_amd64.pyd
|
||||
!insertmacro PyBindingSection 3.15 .cp315-win_amd64.pyd
|
||||
!endif
|
||||
SectionGroupEnd
|
||||
|
||||
|
|
@ -504,6 +506,7 @@ Function .onInit
|
|||
!insertmacro MaybeEnablePyBindingSection 3.12-32
|
||||
!insertmacro MaybeEnablePyBindingSection 3.13-32
|
||||
!insertmacro MaybeEnablePyBindingSection 3.14-32
|
||||
!insertmacro MaybeEnablePyBindingSection 3.15-32
|
||||
${EndIf}
|
||||
!else
|
||||
!insertmacro MaybeEnablePyBindingSection 3.5
|
||||
|
|
@ -517,6 +520,7 @@ Function .onInit
|
|||
!insertmacro MaybeEnablePyBindingSection 3.12
|
||||
!insertmacro MaybeEnablePyBindingSection 3.13
|
||||
!insertmacro MaybeEnablePyBindingSection 3.14
|
||||
!insertmacro MaybeEnablePyBindingSection 3.15
|
||||
${EndIf}
|
||||
!endif
|
||||
|
||||
|
|
@ -546,6 +550,10 @@ Function .onInit
|
|||
SectionSetFlags ${SecPyBindings3.14} ${SF_RO}
|
||||
SectionSetInstTypes ${SecPyBindings3.14} 0
|
||||
!endif
|
||||
!ifdef SecPyBindings3.15
|
||||
SectionSetFlags ${SecPyBindings3.15} ${SF_RO}
|
||||
SectionSetInstTypes ${SecPyBindings3.15} 0
|
||||
!endif
|
||||
${EndUnless}
|
||||
FunctionEnd
|
||||
|
||||
|
|
@ -851,6 +859,7 @@ Section Uninstall
|
|||
!insertmacro RemovePythonPath 3.12-32
|
||||
!insertmacro RemovePythonPath 3.13-32
|
||||
!insertmacro RemovePythonPath 3.14-32
|
||||
!insertmacro RemovePythonPath 3.15-32
|
||||
!else
|
||||
!insertmacro RemovePythonPath 3.5
|
||||
!insertmacro RemovePythonPath 3.6
|
||||
|
|
@ -862,6 +871,7 @@ Section Uninstall
|
|||
!insertmacro RemovePythonPath 3.12
|
||||
!insertmacro RemovePythonPath 3.13
|
||||
!insertmacro RemovePythonPath 3.14
|
||||
!insertmacro RemovePythonPath 3.15
|
||||
!endif
|
||||
|
||||
SetDetailsPrint both
|
||||
|
|
@ -934,6 +944,7 @@ SectionEnd
|
|||
!insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.12-32} $(DESC_SecPyBindings3.12-32)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.13-32} $(DESC_SecPyBindings3.13-32)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.14-32} $(DESC_SecPyBindings3.14-32)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.15-32} $(DESC_SecPyBindings3.15-32)
|
||||
!else
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.5} $(DESC_SecPyBindings3.5)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.6} $(DESC_SecPyBindings3.6)
|
||||
|
|
@ -945,6 +956,7 @@ SectionEnd
|
|||
!insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.12} $(DESC_SecPyBindings3.12)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.13} $(DESC_SecPyBindings3.13)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.14} $(DESC_SecPyBindings3.14)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecPyBindings3.15} $(DESC_SecPyBindings3.15)
|
||||
!endif
|
||||
!ifdef INCLUDE_PYVER
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecPython} $(DESC_SecPython)
|
||||
|
|
|
|||
|
|
@ -373,7 +373,7 @@ gather(PyObject *args) {
|
|||
futures.push_back(fut);
|
||||
continue;
|
||||
}
|
||||
} else if (PyCoro_CheckExact(item)) {
|
||||
} else if (PyObject_TypeCheck(item, &PyCoro_Type)) {
|
||||
// We allow passing in a coroutine instead of a future. This causes it
|
||||
// to be scheduled as a task on the current task manager.
|
||||
PT(AsyncTask) task = new PythonTask(item);
|
||||
|
|
|
|||
|
|
@ -53,12 +53,10 @@ PythonTask(PyObject *func_or_coro, const std::string &name) :
|
|||
if (func_or_coro == Py_None || PyCallable_Check(func_or_coro)) {
|
||||
_function = Py_NewRef(func_or_coro);
|
||||
}
|
||||
else if (PyCoro_CheckExact(func_or_coro)) {
|
||||
// We also allow passing in a coroutine, because why not.
|
||||
_generator = Py_NewRef(func_or_coro);
|
||||
}
|
||||
else if (PyGen_CheckExact(func_or_coro)) {
|
||||
// Something emulating a coroutine.
|
||||
else if (PyCoro_CheckExact(func_or_coro) ||
|
||||
PyGen_CheckExact(func_or_coro) ||
|
||||
PyType_IsSubtype(Py_TYPE(func_or_coro), &PyCoro_Type)) {
|
||||
// We also allow passing in a coroutine or something emulating it.
|
||||
_generator = Py_NewRef(func_or_coro);
|
||||
}
|
||||
else {
|
||||
|
|
@ -620,7 +618,7 @@ do_python_task() {
|
|||
Py_DECREF(str);
|
||||
Py_DECREF(str2);
|
||||
}
|
||||
if (PyCoro_CheckExact(result)) {
|
||||
if (PyObject_TypeCheck(result, &PyCoro_Type)) {
|
||||
// If a coroutine, am_await is possible but senseless, since we can
|
||||
// just call send(None) on the coroutine itself.
|
||||
_generator = result;
|
||||
|
|
@ -747,7 +745,7 @@ do_python_task() {
|
|||
}
|
||||
|
||||
} else if (result == Py_None) {
|
||||
// Bare yield means to continue next frame.
|
||||
// Bare yield from a coroutine means to continue next frame.
|
||||
Py_DECREF(result);
|
||||
return DS_cont;
|
||||
|
||||
|
|
|
|||
|
|
@ -693,6 +693,11 @@ advance_scroll() {
|
|||
*/
|
||||
void PGSliderBar::
|
||||
advance_page() {
|
||||
// Do not try to advance the page while dragging
|
||||
if (_dragging) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Is the mouse position left or right of the current thumb position?
|
||||
LPoint3 mouse = mouse_to_local(_mouse_pos) - _thumb_start;
|
||||
PN_stdfloat target_ratio = mouse.dot(_axis) / _range_x;
|
||||
|
|
@ -705,7 +710,7 @@ advance_page() {
|
|||
t = min(_ratio + _page_ratio - _scroll_ratio, target_ratio);
|
||||
}
|
||||
internal_set_ratio(t);
|
||||
if (t == target_ratio) {
|
||||
if (_ratio == target_ratio) {
|
||||
// We made it; begin dragging from now on until the user releases the
|
||||
// mouse.
|
||||
begin_drag();
|
||||
|
|
|
|||
|
|
@ -2755,7 +2755,7 @@ enable_detectable_auto_repeat() {
|
|||
if (!x_detectable_auto_repeat) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Bool supported;
|
||||
if (XkbSetDetectableAutoRepeat(_display, True, &supported)) {
|
||||
x11display_cat.info() << "Detectable auto-repeat enabled.\n";
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <fcntl.h>
|
||||
#include <time.h>
|
||||
|
||||
#include <locale.h>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue