diff --git a/BACKERS.md b/BACKERS.md
new file mode 100644
index 0000000000..b86afc0e71
--- /dev/null
+++ b/BACKERS.md
@@ -0,0 +1,28 @@
+# Panda3D Backers
+
+This is a list of all the people who are contributing financially to Panda3D. If you'd like to join them, visit [our campaign on OpenCollective](https://opencollective.com/panda3d)!
+
+## Gold Sponsors
+
+
+
+* [tcdude](https://opencollective.com/tizilogic)
+
+## Bronze Sponsors
+
+
+
+* [Mitchell Stokes](https://opencollective.com/mitchell-stokes)
+* [Daniel Stokes](https://opencollective.com/daniel-stokes)
+* [David Rose](https://opencollective.com/david-rose)
+* [Carnetsoft](https://cs-driving-simulator.com/)
+
+## Benefactors
+
+
+
+* Sam Edwards
+
+## Backers
+
+
diff --git a/README.md b/README.md
index cb8f52fba1..314ed49ff5 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,6 @@
[](https://travis-ci.org/panda3d/panda3d)
+[](https://opencollective.com/panda3d)
+[](https://opencollective.com/panda3d)
@@ -62,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.1/panda3d-1.10.1-tools-win64.zip
-https://www.panda3d.org/download/panda3d-1.10.1/panda3d-1.10.1-tools-win32.zip
+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
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
@@ -133,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.1/panda3d-1.10.1-tools-mac.tar.gz).
+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).
After placing the thirdparty directory inside the panda3d source directory,
you may build Panda3D using a command like the following:
@@ -228,3 +230,25 @@ models that are necessary for the developers to reproduce the issue.
If you're not sure whether you've encountered a bug, feel free to ask about
it in the forums or the IRC channel first.
+
+Supporting the Project
+======================
+
+If you would like to support the project financially, visit
+[our campaign on OpenCollective](https://opencollective.com/panda3d). Your
+contributions help us accelerate the development of Panda3D.
+
+For the list of backers, see the [BACKERS.md](BACKERS.md) file or visit the
+[Sponsors page](https://www.panda3d.org/sponsors) on our web site. Thank you
+to everyone who has donated!
+
+
+
+
+
+### Gold Sponsors
+[](https://opencollective.com/panda3d/tiers/gold-sponsor/0/website)
+[](https://opencollective.com/panda3d/tiers/gold-sponsor/1/website)
+[](https://opencollective.com/panda3d/tiers/gold-sponsor/2/website)
+[](https://opencollective.com/panda3d/tiers/gold-sponsor/3/website)
+[](https://opencollective.com/panda3d/tiers/gold-sponsor/4/website)
diff --git a/dtool/src/interrogatedb/py_wrappers.cxx b/dtool/src/interrogatedb/py_wrappers.cxx
index e004246249..9f463c9f92 100644
--- a/dtool/src/interrogatedb/py_wrappers.cxx
+++ b/dtool/src/interrogatedb/py_wrappers.cxx
@@ -47,6 +47,7 @@ static void Dtool_WrapperBase_dealloc(PyObject *self) {
Dtool_WrapperBase *wrap = (Dtool_WrapperBase *)self;
nassertv(wrap);
Py_XDECREF(wrap->_self);
+ Py_TYPE(self)->tp_free(self);
}
static PyObject *Dtool_WrapperBase_repr(PyObject *self) {
diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py
index 5aea876929..e7d12ce4d6 100755
--- a/makepanda/makepanda.py
+++ b/makepanda/makepanda.py
@@ -3984,12 +3984,12 @@ if (not RUNTIME):
#
if (not RUNTIME):
- OPTS=['DIR:panda/src/display', 'BUILDING:PANDA']
+ OPTS=['DIR:panda/src/display', 'BUILDING:PANDA', 'X11']
TargetAdd('p3display_graphicsStateGuardian.obj', opts=OPTS, input='graphicsStateGuardian.cxx')
TargetAdd('p3display_composite1.obj', opts=OPTS, input='p3display_composite1.cxx')
TargetAdd('p3display_composite2.obj', opts=OPTS, input='p3display_composite2.cxx')
- OPTS=['DIR:panda/src/display']
+ OPTS=['DIR:panda/src/display', 'X11']
IGATEFILES=GetDirectoryContents('panda/src/display', ["*.h", "*_composite*.cxx"])
IGATEFILES.remove("renderBuffer.h")
TargetAdd('libp3display.in', opts=OPTS, input=IGATEFILES)
@@ -5181,7 +5181,7 @@ if (GetTarget() == 'android' and PkgSkip("EGL")==0 and PkgSkip("GLES")==0 and no
#
if (not RUNTIME and (GetTarget() in ('windows', 'darwin') or PkgSkip("X11")==0) and PkgSkip("TINYDISPLAY")==0):
- OPTS=['DIR:panda/src/tinydisplay', 'BUILDING:TINYDISPLAY']
+ OPTS=['DIR:panda/src/tinydisplay', 'BUILDING:TINYDISPLAY', 'X11']
TargetAdd('p3tinydisplay_composite1.obj', opts=OPTS, input='p3tinydisplay_composite1.cxx')
TargetAdd('p3tinydisplay_composite2.obj', opts=OPTS, input='p3tinydisplay_composite2.cxx')
TargetAdd('p3tinydisplay_ztriangle_1.obj', opts=OPTS, input='ztriangle_1.cxx')