diff --git a/direct/src/dist/FreezeTool.py b/direct/src/dist/FreezeTool.py index a39260d60b..db22e9bf02 100644 --- a/direct/src/dist/FreezeTool.py +++ b/direct/src/dist/FreezeTool.py @@ -91,6 +91,8 @@ ignoreImports = { 'toml.encoder': ['numpy'], 'py._builtin': ['__builtin__'], + + 'site': ['android_log'], } if sys.version_info >= (3, 8): diff --git a/direct/src/dist/commands.py b/direct/src/dist/commands.py index 3a0006de06..4a628d292d 100644 --- a/direct/src/dist/commands.py +++ b/direct/src/dist/commands.py @@ -263,7 +263,7 @@ class build_apps(setuptools.Command): self.exclude_modules = {} self.icons = {} self.platforms = [ - 'manylinux2010_x86_64', + 'manylinux2014_x86_64', 'macosx_10_9_x86_64', 'win_amd64', ] @@ -588,7 +588,7 @@ class build_apps(setuptools.Command): if platform.startswith('linux_'): # Also accept manylinux. arch = platform[6:] - pip_args += ['--platform', 'manylinux2010_' + arch] + pip_args += ['--platform', 'manylinux2014_' + arch] if self.use_optimized_wheels: pip_args += [ @@ -1594,6 +1594,20 @@ class bdist_apps(setuptools.Command): 'manylinux1_i686': ['gztar'], 'manylinux2010_x86_64': ['gztar'], 'manylinux2010_i686': ['gztar'], + 'manylinux2014_x86_64': ['gztar'], + 'manylinux2014_i686': ['gztar'], + 'manylinux2014_aarch64': ['gztar'], + 'manylinux2014_armv7l': ['gztar'], + 'manylinux2014_ppc64': ['gztar'], + 'manylinux2014_ppc64le': ['gztar'], + 'manylinux2014_s390x': ['gztar'], + 'manylinux_2_24_x86_64': ['gztar'], + 'manylinux_2_24_i686': ['gztar'], + 'manylinux_2_24_aarch64': ['gztar'], + 'manylinux_2_24_armv7l': ['gztar'], + 'manylinux_2_24_ppc64': ['gztar'], + 'manylinux_2_24_ppc64le': ['gztar'], + 'manylinux_2_24_s390x': ['gztar'], 'android': ['aab'], # Everything else defaults to ['zip'] } diff --git a/direct/src/showbase/JobManager.py b/direct/src/showbase/JobManager.py index 609d6f09c4..68bcbd0e32 100755 --- a/direct/src/showbase/JobManager.py +++ b/direct/src/showbase/JobManager.py @@ -1,4 +1,4 @@ -from panda3d.core import ConfigVariableBool, ConfigVariableDouble +from panda3d.core import ConfigVariableBool, ConfigVariableDouble, ClockObject from direct.directnotify.DirectNotifyGlobal import directNotify from direct.task.TaskManagerGlobal import taskMgr from direct.showbase.Job import Job diff --git a/direct/src/showbase/ShowBase.py b/direct/src/showbase/ShowBase.py index b66832403c..5002ddd824 100644 --- a/direct/src/showbase/ShowBase.py +++ b/direct/src/showbase/ShowBase.py @@ -19,7 +19,9 @@ Built-in global variables Some key variables used in all Panda3D scripts are actually attributes of the ShowBase instance. When creating an instance of this class, it will write many of these variables to the built-in scope of the Python interpreter, so that -they are accessible to any Python module, without the need fors extra imports. +they are accessible to any Python module, without the need for extra imports. +For example, the ShowBase instance itself is accessible anywhere through the +:data:`~builtins.base` variable. While these are handy for prototyping, we do not recommend using them in bigger projects, as it can make the code confusing to read to other Python developers, diff --git a/makepanda/installpanda.py b/makepanda/installpanda.py index 4a8b7df979..1c57b32b53 100644 --- a/makepanda/installpanda.py +++ b/makepanda/installpanda.py @@ -137,6 +137,9 @@ def GetLibDir(): if os.path.isfile('/etc/debian_version'): return GetDebLibDir() + elif os.path.isfile('/etc/arch-release'): + # ArchLinux has lib64, but it is a symlink to lib. + return "lib" else: # Okay, maybe we're on an RPM-based system? return GetRPMLibDir() diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index 40e0932b7d..cd30216c93 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -417,6 +417,8 @@ elif target == 'linux' and (os.path.isfile("/lib/libc-2.5.so") or os.path.isfile # This is manylinux1. A bit of a sloppy check, though. if GetTargetArch() in ('x86_64', 'amd64'): PLATFORM = 'manylinux1-x86_64' + elif GetTargetArch() in ('arm64', 'aarch64'): + PLATFORM = 'manylinux1-aarch64' else: PLATFORM = 'manylinux1-i686' @@ -424,6 +426,8 @@ elif target == 'linux' and (os.path.isfile("/lib/libc-2.12.so") or os.path.isfil # Same sloppy check for manylinux2010. if GetTargetArch() in ('x86_64', 'amd64'): PLATFORM = 'manylinux2010-x86_64' + elif GetTargetArch() in ('arm64', 'aarch64'): + PLATFORM = 'manylinux2010-aarch64' else: PLATFORM = 'manylinux2010-i686' @@ -431,6 +435,8 @@ elif target == 'linux' and (os.path.isfile("/lib/libc-2.17.so") or os.path.isfil # Same sloppy check for manylinux2014. if GetTargetArch() in ('x86_64', 'amd64'): PLATFORM = 'manylinux2014-x86_64' + elif GetTargetArch() in ('arm64', 'aarch64'): + PLATFORM = 'manylinux2014-aarch64' else: PLATFORM = 'manylinux2014-i686' @@ -438,6 +444,8 @@ elif target == 'linux' and (os.path.isfile("/lib/i386-linux-gnu/libc-2.24.so") o # Same sloppy check for manylinux_2_24. if GetTargetArch() in ('x86_64', 'amd64'): PLATFORM = 'manylinux_2_24-x86_64' + elif GetTargetArch() in ('arm64', 'aarch64'): + PLATFORM = 'manylinux_2_24-aarch64' else: PLATFORM = 'manylinux_2_24-i686' diff --git a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx index 61480ec021..11d66699c0 100644 --- a/panda/src/glstuff/glGraphicsStateGuardian_src.cxx +++ b/panda/src/glstuff/glGraphicsStateGuardian_src.cxx @@ -849,12 +849,6 @@ reset() { Geom::GR_line_strip | Geom::GR_flat_last_vertex; -#ifndef OPENGLES - if (_supports_geometry_shaders) { - _supported_geom_rendering |= Geom::GR_adjacency; - } -#endif - _supports_point_parameters = false; #ifdef OPENGLES_1 @@ -1797,6 +1791,10 @@ reset() { _supports_geometry_shaders = false; _glFramebufferTexture = nullptr; } + + if (_supports_geometry_shaders) { + _supported_geom_rendering |= Geom::GR_adjacency; + } #endif _shader_caps._supports_glsl = _supports_glsl; diff --git a/panda/src/windisplay/winGraphicsWindow.cxx b/panda/src/windisplay/winGraphicsWindow.cxx index 0dc20696d1..ceef979b75 100644 --- a/panda/src/windisplay/winGraphicsWindow.cxx +++ b/panda/src/windisplay/winGraphicsWindow.cxx @@ -287,6 +287,17 @@ process_events() { */ void WinGraphicsWindow:: set_properties_now(WindowProperties &properties) { + if (properties.has_fullscreen() && !properties.get_fullscreen() && + is_fullscreen()) { + if (do_windowed_switch()) { + _properties.set_fullscreen(false); + properties.clear_fullscreen(); + } else { + windisplay_cat.warning() + << "Switching to windowed mode failed!\n"; + } + } + GraphicsWindow::set_properties_now(properties); if (!properties.is_any_specified()) { // The base class has already handled this case. @@ -441,14 +452,6 @@ set_properties_now(WindowProperties &properties) { windisplay_cat.warning() << "Switching to fullscreen mode failed!\n"; } - } else if (!properties.get_fullscreen() && is_fullscreen()){ - if (do_windowed_switch()){ - _properties.set_fullscreen(false); - properties.clear_fullscreen(); - } else { - windisplay_cat.warning() - << "Switching to windowed mode failed!\n"; - } } }