Skip to content
Permalink
Browse files

Merge branch 'release/1.10.x' into incoming

  • Loading branch information
rdb committed Jan 21, 2020
2 parents ffed596 + e5b7760 commit 05d5bac598b47e20fde4188332de51aad7031c44
@@ -500,7 +500,12 @@ def pprint(self):

def cleanup(self):
"""
Actor cleanup function
This method should be called when intending to destroy the Actor, and
cleans up any additional resources stored on the Actor class before
removing the underlying node using `removeNode()`.
Note that `removeNode()` itself is not sufficient to destroy actors,
which is why this method exists.
"""
self.stop(None)
self.clearPythonData()
@@ -512,6 +517,11 @@ def cleanup(self):
self.removeNode()

def removeNode(self):
"""
You should call `cleanup()` for Actor objects instead, since
:meth:`~panda3d.core.NodePath.removeNode()` is not sufficient for
completely destroying Actor objects.
"""
if self.__geomNode and (self.__geomNode.getNumChildren() > 0):
assert self.notify.warning("called actor.removeNode() on %s without calling cleanup()" % self.getName())
NodePath.removeNode(self)
@@ -525,7 +535,7 @@ def clearPythonData(self):

def flush(self):
"""
Actor flush function
Actor flush function. Used by `cleanup()`.
"""
self.clearPythonData()

@@ -797,6 +797,60 @@ def parseopts(args):
elif os.path.isfile(GetThirdpartyDir() + "ffmpeg/lib/libavcodec.a"):
# Needed when linking ffmpeg statically on Linux.
LibName("FFMPEG", "-Wl,-Bsymbolic")
# Don't export ffmpeg symbols from libp3ffmpeg when linking statically.
for ffmpeg_lib in ffmpeg_libs:
LibName("FFMPEG", "-Wl,--exclude-libs,%s.a" % (ffmpeg_lib))

if GetTarget() != "darwin":
for fcollada_lib in fcollada_libs:
LibName("FCOLLADA", "-Wl,--exclude-libs,lib%s.a" % (fcollada_lib))

if not PkgSkip("SWSCALE"):
LibName("SWSCALE", "-Wl,--exclude-libs,libswscale.a")

if not PkgSkip("SWRESAMPLE"):
LibName("SWRESAMPLE", "-Wl,--exclude-libs,libswresample.a")

if not PkgSkip("JPEG"):
LibName("JPEG", "-Wl,--exclude-libs,libjpeg.a")

if not PkgSkip("TIFF"):
LibName("TIFF", "-Wl,--exclude-libs,libtiff.a")

if not PkgSkip("PNG"):
LibName("PNG", "-Wl,--exclude-libs,libpng.a")
LibName("PNG", "-Wl,--exclude-libs,libpng16.a")

if not PkgSkip("SQUISH"):
LibName("SQUISH", "-Wl,--exclude-libs,libsquish.a")

if not PkgSkip("OPENEXR"):
LibName("OPENEXR", "-Wl,--exclude-libs,libHalf.a")
LibName("OPENEXR", "-Wl,--exclude-libs,libIex.a")
LibName("OPENEXR", "-Wl,--exclude-libs,libIexMath.a")
LibName("OPENEXR", "-Wl,--exclude-libs,libIlmImf.a")
LibName("OPENEXR", "-Wl,--exclude-libs,libIlmImfUtil.a")
LibName("OPENEXR", "-Wl,--exclude-libs,libIlmThread.a")
LibName("OPENEXR", "-Wl,--exclude-libs,libImath.a")

if not PkgSkip("VORBIS"):
LibName("VORBIS", "-Wl,--exclude-libs,libogg.a")
LibName("VORBIS", "-Wl,--exclude-libs,libvorbis.a")
LibName("VORBIS", "-Wl,--exclude-libs,libvorbisenc.a")
LibName("VORBIS", "-Wl,--exclude-libs,libvorbisfile.a")

if not PkgSkip("OPUS"):
LibName("OPUS", "-Wl,--exclude-libs,libogg.a")
LibName("OPUS", "-Wl,--exclude-libs,libopus.a")
LibName("OPUS", "-Wl,--exclude-libs,libopusfile.a")

if not PkgSkip("VRPN"):
LibName("VRPN", "-Wl,--exclude-libs,libvrpn.a")
LibName("VRPN", "-Wl,--exclude-libs,libquat.a")

if not PkgSkip("ARTOOLKIT"):
LibName("ARTOOLKIT", "-Wl,--exclude-libs,libAR.a")
LibName("ARTOOLKIT", "-Wl,--exclude-libs,libARMulti.a")

if PkgSkip("FFMPEG") or GetTarget() == "darwin":
cv_lib = ChooseLib(("opencv_core", "cv"), "OPENCV")
@@ -809,10 +863,13 @@ def parseopts(args):
else:
PkgDisable("OPENCV")

if GetTarget() == "darwin" and not PkgSkip("OPENAL"):
LibName("OPENAL", "-framework AudioUnit")
LibName("OPENAL", "-framework AudioToolbox")
LibName("OPENAL", "-framework CoreAudio")
if not PkgSkip("OPENAL"):
if GetTarget() == "darwin":
LibName("OPENAL", "-framework AudioUnit")
LibName("OPENAL", "-framework AudioToolbox")
LibName("OPENAL", "-framework CoreAudio")
else:
LibName("OPENAL", "-Wl,--exclude-libs,libopenal.a")

if not PkgSkip("ASSIMP") and \
os.path.isfile(GetThirdpartyDir() + "assimp/lib/libassimp.a"):
@@ -821,6 +878,10 @@ def parseopts(args):
if os.path.isfile(irrxml):
LibName("ASSIMP", irrxml)

if GetTarget() != "darwin":
LibName("ASSIMP", "-Wl,--exclude-libs,libassimp.a")
LibName("ASSIMP", "-Wl,--exclude-libs,libIrrXML.a")

if not PkgSkip("PYTHON"):
python_lib = SDK["PYTHONVERSION"]
SmartPkgEnable("PYTHON", "", python_lib, (SDK["PYTHONVERSION"], SDK["PYTHONVERSION"] + "/Python.h"))
@@ -833,6 +894,10 @@ def parseopts(args):
SmartPkgEnable("ZLIB", "zlib", ("z"), "zlib.h")
SmartPkgEnable("GTK2", "gtk+-2.0")

if not PkgSkip("OPENSSL") and GetTarget() != "darwin":
LibName("OPENSSL", "-Wl,--exclude-libs,libssl.a")
LibName("OPENSSL", "-Wl,--exclude-libs,libcrypto.a")

if GetTarget() != 'darwin':
# CgGL is covered by the Cg framework, and we don't need X11 components on OSX
if not PkgSkip("NVIDIACG"):
@@ -3207,7 +3272,7 @@ def get_config_express():
TargetAdd('interrogate.exe', input='libp3cppParser.ilb')
TargetAdd('interrogate.exe', input=COMMON_DTOOL_LIBS)
TargetAdd('interrogate.exe', input='libp3interrogatedb.dll')
TargetAdd('interrogate.exe', opts=['ADVAPI', 'OPENSSL', 'WINSHELL', 'WINGDI', 'WINUSER'])
TargetAdd('interrogate.exe', opts=['ADVAPI', 'WINSHELL', 'WINGDI', 'WINUSER'])

preamble = WriteEmbeddedStringFile('interrogate_preamble_python_native', inputs=[
'dtool/src/interrogatedb/py_panda.cxx',
@@ -3222,14 +3287,14 @@ def get_config_express():
TargetAdd('interrogate_module.exe', input='libp3cppParser.ilb')
TargetAdd('interrogate_module.exe', input=COMMON_DTOOL_LIBS)
TargetAdd('interrogate_module.exe', input='libp3interrogatedb.dll')
TargetAdd('interrogate_module.exe', opts=['ADVAPI', 'OPENSSL', 'WINSHELL', 'WINGDI', 'WINUSER'])
TargetAdd('interrogate_module.exe', opts=['ADVAPI', 'WINSHELL', 'WINGDI', 'WINUSER'])

TargetAdd('parse_file_parse_file.obj', opts=OPTS, input='parse_file.cxx')
TargetAdd('parse_file.exe', input='parse_file_parse_file.obj')
TargetAdd('parse_file.exe', input='libp3cppParser.ilb')
TargetAdd('parse_file.exe', input=COMMON_DTOOL_LIBS)
TargetAdd('parse_file.exe', input='libp3interrogatedb.dll')
TargetAdd('parse_file.exe', opts=['ADVAPI', 'OPENSSL', 'WINSHELL', 'WINGDI', 'WINUSER'])
TargetAdd('parse_file.exe', opts=['ADVAPI', 'WINSHELL', 'WINGDI', 'WINUSER'])

#
# DIRECTORY: dtool/src/prckeys/
@@ -3240,7 +3305,7 @@ def get_config_express():
TargetAdd('make-prc-key_makePrcKey.obj', opts=OPTS, input='makePrcKey.cxx')
TargetAdd('make-prc-key.exe', input='make-prc-key_makePrcKey.obj')
TargetAdd('make-prc-key.exe', input=COMMON_DTOOL_LIBS)
TargetAdd('make-prc-key.exe', opts=['ADVAPI', 'OPENSSL', 'WINSHELL', 'WINGDI', 'WINUSER'])
TargetAdd('make-prc-key.exe', opts=['ADVAPI', 'OPENSSL', 'WINSHELL', 'WINGDI', 'WINUSER'])

#
# DIRECTORY: dtool/src/test_interrogate/
@@ -3251,7 +3316,7 @@ def get_config_express():
TargetAdd('test_interrogate.exe', input='test_interrogate_test_interrogate.obj')
TargetAdd('test_interrogate.exe', input='libp3interrogatedb.dll')
TargetAdd('test_interrogate.exe', input=COMMON_DTOOL_LIBS)
TargetAdd('test_interrogate.exe', opts=['ADVAPI', 'OPENSSL', 'WINSHELL', 'WINGDI', 'WINUSER'])
TargetAdd('test_interrogate.exe', opts=['ADVAPI', 'WINSHELL', 'WINGDI', 'WINUSER'])

#
# DIRECTORY: dtool/src/dtoolbase/
@@ -3352,7 +3417,7 @@ def get_config_express():
TargetAdd('libpandaexpress.dll', input='p3express_composite2.obj')
TargetAdd('libpandaexpress.dll', input='p3pandabase_pandabase.obj')
TargetAdd('libpandaexpress.dll', input=COMMON_DTOOL_LIBS)
TargetAdd('libpandaexpress.dll', opts=['ADVAPI', 'WINSOCK2', 'OPENSSL', 'ZLIB', 'WINGDI', 'WINUSER', 'ANDROID'])
TargetAdd('libpandaexpress.dll', opts=['ADVAPI', 'WINSOCK2', 'OPENSSL', 'ZLIB', 'WINGDI', 'WINUSER', 'ANDROID'])

#
# DIRECTORY: panda/src/pipeline/
@@ -4151,7 +4216,7 @@ def get_config_express():
#

if (PkgSkip("OPENSSL")==0 and PkgSkip("DEPLOYTOOLS")==0):
OPTS=['DIR:panda/src/downloadertools', 'OPENSSL', 'ADVAPI', 'WINSOCK2', 'WINSHELL', 'WINGDI', 'WINUSER']
OPTS=['DIR:panda/src/downloadertools', 'ADVAPI', 'WINSOCK2', 'WINSHELL', 'WINGDI', 'WINUSER']

TargetAdd('pdecrypt_pdecrypt.obj', opts=OPTS, input='pdecrypt.cxx')
TargetAdd('pdecrypt.exe', input=['pdecrypt_pdecrypt.obj'])
@@ -4168,7 +4233,7 @@ def get_config_express():
#

if (PkgSkip("ZLIB")==0 and PkgSkip("DEPLOYTOOLS")==0):
OPTS=['DIR:panda/src/downloadertools', 'ZLIB', 'OPENSSL', 'ADVAPI', 'WINSOCK2', 'WINSHELL', 'WINGDI', 'WINUSER']
OPTS=['DIR:panda/src/downloadertools', 'ZLIB', 'ADVAPI', 'WINSOCK2', 'WINSHELL', 'WINGDI', 'WINUSER']

TargetAdd('multify_multify.obj', opts=OPTS, input='multify.cxx')
TargetAdd('multify.exe', input=['multify_multify.obj'])
@@ -4748,10 +4813,10 @@ def get_config_express():
#

if (PkgSkip("DIRECT")==0):
OPTS=['DIR:direct/src/distributed', 'DIR:direct/src/dcparser', 'WITHINPANDA', 'BUILDING:DIRECT', 'OPENSSL']
OPTS=['DIR:direct/src/distributed', 'DIR:direct/src/dcparser', 'WITHINPANDA', 'BUILDING:DIRECT']
TargetAdd('p3distributed_config_distributed.obj', opts=OPTS, input='config_distributed.cxx')

OPTS=['DIR:direct/src/distributed', 'WITHINPANDA', 'OPENSSL']
OPTS=['DIR:direct/src/distributed', 'WITHINPANDA']
IGATEFILES=GetDirectoryContents('direct/src/distributed', ["*.h", "*.cxx"])
TargetAdd('libp3distributed.in', opts=OPTS, input=IGATEFILES)
TargetAdd('libp3distributed.in', opts=['IMOD:panda3d.direct', 'ILIB:libp3distributed', 'SRCDIR:direct/src/distributed'])
@@ -4819,7 +4884,7 @@ def get_config_express():
TargetAdd('libp3direct.dll', input='p3motiontrail_config_motiontrail.obj')
TargetAdd('libp3direct.dll', input='p3motiontrail_cMotionTrail.obj')
TargetAdd('libp3direct.dll', input=COMMON_PANDA_LIBS)
TargetAdd('libp3direct.dll', opts=['ADVAPI', 'OPENSSL', 'WINUSER', 'WINGDI'])
TargetAdd('libp3direct.dll', opts=['ADVAPI', 'WINUSER', 'WINGDI'])

PyTargetAdd('direct_module.obj', input='libp3dcparser.in')
PyTargetAdd('direct_module.obj', input='libp3showbase.in')
@@ -4847,7 +4912,7 @@ def get_config_express():
PyTargetAdd('direct.pyd', input='libp3direct.dll')
PyTargetAdd('direct.pyd', input='libp3interrogatedb.dll')
PyTargetAdd('direct.pyd', input=COMMON_PANDA_LIBS)
PyTargetAdd('direct.pyd', opts=['OPENSSL', 'WINUSER', 'WINGDI', 'WINSOCK2'])
PyTargetAdd('direct.pyd', opts=['WINUSER', 'WINGDI', 'WINSOCK2'])

#
# DIRECTORY: direct/src/dcparse/
@@ -30,9 +30,10 @@ class EXPCL_PANDA_CHAN AnimChannelScalarTable : public AnimChannelScalar {
AnimChannelScalarTable();
AnimChannelScalarTable(AnimGroup *parent, const AnimChannelScalarTable &copy);

public:
PUBLISHED:
AnimChannelScalarTable(AnimGroup *parent, const std::string &name);

public:
virtual bool has_changed(int last_frame, double last_frac,
int this_frame, double this_frac);
virtual void get_value(int frame, PN_stdfloat &value);
@@ -44,6 +44,14 @@ CharacterSlider(PartGroup *parent, const std::string &name)
: MovingPartScalar(parent, name) {
}

/**
*
*/
CharacterSlider::
CharacterSlider(PartGroup *parent, const std::string &name, const PN_stdfloat &default_value)
: MovingPartScalar(parent, name, default_value) {
}

/**
*
*/
@@ -32,6 +32,7 @@ class EXPCL_PANDA_CHAR CharacterSlider : public MovingPartScalar {

PUBLISHED:
explicit CharacterSlider(PartGroup *parent, const std::string &name);
explicit CharacterSlider(PartGroup *parent, const std::string &name, const PN_stdfloat &default_value);
virtual ~CharacterSlider();

public:
@@ -74,8 +74,11 @@ class EXPCL_PANDA_COCOADISPLAY CocoaGraphicsWindow : public GraphicsWindow {
virtual void mouse_mode_relative();

private:
NSData *load_image_data(const Filename &filename);
NSImage *load_image(const Filename &filename);

NSCursor *load_cursor(const Filename &filename);

void handle_modifier(NSUInteger modifierFlags, NSUInteger mask, ButtonHandle button);
ButtonHandle map_key(unsigned short c) const;
ButtonHandle map_raw_key(unsigned short keycode) const;
@@ -94,7 +97,7 @@ class EXPCL_PANDA_COCOADISPLAY CocoaGraphicsWindow : public GraphicsWindow {
CGDisplayModeRef _fullscreen_mode;
CGDisplayModeRef _windowed_mode;

typedef pmap<Filename, NSImage*> IconImages;
typedef pmap<Filename, NSData*> IconImages;
IconImages _images;

public:

0 comments on commit 05d5bac

Please sign in to comment.
You can’t perform that action at this time.