Browse Source

Merge branch 'release/1.10.x'

rdb 6 years ago
parent
commit
80bb5c09fe

+ 1 - 1
README.md

@@ -157,7 +157,7 @@ install the requisite packages using the system package manager.  To install
 the recommended set of dependencies, you can use this command:
 
 ```bash
-pkg install pkgconf png jpeg-turbo tiff freetype2 eigen squish openal opusfile libvorbis libX11 libGL ode bullet assimp openexr
+pkg install pkgconf bison png jpeg-turbo tiff freetype2 harfbuzz eigen squish openal opusfile libvorbis libX11 mesa-libs ode bullet assimp openexr
 ```
 
 You will also need to choose which version of Python you want to use.

+ 1 - 1
direct/src/actor/Actor.py

@@ -2507,7 +2507,7 @@ class Actor(DirectObject, NodePath):
         else:
             animNames = [animName]
         for animName in animNames:
-            if animName is 'nothing':
+            if animName == 'nothing':
                 continue
             thisAnim = ''
             totalEffect = 0.

+ 3 - 3
direct/src/directscripts/gendocs.py

@@ -56,9 +56,9 @@ import os, sys, parser, symbol, token, re
 #
 ########################################################################
 
-SECHEADER = re.compile("^[A-Z][a-z]+\s*:")
-JUNKHEADER = re.compile("^((Function)|(Access))\s*:")
-IMPORTSTAR = re.compile("^from\s+([a-zA-Z0-9_.]+)\s+import\s+[*]\s*$")
+SECHEADER = re.compile("^[A-Z][a-z]+\\s*:")
+JUNKHEADER = re.compile("^((Function)|(Access))\\s*:")
+IMPORTSTAR = re.compile("^from\\s+([a-zA-Z0-9_.]+)\\s+import\\s+[*]\\s*$")
 IDENTIFIER = re.compile("[a-zA-Z0-9_]+")
 FILEHEADER = re.compile(
 r"""^// Filename: [a-zA-Z.]+

+ 5 - 5
direct/src/dist/FreezeTool.py

@@ -210,15 +210,15 @@ class CompilationEnvironment:
             if ('MAKEPANDA' in os.environ):
                 self.compileObjExe = 'cl /wd4996 /Fo%(basename)s.obj /nologo /c %(MD)s /Zi /O2 /Ob2 /EHsc /Zm300 /W3 /I"%(pythonIPath)s" %(filename)s'
                 self.compileObjDll = self.compileObjExe
-                self.linkExe = 'link /nologo /MAP:NUL /FIXED:NO /OPT:REF /STACK:4194304 /INCREMENTAL:NO /LIBPATH:"%(python)s\libs"  /out:%(basename)s.exe %(basename)s.obj'
-                self.linkDll = 'link /nologo /DLL /MAP:NUL /FIXED:NO /OPT:REF /INCREMENTAL:NO /LIBPATH:"%(python)s\libs"  /out:%(basename)s%(dllext)s.pyd %(basename)s.obj'
+                self.linkExe = 'link /nologo /MAP:NUL /FIXED:NO /OPT:REF /STACK:4194304 /INCREMENTAL:NO /LIBPATH:"%(python)s\\libs"  /out:%(basename)s.exe %(basename)s.obj'
+                self.linkDll = 'link /nologo /DLL /MAP:NUL /FIXED:NO /OPT:REF /INCREMENTAL:NO /LIBPATH:"%(python)s\\libs"  /out:%(basename)s%(dllext)s.pyd %(basename)s.obj'
             else:
                 os.environ['PATH'] += ';' + self.MSVC + '\\bin' + self.suffix64 + ';' + self.MSVC + '\\Common7\\IDE;' + self.PSDK + '\\bin'
 
-                self.compileObjExe = 'cl /wd4996 /Fo%(basename)s.obj /nologo /c %(MD)s /Zi /O2 /Ob2 /EHsc /Zm300 /W3 /I"%(pythonIPath)s" /I"%(PSDK)s\include" /I"%(MSVC)s\include" %(filename)s'
+                self.compileObjExe = 'cl /wd4996 /Fo%(basename)s.obj /nologo /c %(MD)s /Zi /O2 /Ob2 /EHsc /Zm300 /W3 /I"%(pythonIPath)s" /I"%(PSDK)s\\include" /I"%(MSVC)s\\include" %(filename)s'
                 self.compileObjDll = self.compileObjExe
-                self.linkExe = 'link /nologo /MAP:NUL /FIXED:NO /OPT:REF /STACK:4194304 /INCREMENTAL:NO /LIBPATH:"%(PSDK)s\lib" /LIBPATH:"%(MSVC)s\\lib%(suffix64)s" /LIBPATH:"%(python)s\libs"  /out:%(basename)s.exe %(basename)s.obj'
-                self.linkDll = 'link /nologo /DLL /MAP:NUL /FIXED:NO /OPT:REF /INCREMENTAL:NO /LIBPATH:"%(PSDK)s\lib" /LIBPATH:"%(MSVC)s\\lib%(suffix64)s" /LIBPATH:"%(python)s\libs"  /out:%(basename)s%(dllext)s.pyd %(basename)s.obj'
+                self.linkExe = 'link /nologo /MAP:NUL /FIXED:NO /OPT:REF /STACK:4194304 /INCREMENTAL:NO /LIBPATH:"%(PSDK)s\\lib" /LIBPATH:"%(MSVC)s\\lib%(suffix64)s" /LIBPATH:"%(python)s\\libs"  /out:%(basename)s.exe %(basename)s.obj'
+                self.linkDll = 'link /nologo /DLL /MAP:NUL /FIXED:NO /OPT:REF /INCREMENTAL:NO /LIBPATH:"%(PSDK)s\\lib" /LIBPATH:"%(MSVC)s\\lib%(suffix64)s" /LIBPATH:"%(python)s\\libs"  /out:%(basename)s%(dllext)s.pyd %(basename)s.obj'
 
         elif self.platform.startswith('osx_'):
             # OSX

+ 35 - 38
direct/src/particles/ParticleEffect.py

@@ -163,44 +163,41 @@ class ParticleEffect(NodePath):
 
     def saveConfig(self, filename):
         filename = Filename(filename)
-        f = open(filename.toOsSpecific(), 'wb')
-        # Add a blank line
-        f.write('\n')
-
-        # Make sure we start with a clean slate
-        f.write('self.reset()\n')
-
-        pos = self.getPos()
-        hpr = self.getHpr()
-        scale = self.getScale()
-        f.write('self.setPos(%0.3f, %0.3f, %0.3f)\n' %
-                (pos[0], pos[1], pos[2]))
-        f.write('self.setHpr(%0.3f, %0.3f, %0.3f)\n' %
-                (hpr[0], hpr[1], hpr[2]))
-        f.write('self.setScale(%0.3f, %0.3f, %0.3f)\n' %
-                (scale[0], scale[1], scale[2]))
-
-        # Save all the particles to file
-        num = 0
-        for p in list(self.particlesDict.values()):
-            target = 'p%d' % num
-            num = num + 1
-            f.write(target + ' = Particles.Particles(\'%s\')\n' % p.getName())
-            p.printParams(f, target)
-            f.write('self.addParticles(%s)\n' % target)
-
-        # Save all the forces to file
-        num = 0
-        for fg in list(self.forceGroupDict.values()):
-            target = 'f%d' % num
-            num = num + 1
-            f.write(target + ' = ForceGroup.ForceGroup(\'%s\')\n' % \
-                                                fg.getName())
-            fg.printParams(f, target)
-            f.write('self.addForceGroup(%s)\n' % target)
-
-        # Close the file
-        f.close()
+        with open(filename.toOsSpecific(), 'w') as f:
+          # Add a blank line
+          f.write('\n')
+
+          # Make sure we start with a clean slate
+          f.write('self.reset()\n')
+
+          pos = self.getPos()
+          hpr = self.getHpr()
+          scale = self.getScale()
+          f.write('self.setPos(%0.3f, %0.3f, %0.3f)\n' %
+                  (pos[0], pos[1], pos[2]))
+          f.write('self.setHpr(%0.3f, %0.3f, %0.3f)\n' %
+                  (hpr[0], hpr[1], hpr[2]))
+          f.write('self.setScale(%0.3f, %0.3f, %0.3f)\n' %
+                  (scale[0], scale[1], scale[2]))
+
+          # Save all the particles to file
+          num = 0
+          for p in list(self.particlesDict.values()):
+              target = 'p%d' % num
+              num = num + 1
+              f.write(target + ' = Particles.Particles(\'%s\')\n' % p.getName())
+              p.printParams(f, target)
+              f.write('self.addParticles(%s)\n' % target)
+
+          # Save all the forces to file
+          num = 0
+          for fg in list(self.forceGroupDict.values()):
+              target = 'f%d' % num
+              num = num + 1
+              f.write(target + ' = ForceGroup.ForceGroup(\'%s\')\n' % \
+                                                  fg.getName())
+              fg.printParams(f, target)
+              f.write('self.addForceGroup(%s)\n' % target)
 
     def loadConfig(self, filename):
         data = vfs.readFile(filename, 1)

+ 1 - 1
direct/src/showbase/FindCtaPaths.py

@@ -21,7 +21,7 @@ def deCygwinify(path):
 
         dirs = path.split('/')
         if len(dirs) > 2 and len(dirs[1]) == 1:
-            path = '%s:\%s' % (dirs[1], '\\'.join(dirs[2:]))
+            path = '%s:\\%s' % (dirs[1], '\\'.join(dirs[2:]))
 
         else:
             # Otherwise, prepend $PANDA_ROOT and flip the slashes.

+ 1 - 1
direct/src/showbase/PythonUtil.py

@@ -2513,7 +2513,7 @@ class AlphabetCounter:
         index = -1
         while True:
             curChar = self._curCounter[index]
-            if curChar is 'Z':
+            if curChar == 'Z':
                 nextChar = 'A'
                 carry = True
             else:

+ 26 - 0
doc/ReleaseNotes

@@ -1,7 +1,33 @@
 ------------------------  RELEASE 1.10.1  -----------------------
 
+This is a bugfix release intended to fix several issues in 1.10.0.
+
+* Fix crashes when gamepad is plugged in on 32-bit Windows
+* Fix deploy-ng error regarding 'exist_ok' on Python 2
+* Fix compatibility issues with upcoming Python 3.8
 * Fix regression with Audio3DManager.setSoundVelocityAuto()
+* Fix issues when awaiting loader.loadModel in Python 3.7
 * Audio3DManager accepts tuple in setSoundVelocity/setListenerVelocity
+* Fix lighting being disabled when only an AmbientLight is active
+* Fix an error saving from Particle Panel in Python 3
+* Depth buffer now defaults to 24-bit on macOS (fixes flickering)
+* Fix no devices being detected on Windows with threading-model
+* Implement collision tests from Capsule and Box into InvSphere
+* Fix SpriteAnim error in particle system
+* Fix ShaderGenerator error when using too many shadowing lights
+* Fix interrogate crash in Python 3 with optional wstring args
+* Fix compilation errors for x86 Android platform
+* Fix permissions of directories created by installpanda
+* Improvements to API reference documentation
+* Fix incorrect features printed out when printing an InputDevice
+* Support cross-compiling for Android platforms in makepanda
+* Work around various bugs when compiling with OS X 10.7's libc++
+* Fix wrong error sometimes being reported when loading plug-in
+* Allow getting NodePath from CullTraverserData object
+* Add config options to Assimp loader for generating normals
+* Fix multisampling in floating-point framebuffers on OpenGL
+* Parse egg files with 4-component tangents (must be 1 or -1)
+* StencilAttrib.make() write_mask argument is now optional
 
 ------------------------  RELEASE 1.10.0  -----------------------
 

+ 4 - 0
dtool/src/interrogatedb/py_wrappers.cxx

@@ -1091,7 +1091,11 @@ static PyObject *Dtool_GeneratorWrapper_iternext(PyObject *self) {
  */
 static void
 Dtool_StaticProperty_dealloc(PyDescrObject *descr) {
+#if PY_VERSION_HEX >= 0x03080000
+  PyObject_GC_UnTrack(descr);
+#else
   _PyObject_GC_UNTRACK(descr);
+#endif
   Py_XDECREF(descr->d_type);
   Py_XDECREF(descr->d_name);
 //#if PY_MAJOR_VERSION >= 3

+ 1 - 1
makepanda/installpanda.py

@@ -62,7 +62,7 @@ def WriteMimeXMLFile(fname, info):
         fhandle.write("\t<mime-type type=\"%s\">\n" % (mime))
         fhandle.write("\t\t<comment xml:lang=\"en\">%s</comment>\n" % (desc))
         fhandle.write("\t\t<glob pattern=\"*.%s\"/>\n" % (ext))
-        fhandle.write("\t</mime-type>\s")
+        fhandle.write("\t</mime-type>\n")
     fhandle.write("</mime-info>\n")
     fhandle.close()
 

+ 9 - 9
makepanda/makechm.py

@@ -213,11 +213,11 @@ def makeCHM(outputfile, dirname, title, special = None):
     # Now, execute the command to compile the files.
     if "PROGRAMFILES" in os.environ and os.path.isdir("%s\\HTML Help Workshop" % os.environ["PROGRAMFILES"]):
         cmd = "\"%s\\HTML Help Workshop\\hhc.exe\" %s.hhp" % (os.environ["PROGRAMFILES"], base)
-    elif os.path.isdir("C:\Program Files\HTML Help Workshop"):
+    elif os.path.isdir("C:\\Program Files\\HTML Help Workshop"):
         cmd = "\"C:\\Program Files\\HTML Help Workshop\\hhc.exe\" %s.hhp" % base
     else:
         cmd = "hhc \"%s.hhp\"" % base
-    print cmd
+    print(cmd)
     os.system(cmd)
     if not KEEPTEMP:
         if os.path.isfile("%s.hhp" % base): os.remove("%s.hhp" % base)
@@ -225,7 +225,7 @@ def makeCHM(outputfile, dirname, title, special = None):
         if os.path.isfile("%s.hhk" % base): os.remove("%s.hhk" % base)
         if os.path.isfile("%s.chw" % base): os.remove("%s.chw" % base)
     if not os.path.isfile(base + ".chm"):
-        print "An error has occurred!"
+        print("An error has occurred!")
         if __name__ == "__main__":
             exit(1)
         else:
@@ -246,7 +246,7 @@ if __name__ == "__main__":
     VERSION = None
     try:
         f = file("built/include/pandaVersion.h","r")
-        pattern = re.compile('^\s*[#]\s*define\s+PANDA_VERSION_STR\s+["]([0-9.]+)["]')
+        pattern = re.compile('^\\s*[#]\\s*define\\s+PANDA_VERSION_STR\\s+["]([0-9.]+)["]')
         for line in f:
             match = pattern.match(line,0)
             if (match):
@@ -260,22 +260,22 @@ if __name__ == "__main__":
     # Now, make CHM's for both the manual and reference, if we have them.
     for lang in ["python", "cxx"]:
         if not os.path.isdir("manual-" + lang):
-            print "No directory named 'manual-%s' found" % lang
+            print("No directory named 'manual-%s' found" % lang)
         else:
-            print "Making CHM file for manual-%s..." % lang
+            print("Making CHM file for manual-%s..." % lang)
             if VERSION == None:
                 makeManualCHM("manual-%s.chm" % lang, "manual-" + lang, "Panda3D Manual")
             else:
                 makeManualCHM("manual-%s-%s.chm" % (VERSION, lang), "manual-" + lang, "Panda3D %s Manual" % VERSION)
 
         if not os.path.isdir("reference-" + lang):
-            print "No directory named 'reference-%s' found" % lang
+            print("No directory named 'reference-%s' found" % lang)
         else:
-            print "Making CHM file for reference-%s..." % lang
+            print("Making CHM file for reference-%s..." % lang)
             if VERSION == None:
                 makeReferenceCHM("reference-%s.chm" % lang, "reference-" + lang, "Panda3D Reference")
             else:
                 makeReferenceCHM("reference-%s-%s.chm" % (VERSION, lang), "reference-" + lang, "Panda3D %s Reference" % VERSION)
 
-    print "Done!"
+    print("Done!")
 

+ 8 - 8
makepanda/makepanda.py

@@ -1529,7 +1529,7 @@ def CompileIgate(woutd,wsrc,opts):
         # NOTE: this 1600 value is the version number for VC2010.
         cmd += ' -D_MSC_VER=1600 -D"__declspec(param)=" -D__cdecl -D_near -D_far -D__near -D__far -D__stdcall'
     if (COMPILER=="GCC"):
-        cmd += ' -D__attribute__\(x\)='
+        cmd += ' -D__attribute__\\(x\\)='
         target_arch = GetTargetArch()
         if target_arch in ("x86_64", "amd64"):
             cmd += ' -D_LP64'
@@ -1634,9 +1634,9 @@ def CompileLib(lib, obj, opts):
                 cmd += " /MACHINE:" + GetTargetArch().upper()
             cmd += ' /OUT:' + BracketNameWithQuotes(lib)
             for x in obj: cmd += ' ' + BracketNameWithQuotes(x)
-            cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\ipp\lib\ia32"'
-            cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\TBB\Lib\ia32\vc10"'
-            cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\compiler\lib\ia32"'
+            cmd += ' /LIBPATH:"C:\\Program Files (x86)\\Intel\\Composer XE 2011 SP1\\ipp\\lib\\ia32"'
+            cmd += ' /LIBPATH:"C:\\Program Files (x86)\\Intel\\Composer XE 2011 SP1\\TBB\\Lib\\ia32\\vc10"'
+            cmd += ' /LIBPATH:"C:\\Program Files (x86)\\Intel\\Composer XE 2011 SP1\\compiler\\lib\\ia32"'
             oscmd(cmd)
 
     if (COMPILER=="GCC"):
@@ -1742,9 +1742,9 @@ def CompileLink(dll, obj, opts):
                 cmd += " /NOD:MFC90.LIB /NOD:MFC80.LIB /NOD:LIBCMT"
             cmd += " /NOD:LIBCI.LIB /DEBUG"
             cmd += " /nod:libc /nod:libcmtd /nod:atlthunk /nod:atls"
-            cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\ipp\lib\ia32"'
-            cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\TBB\Lib\ia32\vc10"'
-            cmd += ' /LIBPATH:"C:\Program Files (x86)\Intel\Composer XE 2011 SP1\compiler\lib\ia32"'
+            cmd += ' /LIBPATH:"C:\\Program Files (x86)\\Intel\\Composer XE 2011 SP1\\ipp\\lib\\ia32"'
+            cmd += ' /LIBPATH:"C:\\Program Files (x86)\\Intel\\Composer XE 2011 SP1\\TBB\\Lib\\ia32\\vc10"'
+            cmd += ' /LIBPATH:"C:\\Program Files (x86)\\Intel\\Composer XE 2011 SP1\\compiler\\lib\\ia32"'
             if (GetOrigExt(dll) != ".exe"): cmd += " /DLL"
             optlevel = GetOptimizeOption(opts)
             if (optlevel==1): cmd += " /MAP /MAPINFO:EXPORTS /NOD:MSVCRT.LIB /NOD:MSVCPRT.LIB /NOD:MSVCIRT.LIB"
@@ -6542,7 +6542,7 @@ if PkgSkip("PYTHON") == 0:
 
     if GetTarget() == 'linux' or GetTarget() == 'freebsd':
         # Setup rpath so libs can be found in the same directory as the deployed game
-        LibName('DEPLOYSTUB', "-Wl,-rpath,\$ORIGIN")
+        LibName('DEPLOYSTUB', "-Wl,-rpath,\\$ORIGIN")
         LibName('DEPLOYSTUB', "-Wl,-z,origin")
         LibName('DEPLOYSTUB', "-rdynamic")
     PyTargetAdd('deploy-stub.exe', input='deploy-stub.obj')

+ 10 - 1
panda/src/cocoadisplay/cocoaGraphicsStateGuardian.mm

@@ -248,8 +248,17 @@ choose_pixel_format(const FrameBufferProperties &properties,
   attribs.push_back(aux_buffers);
   attribs.push_back(NSOpenGLPFAColorSize);
   attribs.push_back(properties.get_color_bits());
+
+  // Set the depth buffer bits to 24 manually when 1 is requested.
+  // This prevents getting a depth buffer of only 16 bits when requesting 1.
   attribs.push_back(NSOpenGLPFADepthSize);
-  attribs.push_back(properties.get_depth_bits());
+  if (properties.get_depth_bits() == 1) {
+    attribs.push_back(24);
+  }
+  else {
+    attribs.push_back(properties.get_depth_bits());
+  }
+
   attribs.push_back(NSOpenGLPFAStencilSize);
   attribs.push_back(properties.get_stencil_bits());
 

+ 3 - 4
panda/src/device/evdevInputDevice.cxx

@@ -84,6 +84,8 @@ static const struct DeviceMapping {
   {0x0f30, 0x0111, InputDevice::DeviceClass::gamepad, 0},
   // SPEED Link SL-6535-SBK-01
   {0x0079, 0x0006, InputDevice::DeviceClass::gamepad, 0},
+  // 8bitdo N30 Pro Controller
+  {0x2dc8, 0x9001, InputDevice::DeviceClass::gamepad, QB_rstick_from_z},
   // 3Dconnexion Space Traveller 3D Mouse
   {0x046d, 0xc623, InputDevice::DeviceClass::spatial_mouse, 0},
   // 3Dconnexion Space Pilot 3D Mouse
@@ -521,10 +523,7 @@ init_device() {
           }
           break;
         case ABS_THROTTLE:
-           if (_device_class == DeviceClass::gamepad) {
-            // Apparently needed for 8bitdo N30 Pro controller
-            axis = InputDevice::Axis::right_x;
-          } else if (quirks & QB_rudder_from_throttle) {
+          if (quirks & QB_rudder_from_throttle) {
             axis = InputDevice::Axis::rudder;
           } else {
             axis = InputDevice::Axis::throttle;

+ 6 - 0
panda/src/display/graphicsStateGuardian.cxx

@@ -2823,6 +2823,12 @@ do_issue_light() {
     }
 
   } else {
+    // Don't forget to still enable lighting if we have only an ambient light.
+    if (!_lighting_enabled) {
+      enable_lighting(true);
+      _lighting_enabled = true;
+    }
+
     set_ambient_light(target_light->get_ambient_contribution());
   }
 

File diff suppressed because it is too large
+ 445 - 537
panda/src/egg/parser.cxx.prebuilt


+ 116 - 110
panda/src/egg/parser.h.prebuilt

@@ -1,20 +1,19 @@
-/* A Bison parser, made by GNU Bison 2.4.2.  */
+/* A Bison parser, made by GNU Bison 3.2.2.  */
+
+/* Bison interface for Yacc-like parsers in C
+
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
 
-/* Skeleton interface for Bison's Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software
-   Foundation, Inc.
-   
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
@@ -27,107 +26,118 @@
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-   
+
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
+/* Undocumented macros, especially those whose name start with YY_,
+   are private implementation details.  Do not rely on them.  */
 
-/* Tokens.  */
+#ifndef YY_EGGYY_BUILT_TMP_PARSER_YXX_H_INCLUDED
+# define YY_EGGYY_BUILT_TMP_PARSER_YXX_H_INCLUDED
+/* Debug traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int eggyydebug;
+#endif
+
+/* Token type.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     EGG_NUMBER = 258,
-     EGG_ULONG = 259,
-     EGG_STRING = 260,
-     ANIMPRELOAD = 261,
-     BEZIERCURVE = 262,
-     BFACE = 263,
-     BILLBOARD = 264,
-     BILLBOARDCENTER = 265,
-     BINORMAL = 266,
-     BUNDLE = 267,
-     CLOSED = 268,
-     COLLIDE = 269,
-     COMMENT = 270,
-     COMPONENT = 271,
-     COORDSYSTEM = 272,
-     CV = 273,
-     DART = 274,
-     DNORMAL = 275,
-     DRGBA = 276,
-     DUV = 277,
-     DXYZ = 278,
-     DCS = 279,
-     DISTANCE = 280,
-     DTREF = 281,
-     DYNAMICVERTEXPOOL = 282,
-     EXTERNAL_FILE = 283,
-     GROUP = 284,
-     DEFAULTPOSE = 285,
-     JOINT = 286,
-     KNOTS = 287,
-     INCLUDE = 288,
-     INSTANCE = 289,
-     LINE = 290,
-     LOOP = 291,
-     MATERIAL = 292,
-     MATRIX3 = 293,
-     MATRIX4 = 294,
-     MODEL = 295,
-     MREF = 296,
-     NORMAL = 297,
-     NURBSCURVE = 298,
-     NURBSSURFACE = 299,
-     OBJECTTYPE = 300,
-     ORDER = 301,
-     OUTTANGENT = 302,
-     PATCH = 303,
-     POINTLIGHT = 304,
-     POLYGON = 305,
-     REF = 306,
-     RGBA = 307,
-     ROTATE = 308,
-     ROTX = 309,
-     ROTY = 310,
-     ROTZ = 311,
-     SANIM = 312,
-     SCALAR = 313,
-     SCALE = 314,
-     SEQUENCE = 315,
-     SHADING = 316,
-     SWITCH = 317,
-     SWITCHCONDITION = 318,
-     TABLE = 319,
-     TABLE_V = 320,
-     TAG = 321,
-     TANGENT = 322,
-     TEXLIST = 323,
-     TEXTURE = 324,
-     TLENGTHS = 325,
-     TRANSFORM = 326,
-     TRANSLATE = 327,
-     TREF = 328,
-     TRIANGLEFAN = 329,
-     TRIANGLESTRIP = 330,
-     TRIM = 331,
-     TXT = 332,
-     UKNOTS = 333,
-     UV = 334,
-     AUX = 335,
-     VKNOTS = 336,
-     VERTEX = 337,
-     VERTEXANIM = 338,
-     VERTEXPOOL = 339,
-     VERTEXREF = 340,
-     XFMANIM = 341,
-     XFMSANIM = 342,
-     START_EGG = 343,
-     START_GROUP_BODY = 344,
-     START_TEXTURE_BODY = 345,
-     START_PRIMITIVE_BODY = 346
-   };
+  enum yytokentype
+  {
+    EGG_NUMBER = 258,
+    EGG_ULONG = 259,
+    EGG_STRING = 260,
+    ANIMPRELOAD = 261,
+    BEZIERCURVE = 262,
+    BFACE = 263,
+    BILLBOARD = 264,
+    BILLBOARDCENTER = 265,
+    BINORMAL = 266,
+    BUNDLE = 267,
+    CLOSED = 268,
+    COLLIDE = 269,
+    COMMENT = 270,
+    COMPONENT = 271,
+    COORDSYSTEM = 272,
+    CV = 273,
+    DART = 274,
+    DNORMAL = 275,
+    DRGBA = 276,
+    DUV = 277,
+    DXYZ = 278,
+    DCS = 279,
+    DISTANCE = 280,
+    DTREF = 281,
+    DYNAMICVERTEXPOOL = 282,
+    EXTERNAL_FILE = 283,
+    GROUP = 284,
+    DEFAULTPOSE = 285,
+    JOINT = 286,
+    KNOTS = 287,
+    INCLUDE = 288,
+    INSTANCE = 289,
+    LINE = 290,
+    LOOP = 291,
+    MATERIAL = 292,
+    MATRIX3 = 293,
+    MATRIX4 = 294,
+    MODEL = 295,
+    MREF = 296,
+    NORMAL = 297,
+    NURBSCURVE = 298,
+    NURBSSURFACE = 299,
+    OBJECTTYPE = 300,
+    ORDER = 301,
+    OUTTANGENT = 302,
+    PATCH = 303,
+    POINTLIGHT = 304,
+    POLYGON = 305,
+    REF = 306,
+    RGBA = 307,
+    ROTATE = 308,
+    ROTX = 309,
+    ROTY = 310,
+    ROTZ = 311,
+    SANIM = 312,
+    SCALAR = 313,
+    SCALE = 314,
+    SEQUENCE = 315,
+    SHADING = 316,
+    SWITCH = 317,
+    SWITCHCONDITION = 318,
+    TABLE = 319,
+    TABLE_V = 320,
+    TAG = 321,
+    TANGENT = 322,
+    TEXLIST = 323,
+    TEXTURE = 324,
+    TLENGTHS = 325,
+    TRANSFORM = 326,
+    TRANSLATE = 327,
+    TREF = 328,
+    TRIANGLEFAN = 329,
+    TRIANGLESTRIP = 330,
+    TRIM = 331,
+    TXT = 332,
+    UKNOTS = 333,
+    UV = 334,
+    AUX = 335,
+    VKNOTS = 336,
+    VERTEX = 337,
+    VERTEXANIM = 338,
+    VERTEXPOOL = 339,
+    VERTEXREF = 340,
+    XFMANIM = 341,
+    XFMSANIM = 342,
+    START_EGG = 343,
+    START_GROUP_BODY = 344,
+    START_TEXTURE_BODY = 345,
+    START_PRIMITIVE_BODY = 346
+  };
 #endif
 /* Tokens.  */
 #define EGG_NUMBER 258
@@ -220,15 +230,11 @@
 #define START_TEXTURE_BODY 345
 #define START_PRIMITIVE_BODY 346
 
+/* Value type.  */
 
 
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
 extern YYSTYPE eggyylval;
 
+int eggyyparse (void);
 
+#endif /* !YY_EGGYY_BUILT_TMP_PARSER_YXX_H_INCLUDED  */

+ 1 - 1
panda/src/pgraph/stencilAttrib.h

@@ -88,7 +88,7 @@ PUBLISHED:
     StencilOperation front_stencil_pass_z_pass_operation,
     unsigned int reference,
     unsigned int read_mask,
-    unsigned int write_mask);
+    unsigned int write_mask=~(unsigned int)0);
 
   static CPT(RenderAttrib) make_2_sided(
     bool front_enable,

Some files were not shown because too many files changed in this diff