Browse Source

Merge branch 'release/1.10.x' into incoming

rdb 4 years ago
parent
commit
fc625eec11

+ 23 - 23
.github/workflows/ci.yml

@@ -40,7 +40,7 @@ jobs:
           eigen: NO
           eigen: NO
 
 
         - profile: macos-eigen-coverage-unity-xcode
         - profile: macos-eigen-coverage-unity-xcode
-          os: macOS-latest
+          os: macOS-10.15
           config: Coverage
           config: Coverage
           unity: YES
           unity: YES
           generator: Xcode
           generator: Xcode
@@ -50,7 +50,7 @@ jobs:
           eigen: YES
           eigen: YES
 
 
         - profile: macos-nometa-standard-makefile
         - profile: macos-nometa-standard-makefile
-          os: macOS-latest
+          os: macOS-10.15
           config: Standard
           config: Standard
           unity: NO
           unity: NO
           generator: Unix Makefiles
           generator: Unix Makefiles
@@ -92,10 +92,10 @@ jobs:
     - name: Install dependencies (macOS)
     - name: Install dependencies (macOS)
       if: runner.os == 'macOS'
       if: runner.os == 'macOS'
       run: |
       run: |
-        curl -O https://www.panda3d.org/download/panda3d-1.10.9/panda3d-1.10.9-tools-mac.tar.gz
-        tar -xf panda3d-1.10.9-tools-mac.tar.gz
-        mv panda3d-1.10.9/thirdparty thirdparty
-        rmdir panda3d-1.10.9
+        curl -O https://www.panda3d.org/download/panda3d-1.10.10/panda3d-1.10.10-tools-mac.tar.gz
+        tar -xf panda3d-1.10.10-tools-mac.tar.gz
+        mv panda3d-1.10.10/thirdparty thirdparty
+        rmdir panda3d-1.10.10
 
 
         # Temporary hack so that pzip can run, since we are about to remove Cg anyway.
         # Temporary hack so that pzip can run, since we are about to remove Cg anyway.
         install_name_tool -id "$(pwd)/thirdparty/darwin-libs-a/nvidiacg/lib/libCg.dylib" thirdparty/darwin-libs-a/nvidiacg/lib/libCg.dylib
         install_name_tool -id "$(pwd)/thirdparty/darwin-libs-a/nvidiacg/lib/libCg.dylib" thirdparty/darwin-libs-a/nvidiacg/lib/libCg.dylib
@@ -124,16 +124,16 @@ jobs:
       uses: actions/cache@v1
       uses: actions/cache@v1
       with:
       with:
         path: thirdparty
         path: thirdparty
-        key: ci-cmake-${{ runner.OS }}-thirdparty-v1.10.9-r1
+        key: ci-cmake-${{ runner.OS }}-thirdparty-v1.10.10-r1
     - name: Install dependencies (Windows)
     - name: Install dependencies (Windows)
       if: runner.os == 'Windows'
       if: runner.os == 'Windows'
       shell: powershell
       shell: powershell
       run: |
       run: |
         if (!(Test-Path thirdparty/win-libs-vc14-x64)) {
         if (!(Test-Path thirdparty/win-libs-vc14-x64)) {
           $wc = New-Object System.Net.WebClient
           $wc = New-Object System.Net.WebClient
-          $wc.DownloadFile("https://www.panda3d.org/download/panda3d-1.10.9/panda3d-1.10.9-tools-win64.zip", "thirdparty-tools.zip")
+          $wc.DownloadFile("https://www.panda3d.org/download/panda3d-1.10.10/panda3d-1.10.10-tools-win64.zip", "thirdparty-tools.zip")
           Expand-Archive -Path thirdparty-tools.zip
           Expand-Archive -Path thirdparty-tools.zip
-          Move-Item -Path thirdparty-tools/panda3d-1.10.9/thirdparty -Destination .
+          Move-Item -Path thirdparty-tools/panda3d-1.10.10/thirdparty -Destination .
         }
         }
 
 
     - name: ccache (non-Windows)
     - name: ccache (non-Windows)
@@ -186,7 +186,7 @@ jobs:
 
 
     - name: Setup Python (Python 3.6)
     - name: Setup Python (Python 3.6)
       if: contains(matrix.python, 'YES')
       if: contains(matrix.python, 'YES')
-      uses: actions/setup-python@v1
+      uses: actions/setup-python@v2
       with:
       with:
         python-version: 3.6
         python-version: 3.6
     - name: Configure (Python 3.6)
     - name: Configure (Python 3.6)
@@ -218,7 +218,7 @@ jobs:
 
 
     - name: Setup Python (Python 3.7)
     - name: Setup Python (Python 3.7)
       if: contains(matrix.python, 'YES')
       if: contains(matrix.python, 'YES')
-      uses: actions/setup-python@v1
+      uses: actions/setup-python@v2
       with:
       with:
         python-version: 3.7
         python-version: 3.7
     - name: Configure (Python 3.7)
     - name: Configure (Python 3.7)
@@ -250,7 +250,7 @@ jobs:
 
 
     - name: Setup Python (Python 3.8)
     - name: Setup Python (Python 3.8)
       if: contains(matrix.python, 'YES')
       if: contains(matrix.python, 'YES')
-      uses: actions/setup-python@v1
+      uses: actions/setup-python@v2
       with:
       with:
         python-version: 3.8
         python-version: 3.8
     - name: Configure (Python 3.8)
     - name: Configure (Python 3.8)
@@ -282,7 +282,7 @@ jobs:
 
 
     - name: Setup Python (Python 3.9)
     - name: Setup Python (Python 3.9)
       if: contains(matrix.python, 'YES')
       if: contains(matrix.python, 'YES')
-      uses: actions/setup-python@v1
+      uses: actions/setup-python@v2
       with:
       with:
         python-version: 3.9
         python-version: 3.9
     - name: Configure (Python 3.9)
     - name: Configure (Python 3.9)
@@ -333,7 +333,7 @@ jobs:
     if: "!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[ci skip]')"
     if: "!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[ci skip]')"
     strategy:
     strategy:
       matrix:
       matrix:
-        os: [ubuntu-18.04, windows-2016, macOS-latest]
+        os: [ubuntu-18.04, windows-2016, macOS-10.15]
     runs-on: ${{ matrix.os }}
     runs-on: ${{ matrix.os }}
     steps:
     steps:
     - uses: actions/checkout@v1
     - uses: actions/checkout@v1
@@ -347,19 +347,19 @@ jobs:
       shell: powershell
       shell: powershell
       run: |
       run: |
         $wc = New-Object System.Net.WebClient
         $wc = New-Object System.Net.WebClient
-        $wc.DownloadFile("https://www.panda3d.org/download/panda3d-1.10.9/panda3d-1.10.9-tools-win64.zip", "thirdparty-tools.zip")
+        $wc.DownloadFile("https://www.panda3d.org/download/panda3d-1.10.10/panda3d-1.10.10-tools-win64.zip", "thirdparty-tools.zip")
         Expand-Archive -Path thirdparty-tools.zip
         Expand-Archive -Path thirdparty-tools.zip
-        Move-Item -Path thirdparty-tools/panda3d-1.10.9/thirdparty -Destination .
+        Move-Item -Path thirdparty-tools/panda3d-1.10.10/thirdparty -Destination .
     - name: Get thirdparty packages (macOS)
     - name: Get thirdparty packages (macOS)
       if: runner.os == 'macOS'
       if: runner.os == 'macOS'
       run: |
       run: |
-        curl -O https://www.panda3d.org/download/panda3d-1.10.9/panda3d-1.10.9-tools-mac.tar.gz
-        tar -xf panda3d-1.10.9-tools-mac.tar.gz
-        mv panda3d-1.10.9/thirdparty thirdparty
-        rmdir panda3d-1.10.9
+        curl -O https://www.panda3d.org/download/panda3d-1.10.10/panda3d-1.10.10-tools-mac.tar.gz
+        tar -xf panda3d-1.10.10-tools-mac.tar.gz
+        mv panda3d-1.10.10/thirdparty thirdparty
+        rmdir panda3d-1.10.10
         (cd thirdparty/darwin-libs-a && rm -rf rocket)
         (cd thirdparty/darwin-libs-a && rm -rf rocket)
     - name: Set up Python 3.9
     - name: Set up Python 3.9
-      uses: actions/setup-python@v1
+      uses: actions/setup-python@v2
       with:
       with:
         python-version: 3.9
         python-version: 3.9
     - name: Build Python 3.9
     - name: Build Python 3.9
@@ -372,7 +372,7 @@ jobs:
         python -m pip install pytest
         python -m pip install pytest
         PYTHONPATH=built LD_LIBRARY_PATH=built/lib DYLD_LIBRARY_PATH=built/lib python -m pytest
         PYTHONPATH=built LD_LIBRARY_PATH=built/lib DYLD_LIBRARY_PATH=built/lib python -m pytest
     - name: Set up Python 3.8
     - name: Set up Python 3.8
-      uses: actions/setup-python@v1
+      uses: actions/setup-python@v2
       with:
       with:
         python-version: 3.8
         python-version: 3.8
     - name: Build Python 3.8
     - name: Build Python 3.8
@@ -385,7 +385,7 @@ jobs:
         python -m pip install pytest
         python -m pip install pytest
         PYTHONPATH=built LD_LIBRARY_PATH=built/lib DYLD_LIBRARY_PATH=built/lib python -m pytest
         PYTHONPATH=built LD_LIBRARY_PATH=built/lib DYLD_LIBRARY_PATH=built/lib python -m pytest
     - name: Set up Python 3.7
     - name: Set up Python 3.7
-      uses: actions/setup-python@v1
+      uses: actions/setup-python@v2
       with:
       with:
         python-version: 3.7
         python-version: 3.7
     - name: Build Python 3.7
     - name: Build Python 3.7

+ 6 - 6
README.md

@@ -52,8 +52,8 @@ Building Panda3D
 Windows
 Windows
 -------
 -------
 
 
-You can build Panda3D with the Microsoft Visual C++ 2015, 2017 or 2019 compiler,
-which can be downloaded for free from the [Visual Studio site](https://visualstudio.microsoft.com/downloads/).
+You can build Panda3D with the Microsoft Visual C++ 2015, 2017, 2019 or 2022
+compiler, which can be downloaded for free from the [Visual Studio site](https://visualstudio.microsoft.com/downloads/).
 You will also need to install the [Windows 10 SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk),
 You will also need to install the [Windows 10 SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk),
 and if you intend to target Windows Vista, you will also need the
 and if you intend to target Windows Vista, you will also need the
 [Windows 8.1 SDK](https://go.microsoft.com/fwlink/p/?LinkId=323507).
 [Windows 8.1 SDK](https://go.microsoft.com/fwlink/p/?LinkId=323507).
@@ -69,12 +69,12 @@ building them from source.
 
 
 After acquiring these dependencies, you can build Panda3D from the command
 After acquiring these dependencies, you can build Panda3D from the command
 prompt using the following command.  Change the `--msvc-version` option based
 prompt using the following command.  Change the `--msvc-version` option based
-on your version of Visual C++; 2019 is 14.2, 2017 is 14.1, and 2015 is 14.
-Remove the `--windows-sdk=10` option if you need to support Windows Vista,
-which requires the Windows 8.1 SDK.
+on your version of Visual C++; 2022 is 14.3, 2019 is 14.2, 2017 is 14.1, and
+2015 is 14.  Remove the `--windows-sdk=10` option if you need to support
+Windows Vista, which requires the Windows 8.1 SDK.
 
 
 ```bash
 ```bash
-makepanda\makepanda.bat --everything --installer --msvc-version=14.2 --windows-sdk=10 --no-eigen --threads=2
+makepanda\makepanda.bat --everything --installer --msvc-version=14.3 --windows-sdk=10 --no-eigen --threads=2
 ```
 ```
 
 
 When the build succeeds, it will produce an .exe file that you can use to
 When the build succeeds, it will produce an .exe file that you can use to

+ 2 - 2
makepanda/makepanda.py

@@ -153,7 +153,7 @@ def usage(problem):
     print("  --everything      (enable every third-party lib)")
     print("  --everything      (enable every third-party lib)")
     print("  --directx-sdk=X   (specify version of DirectX SDK to use: jun2010, aug2009)")
     print("  --directx-sdk=X   (specify version of DirectX SDK to use: jun2010, aug2009)")
     print("  --windows-sdk=X   (specify Windows SDK version, eg. 7.1, 8.1 or 10.  Default is 8.1)")
     print("  --windows-sdk=X   (specify Windows SDK version, eg. 7.1, 8.1 or 10.  Default is 8.1)")
-    print("  --msvc-version=X  (specify Visual C++ version, eg. 10, 11, 12, 14, 14.1, 14.2.  Default is 14)")
+    print("  --msvc-version=X  (specify Visual C++ version, eg. 10, 11, 12, 14, 14.1, 14.2, 14.3.  Default is 14)")
     print("  --use-icl         (experimental setting to use an intel compiler instead of MSVC on Windows)")
     print("  --use-icl         (experimental setting to use an intel compiler instead of MSVC on Windows)")
     print("")
     print("")
     print("The simplest way to compile panda is to just type:")
     print("The simplest way to compile panda is to just type:")
@@ -1043,7 +1043,7 @@ if (COMPILER=="GCC"):
             LibName(pkg, "-lDependEngine")
             LibName(pkg, "-lDependEngine")
             LibName(pkg, "-lCommandEngine")
             LibName(pkg, "-lCommandEngine")
             LibName(pkg, "-lFoundation")
             LibName(pkg, "-lFoundation")
-            if pkg != "MAYA2020":
+            if pkg not in ("MAYA2020", "MAYA2022"):
                 LibName(pkg, "-lIMFbase")
                 LibName(pkg, "-lIMFbase")
             if GetTarget() != 'darwin':
             if GetTarget() != 'darwin':
                 LibName(pkg, "-lOpenMayalib")
                 LibName(pkg, "-lOpenMayalib")

+ 3 - 1
makepanda/makepandacore.py

@@ -80,6 +80,7 @@ MSVCVERSIONINFO = {
     (14,0): {"vsversion":(14,0), "vsname":"Visual Studio 2015"},
     (14,0): {"vsversion":(14,0), "vsname":"Visual Studio 2015"},
     (14,1): {"vsversion":(15,0), "vsname":"Visual Studio 2017"},
     (14,1): {"vsversion":(15,0), "vsname":"Visual Studio 2017"},
     (14,2): {"vsversion":(16,0), "vsname":"Visual Studio 2019"},
     (14,2): {"vsversion":(16,0), "vsname":"Visual Studio 2019"},
+    (14,3): {"vsversion":(17,0), "vsname":"Visual Studio 2022"},
 }
 }
 
 
 ########################################################################
 ########################################################################
@@ -108,6 +109,7 @@ MAYAVERSIONINFO = [("MAYA6",   "6.0"),
                    ("MAYA2018","2018"),
                    ("MAYA2018","2018"),
                    ("MAYA2019","2019"),
                    ("MAYA2019","2019"),
                    ("MAYA2020","2020"),
                    ("MAYA2020","2020"),
+                   ("MAYA2022","2022"),
 ]
 ]
 
 
 MAXVERSIONINFO = [("MAX6", "SOFTWARE\\Autodesk\\3DSMAX\\6.0", "installdir", "maxsdk\\cssdk\\include"),
 MAXVERSIONINFO = [("MAX6", "SOFTWARE\\Autodesk\\3DSMAX\\6.0", "installdir", "maxsdk\\cssdk\\include"),
@@ -2402,7 +2404,7 @@ def SdkLocateMacOSX(archs = []):
         # Prefer pre-10.14 for now so that we can keep building FMOD.
         # Prefer pre-10.14 for now so that we can keep building FMOD.
         sdk_versions += ["10.13", "10.12", "10.11", "10.10", "10.9"]
         sdk_versions += ["10.13", "10.12", "10.11", "10.10", "10.9"]
 
 
-    sdk_versions += ["11.1", "11.0"]
+    sdk_versions += ["11.3", "11.1", "11.0"]
 
 
     if 'arm64' not in archs:
     if 'arm64' not in archs:
         sdk_versions += ["10.15", "10.14"]
         sdk_versions += ["10.15", "10.14"]

+ 9 - 1
panda/src/device/winRawInputDevice.cxx

@@ -663,7 +663,15 @@ process_report(PCHAR ptr, size_t size) {
   if (status == HIDP_STATUS_SUCCESS) {
   if (status == HIDP_STATUS_SUCCESS) {
     for (ULONG di = 0; di < count; ++di) {
     for (ULONG di = 0; di < count; ++di) {
       if (data[di].DataIndex != _hat_data_index) {
       if (data[di].DataIndex != _hat_data_index) {
-        nassertd(data[di].DataIndex < _indices.size()) continue;
+        if (data[di].DataIndex >= _indices.size()) {
+          if (device_cat.is_debug()) {
+            device_cat.debug()
+              << "Ignoring out of range DataIndex " << data[di].DataIndex
+              << "from raw device " << _path << "\n";
+          }
+          continue;
+        }
+
         const Index &idx = _indices[data[di].DataIndex];
         const Index &idx = _indices[data[di].DataIndex];
         if (idx._axis >= 0) {
         if (idx._axis >= 0) {
           if (idx._signed) {
           if (idx._signed) {

+ 1 - 1
panda/src/display/pythonGraphicsWindowProc.h

@@ -21,7 +21,7 @@
 #ifdef HAVE_PYTHON
 #ifdef HAVE_PYTHON
 
 
 /**
 /**
- * Extends GraphicsWindowProc to provde callback functionality to a python
+ * Extends GraphicsWindowProc to provide callback functionality to a Python
  * program.
  * program.
  */
  */
 class PythonGraphicsWindowProc: public GraphicsWindowProc,
 class PythonGraphicsWindowProc: public GraphicsWindowProc,

+ 1 - 1
panda/src/display/windowProperties.h

@@ -235,7 +235,7 @@ private:
     S_maximized            = 0x10000,
     S_maximized            = 0x10000,
   };
   };
 
 
-  // This bitmask represents the truefalse settings for various boolean flags
+  // This bitmask represents the true/false settings for various boolean flags
   // (assuming the corresponding S_* bit has been set, above).
   // (assuming the corresponding S_* bit has been set, above).
   enum Flags {
   enum Flags {
     F_undecorated    = S_undecorated,
     F_undecorated    = S_undecorated,

+ 1 - 1
panda/src/gobj/lens.cxx

@@ -351,7 +351,7 @@ clear_custom_film_mat() {
  * nearly perpendicular to the center of the frustum as possible.  Without
  * nearly perpendicular to the center of the frustum as possible.  Without
  * this bit, the orientation camera plane is defined by position of the four
  * this bit, the orientation camera plane is defined by position of the four
  * points (which should all be coplanar).  With this bit, the camera plane is
  * points (which should all be coplanar).  With this bit, the camera plane is
- * arbitarary, and may be chosen so that the four points do not themselves lie
+ * arbitrary, and may be chosen so that the four points do not themselves lie
  * in the camera plane (but the points will still be within the frustum).
  * in the camera plane (but the points will still be within the frustum).
  *
  *
  * FC_off_axis - This allows the resulting frustum to be off-axis to get the
  * FC_off_axis - This allows the resulting frustum to be off-axis to get the

+ 2 - 2
panda/src/gobj/texturePeeker.cxx

@@ -361,7 +361,7 @@ lookup(LColor &color, PN_stdfloat u, PN_stdfloat v, PN_stdfloat w) const {
 }
 }
 
 
 /**
 /**
- * Works like TexturePeeker::lookup(), but instead uv-coordinates integer
+ * Works like TexturePeeker::lookup(), but instead of uv-coordinates, integer
  * coordinates are used.
  * coordinates are used.
  */
  */
 void TexturePeeker::
 void TexturePeeker::
@@ -372,7 +372,7 @@ fetch_pixel(LColor &color, int x, int y) const {
 }
 }
 
 
 /**
 /**
- * Works like TexturePeeker::lookup(), but instead uv-coordinates integer
+ * Works like TexturePeeker::lookup(), but instead of uv-coordinates, integer
  * coordinates are used.
  * coordinates are used.
  */
  */
 void TexturePeeker::
 void TexturePeeker::

+ 1 - 1
panda/src/putil/bamReader_ext.cxx

@@ -79,7 +79,7 @@ static TypedWritable *factory_callback(const FactoryParams &params){
       // If the Python pointer is the last reference to it, make sure that the
       // If the Python pointer is the last reference to it, make sure that the
       // object isn't destroyed.  We do this by calling unref(), which
       // object isn't destroyed.  We do this by calling unref(), which
       // decreases the reference count without destroying the object.
       // decreases the reference count without destroying the object.
-      if (result->ob_refcnt <= 1) {
+      if (Py_REFCNT(result) <= 1) {
         ref_count->unref();
         ref_count->unref();
 
 
         // Tell the Python wrapper object that it shouldn't try to delete the
         // Tell the Python wrapper object that it shouldn't try to delete the

+ 1 - 0
pandatool/src/mayaprogs/mayapath.cxx

@@ -108,6 +108,7 @@ struct MayaVerInfo maya_versions[] = {
   { "MAYA2018", "2018"},
   { "MAYA2018", "2018"},
   { "MAYA2019", "2019"},
   { "MAYA2019", "2019"},
   { "MAYA2020", "2020"},
   { "MAYA2020", "2020"},
+  { "MAYA2022", "2022"},
   { 0, 0 },
   { 0, 0 },
 };
 };
 
 

+ 3 - 0
samples/asteroids/main.py

@@ -24,6 +24,7 @@ from direct.showbase.ShowBase import ShowBase
 from direct.task.Task import Task
 from direct.task.Task import Task
 from panda3d.core import TextNode, TransparencyAttrib
 from panda3d.core import TextNode, TransparencyAttrib
 from panda3d.core import LPoint3, LVector3
 from panda3d.core import LPoint3, LVector3
+from panda3d.core import SamplerState
 
 
 # Constants that will control the behavior of the game. It is good to
 # Constants that will control the behavior of the game. It is good to
 # group constants like this so that they can be changed once without
 # group constants like this so that they can be changed once without
@@ -73,6 +74,8 @@ def loadObject(tex=None, pos=LPoint3(0, 0), depth=SPRITE_POS, scale=1,
     if tex:
     if tex:
         # Load and set the requested texture.
         # Load and set the requested texture.
         tex = base.loader.loadTexture("textures/" + tex)
         tex = base.loader.loadTexture("textures/" + tex)
+        tex.setWrapU(SamplerState.WM_clamp)
+        tex.setWrapV(SamplerState.WM_clamp)
         obj.setTexture(tex, 1)
         obj.setTexture(tex, 1)
 
 
     return obj
     return obj