Skip to content

Commit 05d5bac

Browse files
committed
Merge branch 'release/1.10.x' into incoming
2 parents ffed596 + e5b7760 commit 05d5bac

27 files changed

+293
-148
lines changed

direct/src/actor/Actor.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,12 @@ def pprint(self):
500500

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

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

526536
def flush(self):
527537
"""
528-
Actor flush function
538+
Actor flush function. Used by `cleanup()`.
529539
"""
530540
self.clearPythonData()
531541

makepanda/makepanda.py

Lines changed: 81 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -797,6 +797,60 @@ def parseopts(args):
797797
elif os.path.isfile(GetThirdpartyDir() + "ffmpeg/lib/libavcodec.a"):
798798
# Needed when linking ffmpeg statically on Linux.
799799
LibName("FFMPEG", "-Wl,-Bsymbolic")
800+
# Don't export ffmpeg symbols from libp3ffmpeg when linking statically.
801+
for ffmpeg_lib in ffmpeg_libs:
802+
LibName("FFMPEG", "-Wl,--exclude-libs,%s.a" % (ffmpeg_lib))
803+
804+
if GetTarget() != "darwin":
805+
for fcollada_lib in fcollada_libs:
806+
LibName("FCOLLADA", "-Wl,--exclude-libs,lib%s.a" % (fcollada_lib))
807+
808+
if not PkgSkip("SWSCALE"):
809+
LibName("SWSCALE", "-Wl,--exclude-libs,libswscale.a")
810+
811+
if not PkgSkip("SWRESAMPLE"):
812+
LibName("SWRESAMPLE", "-Wl,--exclude-libs,libswresample.a")
813+
814+
if not PkgSkip("JPEG"):
815+
LibName("JPEG", "-Wl,--exclude-libs,libjpeg.a")
816+
817+
if not PkgSkip("TIFF"):
818+
LibName("TIFF", "-Wl,--exclude-libs,libtiff.a")
819+
820+
if not PkgSkip("PNG"):
821+
LibName("PNG", "-Wl,--exclude-libs,libpng.a")
822+
LibName("PNG", "-Wl,--exclude-libs,libpng16.a")
823+
824+
if not PkgSkip("SQUISH"):
825+
LibName("SQUISH", "-Wl,--exclude-libs,libsquish.a")
826+
827+
if not PkgSkip("OPENEXR"):
828+
LibName("OPENEXR", "-Wl,--exclude-libs,libHalf.a")
829+
LibName("OPENEXR", "-Wl,--exclude-libs,libIex.a")
830+
LibName("OPENEXR", "-Wl,--exclude-libs,libIexMath.a")
831+
LibName("OPENEXR", "-Wl,--exclude-libs,libIlmImf.a")
832+
LibName("OPENEXR", "-Wl,--exclude-libs,libIlmImfUtil.a")
833+
LibName("OPENEXR", "-Wl,--exclude-libs,libIlmThread.a")
834+
LibName("OPENEXR", "-Wl,--exclude-libs,libImath.a")
835+
836+
if not PkgSkip("VORBIS"):
837+
LibName("VORBIS", "-Wl,--exclude-libs,libogg.a")
838+
LibName("VORBIS", "-Wl,--exclude-libs,libvorbis.a")
839+
LibName("VORBIS", "-Wl,--exclude-libs,libvorbisenc.a")
840+
LibName("VORBIS", "-Wl,--exclude-libs,libvorbisfile.a")
841+
842+
if not PkgSkip("OPUS"):
843+
LibName("OPUS", "-Wl,--exclude-libs,libogg.a")
844+
LibName("OPUS", "-Wl,--exclude-libs,libopus.a")
845+
LibName("OPUS", "-Wl,--exclude-libs,libopusfile.a")
846+
847+
if not PkgSkip("VRPN"):
848+
LibName("VRPN", "-Wl,--exclude-libs,libvrpn.a")
849+
LibName("VRPN", "-Wl,--exclude-libs,libquat.a")
850+
851+
if not PkgSkip("ARTOOLKIT"):
852+
LibName("ARTOOLKIT", "-Wl,--exclude-libs,libAR.a")
853+
LibName("ARTOOLKIT", "-Wl,--exclude-libs,libARMulti.a")
800854

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

812-
if GetTarget() == "darwin" and not PkgSkip("OPENAL"):
813-
LibName("OPENAL", "-framework AudioUnit")
814-
LibName("OPENAL", "-framework AudioToolbox")
815-
LibName("OPENAL", "-framework CoreAudio")
866+
if not PkgSkip("OPENAL"):
867+
if GetTarget() == "darwin":
868+
LibName("OPENAL", "-framework AudioUnit")
869+
LibName("OPENAL", "-framework AudioToolbox")
870+
LibName("OPENAL", "-framework CoreAudio")
871+
else:
872+
LibName("OPENAL", "-Wl,--exclude-libs,libopenal.a")
816873

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

881+
if GetTarget() != "darwin":
882+
LibName("ASSIMP", "-Wl,--exclude-libs,libassimp.a")
883+
LibName("ASSIMP", "-Wl,--exclude-libs,libIrrXML.a")
884+
824885
if not PkgSkip("PYTHON"):
825886
python_lib = SDK["PYTHONVERSION"]
826887
SmartPkgEnable("PYTHON", "", python_lib, (SDK["PYTHONVERSION"], SDK["PYTHONVERSION"] + "/Python.h"))
@@ -833,6 +894,10 @@ def parseopts(args):
833894
SmartPkgEnable("ZLIB", "zlib", ("z"), "zlib.h")
834895
SmartPkgEnable("GTK2", "gtk+-2.0")
835896

897+
if not PkgSkip("OPENSSL") and GetTarget() != "darwin":
898+
LibName("OPENSSL", "-Wl,--exclude-libs,libssl.a")
899+
LibName("OPENSSL", "-Wl,--exclude-libs,libcrypto.a")
900+
836901
if GetTarget() != 'darwin':
837902
# CgGL is covered by the Cg framework, and we don't need X11 components on OSX
838903
if not PkgSkip("NVIDIACG"):
@@ -3207,7 +3272,7 @@ def get_config_express():
32073272
TargetAdd('interrogate.exe', input='libp3cppParser.ilb')
32083273
TargetAdd('interrogate.exe', input=COMMON_DTOOL_LIBS)
32093274
TargetAdd('interrogate.exe', input='libp3interrogatedb.dll')
3210-
TargetAdd('interrogate.exe', opts=['ADVAPI', 'OPENSSL', 'WINSHELL', 'WINGDI', 'WINUSER'])
3275+
TargetAdd('interrogate.exe', opts=['ADVAPI', 'WINSHELL', 'WINGDI', 'WINUSER'])
32113276

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

32273292
TargetAdd('parse_file_parse_file.obj', opts=OPTS, input='parse_file.cxx')
32283293
TargetAdd('parse_file.exe', input='parse_file_parse_file.obj')
32293294
TargetAdd('parse_file.exe', input='libp3cppParser.ilb')
32303295
TargetAdd('parse_file.exe', input=COMMON_DTOOL_LIBS)
32313296
TargetAdd('parse_file.exe', input='libp3interrogatedb.dll')
3232-
TargetAdd('parse_file.exe', opts=['ADVAPI', 'OPENSSL', 'WINSHELL', 'WINGDI', 'WINUSER'])
3297+
TargetAdd('parse_file.exe', opts=['ADVAPI', 'WINSHELL', 'WINGDI', 'WINUSER'])
32333298

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

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

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

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

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

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

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

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

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

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

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

48524917
#
48534918
# DIRECTORY: direct/src/dcparse/

panda/src/chan/animChannelScalarTable.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,10 @@ class EXPCL_PANDA_CHAN AnimChannelScalarTable : public AnimChannelScalar {
3030
AnimChannelScalarTable();
3131
AnimChannelScalarTable(AnimGroup *parent, const AnimChannelScalarTable &copy);
3232

33-
public:
33+
PUBLISHED:
3434
AnimChannelScalarTable(AnimGroup *parent, const std::string &name);
3535

36+
public:
3637
virtual bool has_changed(int last_frame, double last_frac,
3738
int this_frame, double this_frac);
3839
virtual void get_value(int frame, PN_stdfloat &value);

panda/src/char/characterSlider.cxx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,14 @@ CharacterSlider(PartGroup *parent, const std::string &name)
4444
: MovingPartScalar(parent, name) {
4545
}
4646

47+
/**
48+
*
49+
*/
50+
CharacterSlider::
51+
CharacterSlider(PartGroup *parent, const std::string &name, const PN_stdfloat &default_value)
52+
: MovingPartScalar(parent, name, default_value) {
53+
}
54+
4755
/**
4856
*
4957
*/

panda/src/char/characterSlider.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class EXPCL_PANDA_CHAR CharacterSlider : public MovingPartScalar {
3232

3333
PUBLISHED:
3434
explicit CharacterSlider(PartGroup *parent, const std::string &name);
35+
explicit CharacterSlider(PartGroup *parent, const std::string &name, const PN_stdfloat &default_value);
3536
virtual ~CharacterSlider();
3637

3738
public:

panda/src/cocoadisplay/cocoaGraphicsWindow.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,11 @@ class EXPCL_PANDA_COCOADISPLAY CocoaGraphicsWindow : public GraphicsWindow {
7474
virtual void mouse_mode_relative();
7575

7676
private:
77+
NSData *load_image_data(const Filename &filename);
7778
NSImage *load_image(const Filename &filename);
7879

80+
NSCursor *load_cursor(const Filename &filename);
81+
7982
void handle_modifier(NSUInteger modifierFlags, NSUInteger mask, ButtonHandle button);
8083
ButtonHandle map_key(unsigned short c) const;
8184
ButtonHandle map_raw_key(unsigned short keycode) const;
@@ -94,7 +97,7 @@ class EXPCL_PANDA_COCOADISPLAY CocoaGraphicsWindow : public GraphicsWindow {
9497
CGDisplayModeRef _fullscreen_mode;
9598
CGDisplayModeRef _windowed_mode;
9699

97-
typedef pmap<Filename, NSImage*> IconImages;
100+
typedef pmap<Filename, NSData*> IconImages;
98101
IconImages _images;
99102

100103
public:

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy