فهرست منبع

directbase: Introduce BUILDING_ defines for each component

Ditto everything before, but for direct.
Sam Edwards 7 سال پیش
والد
کامیت
f231ba4cd7

+ 0 - 6
direct/src/dcparser/dcbase.h

@@ -80,12 +80,6 @@ using namespace std;
 #define nassertv(condition) assert(condition)
 #define nassertv_always(condition) assert(condition)
 
-// Panda defines these export symbols for building DLL's.  Outside of Panda,
-// we assume we're not putting this code in a DLL, so we define them to
-// nothing.
-#define EXPCL_DIRECT
-#define EXPTP_DIRECT
-
 // Panda defines a special Filename class.  We'll use an ordinary string
 // instead.
 typedef string Filename;

+ 2 - 2
direct/src/deadrec/config_deadrec.h

@@ -18,10 +18,10 @@
 #include "notifyCategoryProxy.h"
 #include "configVariableBool.h"
 
-NotifyCategoryDecl(deadrec, EXPCL_DIRECT, EXPTP_DIRECT);
+NotifyCategoryDecl(deadrec, EXPCL_DIRECT_DEADREC, EXPTP_DIRECT_DEADREC);
 
 extern ConfigVariableBool accept_clock_skew;
 
-extern EXPCL_DIRECT void init_libdeadrec();
+extern EXPCL_DIRECT_DEADREC void init_libdeadrec();
 
 #endif

+ 1 - 1
direct/src/deadrec/smoothMover.h

@@ -38,7 +38,7 @@ static const int max_timestamp_delays = 10;
  * update.  The assumption is that all SmoothMovers in the world will be
  * operating in the same mode together.
  */
-class EXPCL_DIRECT SmoothMover {
+class EXPCL_DIRECT_DEADREC SmoothMover {
 PUBLISHED:
   SmoothMover();
   ~SmoothMover();

+ 54 - 4
direct/src/directbase/directsymbols.h

@@ -16,12 +16,62 @@
 
 /* See dtoolsymbols.h for a rant on the purpose of this file.  */
 
+/* BUILDING_DIRECT is just a buildsystem shortcut for all of these: */
 #ifdef BUILDING_DIRECT
-  #define EXPCL_DIRECT EXPORT_CLASS
-  #define EXPTP_DIRECT EXPORT_TEMPL
+  #define BUILDING_DIRECT_DEADREC
+  #define BUILDING_DIRECT_DIRECTD
+  #define BUILDING_DIRECT_INTERVAL
+  #define BUILDING_DIRECT_MOTIONTRAIL
+  #define BUILDING_DIRECT_SHOWBASE
+  #define BUILDING_DIRECT_DISTRIBUTED
+#endif
+
+#ifdef BUILDING_DIRECT_DEADREC
+  #define EXPCL_DIRECT_DEADREC EXPORT_CLASS
+  #define EXPTP_DIRECT_DEADREC EXPORT_TEMPL
+#else
+  #define EXPCL_DIRECT_DEADREC IMPORT_CLASS
+  #define EXPTP_DIRECT_DEADREC IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_DIRECT_DIRECTD
+  #define EXPCL_DIRECT_DIRECTD EXPORT_CLASS
+  #define EXPTP_DIRECT_DIRECTD EXPORT_TEMPL
+#else
+  #define EXPCL_DIRECT_DIRECTD IMPORT_CLASS
+  #define EXPTP_DIRECT_DIRECTD IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_DIRECT_INTERVAL
+  #define EXPCL_DIRECT_INTERVAL EXPORT_CLASS
+  #define EXPTP_DIRECT_INTERVAL EXPORT_TEMPL
+#else
+  #define EXPCL_DIRECT_INTERVAL IMPORT_CLASS
+  #define EXPTP_DIRECT_INTERVAL IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_DIRECT_MOTIONTRAIL
+  #define EXPCL_DIRECT_MOTIONTRAIL EXPORT_CLASS
+  #define EXPTP_DIRECT_MOTIONTRAIL EXPORT_TEMPL
+#else
+  #define EXPCL_DIRECT_MOTIONTRAIL IMPORT_CLASS
+  #define EXPTP_DIRECT_MOTIONTRAIL IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_DIRECT_SHOWBASE
+  #define EXPCL_DIRECT_SHOWBASE EXPORT_CLASS
+  #define EXPTP_DIRECT_SHOWBASE EXPORT_TEMPL
+#else
+  #define EXPCL_DIRECT_SHOWBASE IMPORT_CLASS
+  #define EXPTP_DIRECT_SHOWBASE IMPORT_TEMPL
+#endif
+
+#ifdef BUILDING_DIRECT_DISTRIBUTED
+  #define EXPCL_DIRECT_DISTRIBUTED EXPORT_CLASS
+  #define EXPTP_DIRECT_DISTRIBUTED EXPORT_TEMPL
 #else
-  #define EXPCL_DIRECT IMPORT_CLASS
-  #define EXPTP_DIRECT IMPORT_TEMPL
+  #define EXPCL_DIRECT_DISTRIBUTED IMPORT_CLASS
+  #define EXPTP_DIRECT_DISTRIBUTED IMPORT_TEMPL
 #endif
 
 #endif

+ 1 - 1
direct/src/directd/directd.h

@@ -52,7 +52,7 @@ typedef int HANDLE;
  * presented in order chronologically by their intended usage.  The first
  * group will probably provide everthing needed for DirectD.
  */
-class EXPCL_DIRECT DirectD {
+class EXPCL_DIRECT_DIRECTD DirectD {
 PUBLISHED:
   DirectD();
   ~DirectD();

+ 1 - 1
direct/src/distributed/cConnectionRepository.h

@@ -53,7 +53,7 @@ class SocketStream;
  * the C++ layer, while server messages that are not understood by the C++
  * layer are returned up to the Python layer for processing.
  */
-class EXPCL_DIRECT CConnectionRepository {
+class EXPCL_DIRECT_DISTRIBUTED CConnectionRepository {
 PUBLISHED:
   explicit CConnectionRepository(bool has_owner_view = false,
                                  bool threaded_net = false);

+ 1 - 1
direct/src/distributed/cDistributedSmoothNodeBase.h

@@ -28,7 +28,7 @@ class CConnectionRepository;
  * This class defines some basic methods of DistributedSmoothNodeBase which
  * have been moved into C++ as a performance optimization.
  */
-class EXPCL_DIRECT CDistributedSmoothNodeBase {
+class EXPCL_DIRECT_DISTRIBUTED CDistributedSmoothNodeBase {
 PUBLISHED:
   CDistributedSmoothNodeBase();
   ~CDistributedSmoothNodeBase();

+ 2 - 2
direct/src/distributed/config_distributed.h

@@ -21,13 +21,13 @@
 #include "configVariableDouble.h"
 #include "configVariableBool.h"
 
-NotifyCategoryDecl(distributed, EXPCL_DIRECT, EXPTP_DIRECT);
+NotifyCategoryDecl(distributed, EXPCL_DIRECT_DISTRIBUTED, EXPTP_DIRECT_DISTRIBUTED);
 
 extern ConfigVariableInt game_server_timeout_ms;
 extern ConfigVariableDouble min_lag;
 extern ConfigVariableDouble max_lag;
 extern ConfigVariableBool handle_datagrams_internally;
 
-extern EXPCL_DIRECT void init_libdistributed();
+extern EXPCL_DIRECT_DISTRIBUTED void init_libdistributed();
 
 #endif

+ 1 - 1
direct/src/interval/cConstrainHprInterval.h

@@ -24,7 +24,7 @@
  * A constraint interval that will constrain the orientation of one node to
  * the orientation of another.
  */
-class EXPCL_DIRECT CConstrainHprInterval : public CConstraintInterval {
+class EXPCL_DIRECT_INTERVAL CConstrainHprInterval : public CConstraintInterval {
 PUBLISHED:
   explicit CConstrainHprInterval(const string &name, double duration,
                                  const NodePath &node, const NodePath &target,

+ 1 - 1
direct/src/interval/cConstrainPosHprInterval.h

@@ -24,7 +24,7 @@
  * A constraint interval that will constrain the position and orientation of
  * one node to the position and orientation of another.
  */
-class EXPCL_DIRECT CConstrainPosHprInterval : public CConstraintInterval {
+class EXPCL_DIRECT_INTERVAL CConstrainPosHprInterval : public CConstraintInterval {
 PUBLISHED:
   explicit CConstrainPosHprInterval(const string &name, double duration,
                                     const NodePath &node, const NodePath &target,

+ 1 - 1
direct/src/interval/cConstrainPosInterval.h

@@ -23,7 +23,7 @@
  * A constraint interval that will constrain the position of one node to the
  * position of another.
  */
-class EXPCL_DIRECT CConstrainPosInterval : public CConstraintInterval {
+class EXPCL_DIRECT_INTERVAL CConstrainPosInterval : public CConstraintInterval {
 PUBLISHED:
   explicit CConstrainPosInterval(const string &name, double duration,
                                  const NodePath &node, const NodePath &target,

+ 1 - 1
direct/src/interval/cConstrainTransformInterval.h

@@ -22,7 +22,7 @@
  * A constraint interval that will constrain the transform of one node to the
  * transform of another.
  */
-class EXPCL_DIRECT CConstrainTransformInterval : public CConstraintInterval {
+class EXPCL_DIRECT_INTERVAL CConstrainTransformInterval : public CConstraintInterval {
 PUBLISHED:
   explicit CConstrainTransformInterval(const string &name, double duration,
                                        const NodePath &node,

+ 1 - 1
direct/src/interval/cConstraintInterval.h

@@ -21,7 +21,7 @@
  * The base class for a family of intervals that constrain some property to a
  * value over time.
  */
-class EXPCL_DIRECT CConstraintInterval : public CInterval {
+class EXPCL_DIRECT_INTERVAL CConstraintInterval : public CInterval {
 PUBLISHED:
  bool bogus_variable;
 

+ 2 - 2
direct/src/interval/cInterval.h

@@ -32,7 +32,7 @@ class CIntervalManager;
  * C++ will inherit from this class; Intervals that must be implemented in
  * Python will inherit from the similar Python class.
  */
-class EXPCL_DIRECT CInterval : public TypedReferenceCount {
+class EXPCL_DIRECT_INTERVAL CInterval : public TypedReferenceCount {
 public:
   CInterval(const string &name, double duration, bool open_ended);
   virtual ~CInterval();
@@ -202,7 +202,7 @@ private:
 };
 
 INLINE ostream &operator << (ostream &out, const CInterval &ival);
-EXPCL_DIRECT ostream &operator << (ostream &out, CInterval::State state);
+EXPCL_DIRECT_INTERVAL ostream &operator << (ostream &out, CInterval::State state);
 
 #include "cInterval.I"
 

+ 1 - 1
direct/src/interval/cIntervalManager.h

@@ -36,7 +36,7 @@ class EventQueue;
  * It is also possible to create multiple IntervalManager objects for special
  * needs.
  */
-class EXPCL_DIRECT CIntervalManager {
+class EXPCL_DIRECT_INTERVAL CIntervalManager {
 PUBLISHED:
   CIntervalManager();
   ~CIntervalManager();

+ 1 - 1
direct/src/interval/cLerpAnimEffectInterval.h

@@ -29,7 +29,7 @@
  * CLerpAnimEffectInterval to adjust the degree to which each animation
  * affects the actor.
  */
-class EXPCL_DIRECT CLerpAnimEffectInterval : public CLerpInterval {
+class EXPCL_DIRECT_INTERVAL CLerpAnimEffectInterval : public CLerpInterval {
 PUBLISHED:
   INLINE explicit CLerpAnimEffectInterval(const string &name, double duration,
                                           BlendType blend_type);

+ 1 - 1
direct/src/interval/cLerpInterval.h

@@ -21,7 +21,7 @@
  * The base class for a family of intervals that linearly interpolate one or
  * more numeric values over time.
  */
-class EXPCL_DIRECT CLerpInterval : public CInterval {
+class EXPCL_DIRECT_INTERVAL CLerpInterval : public CInterval {
 PUBLISHED:
   enum BlendType {
     BT_no_blend,

+ 1 - 1
direct/src/interval/cLerpNodePathInterval.h

@@ -23,7 +23,7 @@
  * An interval that lerps one or more properties (like pos, hpr, etc.) on a
  * NodePath over time.
  */
-class EXPCL_DIRECT CLerpNodePathInterval : public CLerpInterval {
+class EXPCL_DIRECT_INTERVAL CLerpNodePathInterval : public CLerpInterval {
 PUBLISHED:
   explicit CLerpNodePathInterval(const string &name, double duration,
                                  BlendType blend_type, bool bake_in_start,

+ 1 - 1
direct/src/interval/cMetaInterval.h

@@ -29,7 +29,7 @@
  * own begin and end times.  Some of them may overlap and some of them may
  * not.
  */
-class EXPCL_DIRECT CMetaInterval : public CInterval {
+class EXPCL_DIRECT_INTERVAL CMetaInterval : public CInterval {
 PUBLISHED:
   explicit CMetaInterval(const string &name);
   virtual ~CMetaInterval();

+ 3 - 3
direct/src/interval/config_interval.h

@@ -20,11 +20,11 @@
 #include "configVariableDouble.h"
 #include "configVariableBool.h"
 
-NotifyCategoryDecl(interval, EXPCL_DIRECT, EXPTP_DIRECT);
+NotifyCategoryDecl(interval, EXPCL_DIRECT_INTERVAL, EXPTP_DIRECT_INTERVAL);
 
 extern ConfigVariableDouble interval_precision;
-extern EXPCL_DIRECT ConfigVariableBool verify_intervals;
+extern EXPCL_DIRECT_INTERVAL ConfigVariableBool verify_intervals;
 
-extern EXPCL_DIRECT void init_libinterval();
+extern EXPCL_DIRECT_INTERVAL void init_libinterval();
 
 #endif

+ 1 - 1
direct/src/interval/hideInterval.h

@@ -21,7 +21,7 @@
 /**
  * An interval that calls NodePath::hide().
  */
-class EXPCL_DIRECT HideInterval : public CInterval {
+class EXPCL_DIRECT_INTERVAL HideInterval : public CInterval {
 PUBLISHED:
   explicit HideInterval(const NodePath &node, const string &name = string());
 

+ 5 - 5
direct/src/interval/lerpblend.h

@@ -17,7 +17,7 @@
 #include "directbase.h"
 #include "typedReferenceCount.h"
 
-class EXPCL_DIRECT LerpBlendType : public TypedReferenceCount {
+class EXPCL_DIRECT_INTERVAL LerpBlendType : public TypedReferenceCount {
 PUBLISHED:
   LerpBlendType() {}
   virtual ~LerpBlendType();
@@ -47,7 +47,7 @@ private:
   static TypeHandle _type_handle;
 };
 
-class EXPCL_DIRECT EaseInBlendType : public LerpBlendType {
+class EXPCL_DIRECT_INTERVAL EaseInBlendType : public LerpBlendType {
 PUBLISHED:
   EaseInBlendType() {}
   virtual ~EaseInBlendType();
@@ -77,7 +77,7 @@ private:
   static TypeHandle _type_handle;
 };
 
-class EXPCL_DIRECT EaseOutBlendType : public LerpBlendType {
+class EXPCL_DIRECT_INTERVAL EaseOutBlendType : public LerpBlendType {
 PUBLISHED:
   EaseOutBlendType() {}
   virtual ~EaseOutBlendType();
@@ -107,7 +107,7 @@ private:
   static TypeHandle _type_handle;
 };
 
-class EXPCL_DIRECT EaseInOutBlendType : public LerpBlendType {
+class EXPCL_DIRECT_INTERVAL EaseInOutBlendType : public LerpBlendType {
 PUBLISHED:
   EaseInOutBlendType() {}
   virtual ~EaseInOutBlendType();
@@ -136,7 +136,7 @@ private:
   static TypeHandle _type_handle;
 };
 
-class EXPCL_DIRECT NoBlendType : public LerpBlendType {
+class EXPCL_DIRECT_INTERVAL NoBlendType : public LerpBlendType {
 PUBLISHED:
   NoBlendType() {}
   virtual ~NoBlendType();

+ 1 - 1
direct/src/interval/showInterval.h

@@ -21,7 +21,7 @@
 /**
  * An interval that calls NodePath::show().
  */
-class EXPCL_DIRECT ShowInterval : public CInterval {
+class EXPCL_DIRECT_INTERVAL ShowInterval : public CInterval {
 PUBLISHED:
   explicit ShowInterval(const NodePath &node, const string &name = string());
 

+ 1 - 1
direct/src/interval/waitInterval.h

@@ -21,7 +21,7 @@
  * This interval does absolutely nothing, and is mainly useful for marking
  * time between other intervals within a sequence.
  */
-class EXPCL_DIRECT WaitInterval : public CInterval {
+class EXPCL_DIRECT_INTERVAL WaitInterval : public CInterval {
 PUBLISHED:
   INLINE explicit WaitInterval(double duration);
 

+ 1 - 1
direct/src/motiontrail/cMotionTrail.h

@@ -69,7 +69,7 @@ public:
  * coordinate of the texture corresponds to time and the v coordinate
  * corresponds to the "shape" of the motion trail.
  */
-class EXPCL_DIRECT CMotionTrail : public TypedReferenceCount {
+class EXPCL_DIRECT_MOTIONTRAIL CMotionTrail : public TypedReferenceCount {
 PUBLISHED:
   CMotionTrail();
   ~CMotionTrail();

+ 1 - 1
direct/src/motiontrail/config_motiontrail.cxx

@@ -14,7 +14,7 @@
 #include "config_motiontrail.h"
 #include "dconfig.h"
 
-extern EXPCL_DIRECT void init_libmotiontrail();
+extern EXPCL_DIRECT_MOTIONTRAIL void init_libmotiontrail();
 
 Configure(config_motiontrail);
 NotifyCategoryDef(motiontrail, "");

+ 2 - 2
direct/src/motiontrail/config_motiontrail.h

@@ -20,8 +20,8 @@
 
 #include "cMotionTrail.h"
 
-NotifyCategoryDecl(motiontrail, EXPCL_DIRECT, EXPTP_DIRECT);
+NotifyCategoryDecl(motiontrail, EXPCL_DIRECT_MOTIONTRAIL, EXPTP_DIRECT_MOTIONTRAIL);
 
-extern EXPCL_DIRECT void init_libmotiontrail();
+extern EXPCL_DIRECT_MOTIONTRAIL void init_libmotiontrail();
 
 #endif

+ 11 - 11
direct/src/showbase/showBase.h

@@ -26,7 +26,7 @@
 #include "configVariableSearchPath.h"
 #include "nodePath.h"
 
-ConfigureDecl(config_showbase, EXPCL_DIRECT, EXPTP_DIRECT);
+ConfigureDecl(config_showbase, EXPCL_DIRECT_SHOWBASE, EXPTP_DIRECT_SHOWBASE);
 
 class CollisionTraverser;
 class Camera;
@@ -34,24 +34,24 @@ class GraphicsEngine;
 
 BEGIN_PUBLISH
 
-EXPCL_DIRECT ConfigVariableSearchPath &get_particle_path();
+EXPCL_DIRECT_SHOWBASE ConfigVariableSearchPath &get_particle_path();
 
-EXPCL_DIRECT void throw_new_frame();
+EXPCL_DIRECT_SHOWBASE void throw_new_frame();
 
-EXPCL_DIRECT DConfig &get_config_showbase();
-EXPCL_DIRECT void init_app_for_gui();
+EXPCL_DIRECT_SHOWBASE DConfig &get_config_showbase();
+EXPCL_DIRECT_SHOWBASE void init_app_for_gui();
 
 // klunky interface since we cant pass array from python->C++
-EXPCL_DIRECT void add_fullscreen_testsize(int xsize, int ysize);
-EXPCL_DIRECT void runtest_fullscreen_sizes(GraphicsWindow *win);
-EXPCL_DIRECT bool query_fullscreen_testresult(int xsize, int ysize);
+EXPCL_DIRECT_SHOWBASE void add_fullscreen_testsize(int xsize, int ysize);
+EXPCL_DIRECT_SHOWBASE void runtest_fullscreen_sizes(GraphicsWindow *win);
+EXPCL_DIRECT_SHOWBASE bool query_fullscreen_testresult(int xsize, int ysize);
 
 // to handle windows stickykeys
-EXPCL_DIRECT void store_accessibility_shortcut_keys();
-EXPCL_DIRECT void allow_accessibility_shortcut_keys(bool allowKeys);
+EXPCL_DIRECT_SHOWBASE void store_accessibility_shortcut_keys();
+EXPCL_DIRECT_SHOWBASE void allow_accessibility_shortcut_keys(bool allowKeys);
 
 #ifdef IS_OSX
-EXPCL_DIRECT void activate_osx_application();
+EXPCL_DIRECT_SHOWBASE void activate_osx_application();
 #endif
 
 END_PUBLISH