Revert "[cpp] Remove dll.h and SP_API"

This reverts commit 8bde2aeb543c7f51fd0224cd69ede246c719e6ea.
This commit is contained in:
Mario Zechner 2025-09-10 13:58:03 +02:00
parent 97909c3acc
commit e884b02f6d
99 changed files with 208 additions and 157 deletions

View File

@ -49,7 +49,7 @@ namespace spine {
class AnimationState;
/// Stores a list of timelines to animate a skeleton's pose over time.
class Animation : public SpineObject {
class SP_API Animation : public SpineObject {
friend class AnimationState;
friend class TrackEntry;

View File

@ -78,7 +78,7 @@ namespace spine {
#endif
/// Abstract class to inherit from to create a callback object
class AnimationStateListenerObject {
class SP_API AnimationStateListenerObject {
public:
AnimationStateListenerObject() {};
@ -90,7 +90,7 @@ namespace spine {
};
/// State for the playback of an animation
class TrackEntry : public SpineObject, public HasRendererObject {
class SP_API TrackEntry : public SpineObject, public HasRendererObject {
friend class EventQueue;
friend class AnimationState;
@ -360,7 +360,7 @@ namespace spine {
void reset();
};
class EventQueueEntry : public SpineObject {
class SP_API EventQueueEntry : public SpineObject {
friend class EventQueue;
public:
@ -371,7 +371,7 @@ namespace spine {
EventQueueEntry(EventType eventType, TrackEntry *trackEntry, Event *event = NULL);
};
class EventQueue : public SpineObject {
class SP_API EventQueue : public SpineObject {
friend class AnimationState;
private:
@ -403,7 +403,7 @@ namespace spine {
void drain();
};
class AnimationState : public SpineObject, public HasRendererObject {
class SP_API AnimationState : public SpineObject, public HasRendererObject {
friend class TrackEntry;
friend class EventQueue;

View File

@ -42,7 +42,7 @@ namespace spine {
class Animation;
/// Stores mix (crossfade) durations to be applied when AnimationState animations are changed.
class AnimationStateData : public SpineObject {
class SP_API AnimationStateData : public SpineObject {
friend class AnimationState;
public:

View File

@ -37,7 +37,7 @@
namespace spine {
template<typename T>
class Array : public SpineObject {
class SP_API Array : public SpineObject {
public:
using size_type = size_t;
using value_type = T;

View File

@ -39,7 +39,7 @@
#include <assert.h>
namespace spine {
class ArrayUtils : public SpineObject {
class SP_API ArrayUtils : public SpineObject {
public:
/// Finds an item by comparing each item's name.
/// It is more efficient to cache the results of this method than to call it multiple times.

View File

@ -82,7 +82,7 @@ namespace spine {
TextureWrap_Repeat
};
class AtlasPage : public SpineObject {
class SP_API AtlasPage : public SpineObject {
public:
String name;
String texturePath;
@ -107,7 +107,7 @@ namespace spine {
}
};
class AtlasRegion : public TextureRegion {
class SP_API AtlasRegion : public TextureRegion {
friend class Atlas;
friend class RegionAttachment;
friend class MeshAttachment;
@ -242,7 +242,7 @@ namespace spine {
class TextureLoader;
class Atlas : public SpineObject {
class SP_API Atlas : public SpineObject {
public:
Atlas(const String &path, TextureLoader *textureLoader, bool createTexture = true);

View File

@ -44,7 +44,7 @@ namespace spine {
///
/// See https://esotericsoftware.com/spine-loading-skeleton-data#JSON-and-binary-data Loading skeleton data in the
/// Spine Runtimes Guide.
class AtlasAttachmentLoader : public AttachmentLoader {
class SP_API AtlasAttachmentLoader : public AttachmentLoader {
public:
explicit AtlasAttachmentLoader(Atlas &atlas);

View File

@ -35,7 +35,7 @@
#include <spine/SpineString.h>
namespace spine {
class Attachment : public SpineObject {
class SP_API Attachment : public SpineObject {
RTTI_DECL_NOPARENT
public:

View File

@ -53,7 +53,7 @@ namespace spine {
class Sequence;
class AttachmentLoader : public SpineObject {
class SP_API AttachmentLoader : public SpineObject {
public:
AttachmentLoader();

View File

@ -48,7 +48,7 @@ namespace spine {
class Event;
class AttachmentTimeline : public Timeline, public SlotTimeline {
class SP_API AttachmentTimeline : public Timeline, public SlotTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -43,7 +43,7 @@ namespace spine {
/// A bone has a local transform which is used to compute its world transform. A bone also has an applied transform, which is a
/// local transform that can be applied to compute the world transform. The local transform and applied transform may differ if a
/// constraint or application code modifies the world transform after it was computed from the local transform.
class Bone : public PosedGeneric<BoneData, BoneLocal, BonePose>, public PosedActive, public Update {
class SP_API Bone : public PosedGeneric<BoneData, BoneLocal, BonePose>, public PosedActive, public Update {
friend class AnimationState;
friend class RotateTimeline;
friend class IkConstraint;

View File

@ -37,7 +37,7 @@
#include <spine/RTTI.h>
namespace spine {
class BoneData : public PosedDataGeneric<BoneLocal> {
class SP_API BoneData : public PosedDataGeneric<BoneLocal> {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -37,7 +37,7 @@
namespace spine {
/// Stores a bone's local pose.
class BoneLocal : public Pose<BoneLocal> {
class SP_API BoneLocal : public Pose<BoneLocal> {
friend class IkConstraint;
friend class BoneTimeline1;
friend class BoneTimeline2;

View File

@ -40,7 +40,7 @@ namespace spine {
/// The applied pose for a bone. This is the Bone pose with constraints applied and the world transform computed by
/// Skeleton::updateWorldTransform(Physics).
class BonePose : public BoneLocal, public Update {
class SP_API BonePose : public BoneLocal, public Update {
friend class IkConstraint;
friend class PathConstraint;
friend class PhysicsConstraint;

View File

@ -31,7 +31,7 @@
#define Spine_BoneTimeline_h
#include <cstddef>
#include <spine/dll.h>
#include <spine/CurveTimeline.h>
namespace spine {
@ -40,7 +40,7 @@ namespace spine {
class BoneLocal;
/// An interface for timelines which change the property of a bone.
class BoneTimeline {
class SP_API BoneTimeline {
RTTI_DECL_NOPARENT
public:
@ -56,7 +56,7 @@ namespace spine {
};
/// Base class for timelines that animate a single bone property.
class BoneTimeline1 : public CurveTimeline1, public BoneTimeline {
class SP_API BoneTimeline1 : public CurveTimeline1, public BoneTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;
friend class AnimationState;
@ -85,7 +85,7 @@ namespace spine {
};
/// Base class for timelines that animate two bone properties.
class BoneTimeline2 : public CurveTimeline, public BoneTimeline {
class SP_API BoneTimeline2 : public CurveTimeline, public BoneTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;
friend class AnimationState;

View File

@ -36,7 +36,7 @@
namespace spine {
/// Attachment that has a polygon for bounds checking.
class BoundingBoxAttachment : public VertexAttachment {
class SP_API BoundingBoxAttachment : public VertexAttachment {
RTTI_DECL
public:

View File

@ -36,7 +36,7 @@
namespace spine {
class SlotData;
class ClippingAttachment : public VertexAttachment {
class SP_API ClippingAttachment : public VertexAttachment {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -35,7 +35,7 @@
#include <stdlib.h>
namespace spine {
class Color : public SpineObject {
class SP_API Color : public SpineObject {
public:
Color() : r(0), g(0), b(0), a(0) {
}

View File

@ -35,7 +35,7 @@
namespace spine {
/// Changes a slot's SlotPose::getColor().
class RGBATimeline : public SlotCurveTimeline {
class SP_API RGBATimeline : public SlotCurveTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -63,7 +63,7 @@ namespace spine {
};
/// Changes the RGB for a slot's SlotPose::getColor().
class RGBTimeline : public SlotCurveTimeline {
class SP_API RGBTimeline : public SlotCurveTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -89,7 +89,7 @@ namespace spine {
static const int B = 3;
};
class AlphaTimeline : public CurveTimeline1, public SlotTimeline {
class SP_API AlphaTimeline : public CurveTimeline1, public SlotTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -113,7 +113,7 @@ namespace spine {
};
/// Changes a slot's SlotPose::getColor() and SlotPose::getDarkColor() for two color tinting.
class RGBA2Timeline : public SlotCurveTimeline {
class SP_API RGBA2Timeline : public SlotCurveTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -144,7 +144,7 @@ namespace spine {
};
/// Changes the RGB for a slot's SlotPose::getColor() and SlotPose::getDarkColor() for two color tinting.
class RGB2Timeline : public SlotCurveTimeline {
class SP_API RGB2Timeline : public SlotCurveTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -39,7 +39,7 @@
namespace spine {
class Skeleton;
class Constraint : public Update {
class SP_API Constraint : public Update {
friend class Skeleton;
public:

View File

@ -39,7 +39,7 @@ namespace spine {
class Skeleton;
class Constraint;
class ConstraintData : public SpineObject {
class SP_API ConstraintData : public SpineObject {
RTTI_DECL_NOPARENT
friend class Skeleton;
friend class Constraint;

View File

@ -30,12 +30,12 @@
#ifndef Spine_ConstraintTimeline_h
#define Spine_ConstraintTimeline_h
#include <spine/dll.h>
#include <spine/RTTI.h>
namespace spine {
/// An interface for timelines which change the property of a constraint.
class ConstraintTimeline {
class SP_API ConstraintTimeline {
RTTI_DECL_NOPARENT
public:

View File

@ -36,7 +36,7 @@
namespace spine {
/// Base class for single-value constraint timelines.
class ConstraintTimeline1 : public CurveTimeline1, public ConstraintTimeline {
class SP_API ConstraintTimeline1 : public CurveTimeline1, public ConstraintTimeline {
RTTI_DECL
public:

View File

@ -35,7 +35,7 @@
namespace spine {
/// Base class for frames that use an interpolation bezier curve.
class CurveTimeline : public Timeline {
class SP_API CurveTimeline : public Timeline {
RTTI_DECL
public:
@ -64,7 +64,7 @@ namespace spine {
};
/// The base class for a CurveTimeline that sets one property.
class CurveTimeline1 : public CurveTimeline {
class SP_API CurveTimeline1 : public CurveTimeline {
RTTI_DECL
public:

View File

@ -48,7 +48,7 @@ namespace spine {
class DebugEntry;
public:
class DebugPair {
class SP_API DebugPair {
public:
explicit DebugPair(K &k, V &v) : key(k), value(v) {
}
@ -57,7 +57,7 @@ namespace spine {
V &value;
};
class DebugEntries {
class SP_API DebugEntries {
public:
friend class DebugHashMap;
@ -183,7 +183,7 @@ namespace spine {
return NULL;
}
class DebugEntry {
class SP_API DebugEntry {
public:
K _key;
V _value;
@ -199,7 +199,7 @@ namespace spine {
};
#endif// SPINE_NO_CPP_RT
class DebugExtension : public SpineExtension {
class SP_API DebugExtension : public SpineExtension {
struct Allocation {
void *address;
size_t size;

View File

@ -36,7 +36,7 @@ namespace spine {
class VertexAttachment;
/// Changes a slot's SlotPose::getDeform() to deform a VertexAttachment.
class DeformTimeline : public SlotCurveTimeline {
class SP_API DeformTimeline : public SlotCurveTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -34,7 +34,7 @@
namespace spine {
/// Changes a skeleton's Skeleton::getDrawOrder().
class DrawOrderTimeline : public Timeline {
class SP_API DrawOrderTimeline : public Timeline {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -40,7 +40,7 @@ namespace spine {
///
/// See Timeline::apply(), AnimationStateListener::event(), and
/// @see https://esotericsoftware.com/spine-events Events in the Spine User Guide.
class Event : public SpineObject {
class SP_API Event : public SpineObject {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -35,7 +35,7 @@
namespace spine {
/// Stores the setup pose values for an Event.
class EventData : public SpineObject {
class SP_API EventData : public SpineObject {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -34,7 +34,7 @@
namespace spine {
/// Fires an Event when specific animation times are reached.
class EventTimeline : public Timeline {
class SP_API EventTimeline : public Timeline {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -33,14 +33,14 @@
#include <stdlib.h>
#include <string.h>
#include <spine/dll.h>
#define SP_UNUSED(x) (void) (x)
namespace spine {
class String;
class SpineExtension {
class SP_API SpineExtension {
public:
template<typename T>
static T *alloc(size_t num, const char *file, int line) {
@ -108,7 +108,7 @@ namespace spine {
static SpineExtension *_instance;
};
class DefaultSpineExtension : public SpineExtension {
class SP_API DefaultSpineExtension : public SpineExtension {
public:
DefaultSpineExtension();

View File

@ -30,13 +30,13 @@
#ifndef Spine_HasRendererObject_h
#define Spine_HasRendererObject_h
#include <spine/dll.h>
namespace spine {
typedef void (*DisposeRendererObject)(void *rendererObject);
class HasRendererObject {
class SP_API HasRendererObject {
public:
explicit HasRendererObject() : _rendererObject(0), _dispose(0) {};

View File

@ -183,7 +183,7 @@ namespace spine {
return NULL;
}
class Entry : public SpineObject {
class SP_API Entry : public SpineObject {
public:
K _key;
V _value;

View File

@ -41,7 +41,7 @@ namespace spine {
class Bone;
class BonePose;
class IkConstraint : public ConstraintGeneric<IkConstraint, IkConstraintData, IkConstraintPose> {
class SP_API IkConstraint : public ConstraintGeneric<IkConstraint, IkConstraintData, IkConstraintPose> {
friend class Skeleton;
friend class IkConstraintTimeline;

View File

@ -41,7 +41,7 @@ namespace spine {
class BoneData;
class IkConstraint;
class IkConstraintData : public ConstraintDataGeneric<IkConstraint, IkConstraintPose> {
class SP_API IkConstraintData : public ConstraintDataGeneric<IkConstraint, IkConstraintPose> {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -36,7 +36,7 @@
namespace spine {
/// Stores the current pose for an IK constraint.
class IkConstraintPose : public Pose<IkConstraintPose> {
class SP_API IkConstraintPose : public Pose<IkConstraintPose> {
friend class IkConstraint;
friend class IkConstraintTimeline;
friend class SkeletonJson;

View File

@ -37,7 +37,7 @@ namespace spine {
/// Changes an IK constraint's IkConstraintPose::getMix(), IkConstraintPose::getSoftness(),
/// IkConstraintPose::getBendDirection(), IkConstraintPose::getStretch(), and IkConstraintPose::getCompress().
class IkConstraintTimeline : public CurveTimeline, public ConstraintTimeline {
class SP_API IkConstraintTimeline : public CurveTimeline, public ConstraintTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -39,7 +39,7 @@
namespace spine {
/// Changes a bone's BoneLocal::getInherit().
class InheritTimeline : public Timeline, public BoneTimeline {
class SP_API InheritTimeline : public Timeline, public BoneTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -39,7 +39,7 @@
#endif
namespace spine {
class Json : public SpineObject {
class SP_API Json : public SpineObject {
friend class SkeletonJson;
public:

View File

@ -36,7 +36,7 @@
namespace spine {
class MeshAttachment;
class LinkedMesh : public SpineObject {
class SP_API LinkedMesh : public SpineObject {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -39,7 +39,7 @@
namespace spine {
class MathUtil : public SpineObject {
class SP_API MathUtil : public SpineObject {
private:
MathUtil();

View File

@ -39,7 +39,7 @@
namespace spine {
/// Attachment that displays a texture region using a mesh.
class MeshAttachment : public VertexAttachment {
class SP_API MeshAttachment : public VertexAttachment {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -34,7 +34,7 @@
#include <spine/Color.h>
namespace spine {
class PathAttachment : public VertexAttachment {
class SP_API PathAttachment : public VertexAttachment {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -49,7 +49,7 @@ namespace spine {
/// constrained bones so they follow a PathAttachment.
///
/// See https://esotericsoftware.com/spine-path-constraints Path constraints in the Spine User Guide.
class PathConstraint : public ConstraintGeneric<PathConstraint, PathConstraintData, PathConstraintPose> {
class SP_API PathConstraint : public ConstraintGeneric<PathConstraint, PathConstraintData, PathConstraintPose> {
friend class Skeleton;
friend class PathConstraintMixTimeline;
friend class PathConstraintPositionTimeline;

View File

@ -34,7 +34,7 @@
#include <spine/PosedData.h>
#include <spine/Array.h>
#include <spine/PathConstraintPose.h>
#include <spine/dll.h>
#include <spine/PositionMode.h>
#include <spine/SpacingMode.h>
#include <spine/RotateMode.h>
@ -48,7 +48,7 @@ namespace spine {
/// Stores the setup pose for a PathConstraint.
///
/// See https://esotericsoftware.com/spine-path-constraints Path constraints in the Spine User Guide.
class PathConstraintData : public ConstraintDataGeneric<PathConstraint, PathConstraintPose> {
class SP_API PathConstraintData : public ConstraintDataGeneric<PathConstraint, PathConstraintPose> {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -37,7 +37,7 @@ namespace spine {
/// Changes a path constraint's PathConstraintPose::getMixRotate(), PathConstraintPose::getMixX(), and
/// PathConstraintPose::getMixY().
class PathConstraintMixTimeline : public CurveTimeline, public ConstraintTimeline {
class SP_API PathConstraintMixTimeline : public CurveTimeline, public ConstraintTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -35,7 +35,7 @@
namespace spine {
/// Stores a pose for a path constraint.
class PathConstraintPose : public Pose<PathConstraintPose> {
class SP_API PathConstraintPose : public Pose<PathConstraintPose> {
friend class PathConstraint;
friend class PathConstraintPositionTimeline;
friend class PathConstraintSpacingTimeline;

View File

@ -35,7 +35,7 @@
namespace spine {
/// Changes a path constraint's PathConstraintPose::getPosition().
class PathConstraintPositionTimeline : public ConstraintTimeline1 {
class SP_API PathConstraintPositionTimeline : public ConstraintTimeline1 {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -34,7 +34,7 @@
namespace spine {
/// Changes a path constraint's PathConstraintPose::getSpacing().
class PathConstraintSpacingTimeline : public ConstraintTimeline1 {
class SP_API PathConstraintSpacingTimeline : public ConstraintTimeline1 {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -44,7 +44,7 @@ namespace spine {
/// Stores the current pose for a physics constraint. A physics constraint applies physics to bones.
///
/// See https://esotericsoftware.com/spine-physics-constraints Physics constraints in the Spine User Guide.
class PhysicsConstraint : public ConstraintGeneric<PhysicsConstraint, PhysicsConstraintData, PhysicsConstraintPose> {
class SP_API PhysicsConstraint : public ConstraintGeneric<PhysicsConstraint, PhysicsConstraintData, PhysicsConstraintPose> {
friend class Skeleton;
friend class PhysicsConstraintTimeline;
friend class PhysicsConstraintInertiaTimeline;

View File

@ -41,7 +41,7 @@ namespace spine {
/// Stores the setup pose for a PhysicsConstraint.
///
/// See https://esotericsoftware.com/spine-physics-constraints Physics constraints in the Spine User Guide.
class PhysicsConstraintData : public ConstraintDataGeneric<PhysicsConstraint, PhysicsConstraintPose> {
class SP_API PhysicsConstraintData : public ConstraintDataGeneric<PhysicsConstraint, PhysicsConstraintPose> {
friend class SkeletonBinary;
friend class SkeletonJson;
friend class PhysicsConstraint;

View File

@ -35,7 +35,7 @@
namespace spine {
/// Stores a pose for a physics constraint.
class PhysicsConstraintPose : public Pose<PhysicsConstraintPose> {
class SP_API PhysicsConstraintPose : public Pose<PhysicsConstraintPose> {
friend class PhysicsConstraint;
friend class PhysicsConstraintTimeline;
friend class SkeletonJson;

View File

@ -39,7 +39,7 @@
namespace spine {
/// The base class for most PhysicsConstraint timelines.
class PhysicsConstraintTimeline : public CurveTimeline1, public ConstraintTimeline {
class SP_API PhysicsConstraintTimeline : public CurveTimeline1, public ConstraintTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -70,7 +70,7 @@ namespace spine {
};
/// Changes a physics constraint's PhysicsConstraintPose::getInertia().
class PhysicsConstraintInertiaTimeline : public PhysicsConstraintTimeline {
class SP_API PhysicsConstraintInertiaTimeline : public PhysicsConstraintTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -96,7 +96,7 @@ namespace spine {
};
/// Changes a physics constraint's PhysicsConstraintPose::getStrength().
class PhysicsConstraintStrengthTimeline : public PhysicsConstraintTimeline {
class SP_API PhysicsConstraintStrengthTimeline : public PhysicsConstraintTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -122,7 +122,7 @@ namespace spine {
};
/// Changes a physics constraint's PhysicsConstraintPose::getDamping().
class PhysicsConstraintDampingTimeline : public PhysicsConstraintTimeline {
class SP_API PhysicsConstraintDampingTimeline : public PhysicsConstraintTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -149,7 +149,7 @@ namespace spine {
/// Changes a physics constraint's PhysicsConstraintPose::getMassInverse(). The
/// timeline values are not inverted.
class PhysicsConstraintMassTimeline : public PhysicsConstraintTimeline {
class SP_API PhysicsConstraintMassTimeline : public PhysicsConstraintTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -175,7 +175,7 @@ namespace spine {
};
/// Changes a physics constraint's PhysicsConstraintPose::getWind().
class PhysicsConstraintWindTimeline : public PhysicsConstraintTimeline {
class SP_API PhysicsConstraintWindTimeline : public PhysicsConstraintTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -201,7 +201,7 @@ namespace spine {
};
/// Changes a physics constraint's PhysicsConstraintPose::getGravity().
class PhysicsConstraintGravityTimeline : public PhysicsConstraintTimeline {
class SP_API PhysicsConstraintGravityTimeline : public PhysicsConstraintTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -227,7 +227,7 @@ namespace spine {
};
/// Changes a physics constraint's PhysicsConstraintPose::getMix().
class PhysicsConstraintMixTimeline : public PhysicsConstraintTimeline {
class SP_API PhysicsConstraintMixTimeline : public PhysicsConstraintTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -253,7 +253,7 @@ namespace spine {
};
/// Resets a physics constraint when specific animation times are reached.
class PhysicsConstraintResetTimeline : public Timeline, public ConstraintTimeline {
class SP_API PhysicsConstraintResetTimeline : public Timeline, public ConstraintTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -43,7 +43,7 @@ namespace spine {
///
/// See https://esotericsoftware.com/spine-points for Point Attachments in the Spine User Guide.
///
class PointAttachment : public Attachment {
class SP_API PointAttachment : public Attachment {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -37,7 +37,7 @@
namespace spine {
template<typename T>
class Pool : public SpineObject {
class SP_API Pool : public SpineObject {
public:
Pool() {
}

View File

@ -34,7 +34,7 @@
namespace spine {
template<class P>
class Pose : public SpineObject {
class SP_API Pose : public SpineObject {
public:
Pose() {};
virtual ~Pose() {};

View File

@ -33,7 +33,7 @@
#include <spine/SpineObject.h>
namespace spine {
class Posed {
class SP_API Posed {
public:
Posed() {
}

View File

@ -30,11 +30,11 @@
#ifndef Spine_PosedActive_h
#define Spine_PosedActive_h
#include <spine/dll.h>
namespace spine {
/// Simple mixin class that adds active state tracking
class PosedActive {
class SP_API PosedActive {
protected:
bool _active;

View File

@ -37,7 +37,7 @@ namespace spine {
template<class P>
class Pose;
class PosedData : public SpineObject {
class SP_API PosedData : public SpineObject {
friend class SkeletonBinary;
friend class SkeletonJson;
friend class BoneTimeline1;

View File

@ -30,10 +30,10 @@
#ifndef Spine_RTTI_h
#define Spine_RTTI_h
#include <spine/dll.h>
namespace spine {
class RTTI {
class SP_API RTTI {
public:
explicit RTTI(const char *className);

View File

@ -43,7 +43,7 @@ namespace spine {
class Slot;
/// Attachment that displays a texture region.
class RegionAttachment : public Attachment {
class SP_API RegionAttachment : public Attachment {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -34,7 +34,7 @@
namespace spine {
/// Changes a bone's local rotation.
class RotateTimeline : public BoneTimeline1 {
class SP_API RotateTimeline : public BoneTimeline1 {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -34,7 +34,7 @@
namespace spine {
/// Changes a bone's local BoneLocal::getScaleX() and BoneLocal::getScaleY().
class ScaleTimeline : public BoneTimeline2 {
class SP_API ScaleTimeline : public BoneTimeline2 {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -49,7 +49,7 @@ namespace spine {
};
/// Changes a bone's local BoneLocal::getScaleX().
class ScaleXTimeline : public BoneTimeline1 {
class SP_API ScaleXTimeline : public BoneTimeline1 {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -64,7 +64,7 @@ namespace spine {
};
/// Changes a bone's local BoneLocal::getScaleY().
class ScaleYTimeline : public BoneTimeline1 {
class SP_API ScaleYTimeline : public BoneTimeline1 {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -42,7 +42,7 @@ namespace spine {
class SkeletonBinary;
class SkeletonJson;
class Sequence : public SpineObject {
class SP_API Sequence : public SpineObject {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -39,7 +39,7 @@ namespace spine {
class HasTextureRegion;
/// Changes a slot's SlotPose::getSequenceIndex() for an attachment's Sequence.
class SequenceTimeline : public Timeline, public SlotTimeline {
class SP_API SequenceTimeline : public Timeline, public SlotTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -34,7 +34,7 @@
namespace spine {
/// Changes a bone's local BoneLocal::getShearX() and BoneLocal::getShearY().
class ShearTimeline : public BoneTimeline2 {
class SP_API ShearTimeline : public BoneTimeline2 {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -49,7 +49,7 @@ namespace spine {
};
/// Changes a bone's local BoneLocal::getShearX().
class ShearXTimeline : public BoneTimeline1 {
class SP_API ShearXTimeline : public BoneTimeline1 {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -64,7 +64,7 @@ namespace spine {
};
/// Changes a bone's local BoneLocal::getShearY().
class ShearYTimeline : public BoneTimeline1 {
class SP_API ShearYTimeline : public BoneTimeline1 {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -65,7 +65,7 @@ namespace spine {
class SkeletonClipping;
class Skeleton : public SpineObject {
class SP_API Skeleton : public SpineObject {
friend class AnimationState;
friend class SkeletonBounds;

View File

@ -65,7 +65,7 @@ namespace spine {
class Sequence;
class SkeletonBinary : public SpineObject {
class SP_API SkeletonBinary : public SpineObject {
public:
static const int BONE_ROTATE = 0;
static const int BONE_TRANSLATE = 1;

View File

@ -43,7 +43,7 @@ namespace spine {
/// Collects each BoundingBoxAttachment that is visible and computes the world vertices for its polygon.
/// The polygon vertices are provided along with convenience methods for doing hit detection.
class SkeletonBounds : public SpineObject {
class SP_API SkeletonBounds : public SpineObject {
public:
SkeletonBounds();

View File

@ -38,7 +38,7 @@ namespace spine {
class Skeleton;
class ClippingAttachment;
class SkeletonClipping : public SpineObject {
class SP_API SkeletonClipping : public SpineObject {
public:
SkeletonClipping();

View File

@ -59,7 +59,7 @@ namespace spine {
///
/// See <a href="https://esotericsoftware.com/spine-runtime-architecture#Data-objects">Data objects</a> in the Spine Runtimes
/// Guide.
class SkeletonData : public SpineObject {
class SP_API SkeletonData : public SpineObject {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -65,7 +65,7 @@ namespace spine {
class Attachment;
class SkeletonJson : public SpineObject {
class SP_API SkeletonJson : public SpineObject {
public:
explicit SkeletonJson(Atlas &atlas);

View File

@ -37,7 +37,7 @@
namespace spine {
class Skeleton;
struct RenderCommand {
struct SP_API RenderCommand {
float *positions;
float *uvs;
uint32_t *colors;
@ -50,7 +50,7 @@ namespace spine {
RenderCommand *next;
};
class SkeletonRenderer : public SpineObject {
class SP_API SkeletonRenderer : public SpineObject {
public:
explicit SkeletonRenderer();

View File

@ -46,15 +46,15 @@ namespace spine {
/// Stores attachments by slot index and attachment name.
/// See SkeletonData::getDefaultSkin, Skeleton::getSkin, and
/// http://esotericsoftware.com/spine-runtime-skins in the Spine Runtimes Guide.
class Skin : public SpineObject {
class SP_API Skin : public SpineObject {
friend class Skeleton;
public:
class AttachmentMap : public SpineObject {
class SP_API AttachmentMap : public SpineObject {
friend class Skin;
public:
struct Entry {
struct SP_API Entry {
size_t _slotIndex;
String _name;
Attachment *_attachment;
@ -63,7 +63,7 @@ namespace spine {
}
};
class Entries {
class SP_API Entries {
friend class AttachmentMap;
public:

View File

@ -42,7 +42,7 @@ namespace spine {
/// Stores the setup pose for a PhysicsConstraint.
///
/// See https://esotericsoftware.com/spine-physics-constraints Physics constraints in the Spine User Guide.
class Slider : public ConstraintGeneric<Slider, SliderData, SliderPose> {
class SP_API Slider : public ConstraintGeneric<Slider, SliderData, SliderPose> {
friend class Skeleton;
friend class SliderTimeline;
friend class SliderMixTimeline;

View File

@ -43,7 +43,7 @@ namespace spine {
class Skeleton;
/// Stores the setup pose for a Slider
class SliderData : public ConstraintDataGeneric<Slider, SliderPose> {
class SP_API SliderData : public ConstraintDataGeneric<Slider, SliderPose> {
friend class SkeletonBinary;
friend class SkeletonJson;
friend class Slider;

View File

@ -34,7 +34,7 @@
namespace spine {
/// Changes a slider's SliderPose::getMix().
class SliderMixTimeline : public ConstraintTimeline1 {
class SP_API SliderMixTimeline : public ConstraintTimeline1 {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -37,7 +37,7 @@ namespace spine {
class Slider;
/// Stores a pose for a slider.
class SliderPose : public Pose<SliderPose> {
class SP_API SliderPose : public Pose<SliderPose> {
friend class Slider;
friend class SliderMixTimeline;
friend class SliderTimeline;

View File

@ -34,7 +34,7 @@
namespace spine {
/// Changes a slider's SliderPose::getTime().
class SliderTimeline : public ConstraintTimeline1 {
class SP_API SliderTimeline : public ConstraintTimeline1 {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -45,7 +45,7 @@ namespace spine {
/// Stores a slot's current pose. Slots organize attachments for Skeleton drawOrder purposes and provide a place to store
/// state for an attachment. State cannot be stored in an attachment itself because attachments are stateless and may be shared
/// across multiple skeletons.
class Slot : public PosedGeneric<SlotData, SlotPose, SlotPose> {
class SP_API Slot : public PosedGeneric<SlotData, SlotPose, SlotPose> {
friend class VertexAttachment;
friend class Skeleton;

View File

@ -38,7 +38,7 @@ namespace spine {
class SlotPose;
/// Base class for slot timelines that use curves.
class SlotCurveTimeline : public CurveTimeline, public SlotTimeline {
class SP_API SlotCurveTimeline : public CurveTimeline, public SlotTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -40,7 +40,7 @@ namespace spine {
class BoneData;
/// Stores the setup pose for a Slot.
class SlotData : public PosedDataGeneric<SlotPose> {
class SP_API SlotData : public PosedDataGeneric<SlotPose> {
friend class SkeletonBinary;
friend class SkeletonJson;
friend class PathConstraint;

View File

@ -40,7 +40,7 @@ namespace spine {
class Attachment;
class VertexAttachment;
class SlotPose : public Pose<SlotPose> {
class SP_API SlotPose : public Pose<SlotPose> {
friend class Slot;
friend class SlotCurveTimeline;
friend class DeformTimeline;

View File

@ -30,13 +30,13 @@
#ifndef Spine_SlotTimeline_h
#define Spine_SlotTimeline_h
#include <spine/dll.h>
#include <spine/RTTI.h>
namespace spine {
/// An interface for timelines which change the property of a slot.
class SlotTimeline {
class SP_API SlotTimeline {
RTTI_DECL_NOPARENT
friend class AlphaTimeline;

View File

@ -33,12 +33,12 @@
#include <new>
#include <stddef.h>
#include <spine/dll.h>
namespace spine {
class String;
class SpineObject {
class SP_API SpineObject {
public:
void *operator new(size_t sz);

View File

@ -37,7 +37,7 @@
#include <stdio.h>
namespace spine {
class String : public SpineObject {
class SP_API String : public SpineObject {
public:
String() : _length(0), _buffer(NULL), _tempowner(true) {
}

View File

@ -36,7 +36,7 @@
namespace spine {
class AtlasPage;
class TextureLoader : public SpineObject {
class SP_API TextureLoader : public SpineObject {
public:
TextureLoader();

View File

@ -34,7 +34,7 @@
#include <spine/RTTI.h>
namespace spine {
class TextureRegion : public SpineObject {
class SP_API TextureRegion : public SpineObject {
friend class MeshAttachment;
friend class RegionAttachment;
friend class Atlas;

View File

@ -42,7 +42,7 @@ namespace spine {
class Event;
class Timeline : public SpineObject {
class SP_API Timeline : public SpineObject {
RTTI_DECL_NOPARENT
public:

View File

@ -40,7 +40,7 @@ namespace spine {
class Bone;
class BonePose;
class TransformConstraint : public ConstraintGeneric<TransformConstraint, TransformConstraintData, TransformConstraintPose> {
class SP_API TransformConstraint : public ConstraintGeneric<TransformConstraint, TransformConstraintData, TransformConstraintPose> {
friend class Skeleton;
friend class TransformConstraintTimeline;

View File

@ -45,7 +45,7 @@ namespace spine {
class ToProperty;
/// Source property for a TransformConstraint.
class FromProperty : public SpineObject {
class SP_API FromProperty : public SpineObject {
friend class SkeletonBinary;
public:
@ -65,7 +65,7 @@ namespace spine {
};
/// Constrained property for a TransformConstraint.
class ToProperty : public SpineObject {
class SP_API ToProperty : public SpineObject {
friend class SkeletonBinary;
public:
@ -90,7 +90,7 @@ namespace spine {
virtual void apply(Skeleton &skeleton, TransformConstraintPose &pose, BonePose &bone, float value, bool local, bool additive) = 0;
};
class FromRotate : public FromProperty {
class SP_API FromRotate : public FromProperty {
public:
RTTI_DECL
@ -102,7 +102,7 @@ namespace spine {
float value(Skeleton &skeleton, BonePose &source, bool local, float *offsets) override;
};
class ToRotate : public ToProperty {
class SP_API ToRotate : public ToProperty {
public:
RTTI_DECL
@ -115,7 +115,7 @@ namespace spine {
void apply(Skeleton &skeleton, TransformConstraintPose &pose, BonePose &bone, float value, bool local, bool additive) override;
};
class FromX : public FromProperty {
class SP_API FromX : public FromProperty {
public:
RTTI_DECL
@ -127,7 +127,7 @@ namespace spine {
float value(Skeleton &skeleton, BonePose &source, bool local, float *offsets) override;
};
class ToX : public ToProperty {
class SP_API ToX : public ToProperty {
public:
RTTI_DECL
@ -140,7 +140,7 @@ namespace spine {
void apply(Skeleton &skeleton, TransformConstraintPose &pose, BonePose &bone, float value, bool local, bool additive) override;
};
class FromY : public FromProperty {
class SP_API FromY : public FromProperty {
public:
RTTI_DECL
@ -152,7 +152,7 @@ namespace spine {
float value(Skeleton &skeleton, BonePose &source, bool local, float *offsets) override;
};
class ToY : public ToProperty {
class SP_API ToY : public ToProperty {
public:
RTTI_DECL
@ -165,7 +165,7 @@ namespace spine {
void apply(Skeleton &skeleton, TransformConstraintPose &pose, BonePose &bone, float value, bool local, bool additive) override;
};
class FromScaleX : public FromProperty {
class SP_API FromScaleX : public FromProperty {
public:
RTTI_DECL
@ -177,7 +177,7 @@ namespace spine {
float value(Skeleton &skeleton, BonePose &source, bool local, float *offsets) override;
};
class ToScaleX : public ToProperty {
class SP_API ToScaleX : public ToProperty {
public:
RTTI_DECL
@ -190,7 +190,7 @@ namespace spine {
void apply(Skeleton &skeleton, TransformConstraintPose &pose, BonePose &bone, float value, bool local, bool additive) override;
};
class FromScaleY : public FromProperty {
class SP_API FromScaleY : public FromProperty {
public:
RTTI_DECL
@ -202,7 +202,7 @@ namespace spine {
float value(Skeleton &skeleton, BonePose &source, bool local, float *offsets) override;
};
class ToScaleY : public ToProperty {
class SP_API ToScaleY : public ToProperty {
public:
RTTI_DECL
@ -215,7 +215,7 @@ namespace spine {
void apply(Skeleton &skeleton, TransformConstraintPose &pose, BonePose &bone, float value, bool local, bool additive) override;
};
class FromShearY : public FromProperty {
class SP_API FromShearY : public FromProperty {
public:
RTTI_DECL
@ -227,7 +227,7 @@ namespace spine {
float value(Skeleton &skeleton, BonePose &source, bool local, float *offsets) override;
};
class ToShearY : public ToProperty {
class SP_API ToShearY : public ToProperty {
public:
RTTI_DECL
@ -243,7 +243,7 @@ namespace spine {
/// Stores the setup pose for a TransformConstraint.
///
/// See https://esotericsoftware.com/spine-transform-constraints Transform constraints in the Spine User Guide.
class TransformConstraintData : public ConstraintDataGeneric<TransformConstraint, TransformConstraintPose> {
class SP_API TransformConstraintData : public ConstraintDataGeneric<TransformConstraint, TransformConstraintPose> {
public:
RTTI_DECL
static const int ROTATION;

View File

@ -35,7 +35,7 @@
namespace spine {
/// Stores a pose for a transform constraint.
class TransformConstraintPose : public Pose<TransformConstraintPose> {
class SP_API TransformConstraintPose : public Pose<TransformConstraintPose> {
friend class FromProperty;
friend class ToProperty;
friend class FromRotate;

View File

@ -38,7 +38,7 @@ namespace spine {
/// Changes a transform constraint's TransformConstraintPose::getMixRotate(), TransformConstraintPose::getMixX(),
/// TransformConstraintPose::getMixY(), TransformConstraintPose::getMixScaleX(),
/// TransformConstraintPose::getMixScaleY(), and TransformConstraintPose::getMixShearY().
class TransformConstraintTimeline : public CurveTimeline, public ConstraintTimeline {
class SP_API TransformConstraintTimeline : public CurveTimeline, public ConstraintTimeline {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -35,7 +35,7 @@
namespace spine {
/// Changes a bone's local X and Y translation.
class TranslateTimeline : public BoneTimeline2 {
class SP_API TranslateTimeline : public BoneTimeline2 {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -50,7 +50,7 @@ namespace spine {
};
/// Changes a bone's local X translation.
class TranslateXTimeline : public BoneTimeline1 {
class SP_API TranslateXTimeline : public BoneTimeline1 {
friend class SkeletonBinary;
friend class SkeletonJson;
@ -65,7 +65,7 @@ namespace spine {
};
/// Changes a bone's local Y translation.
class TranslateYTimeline : public BoneTimeline1 {
class SP_API TranslateYTimeline : public BoneTimeline1 {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -34,7 +34,7 @@
#include <spine/Pool.h>
namespace spine {
class Triangulator : public SpineObject {
class SP_API Triangulator : public SpineObject {
public:
~Triangulator();

View File

@ -30,7 +30,7 @@
#ifndef Spine_Update_h
#define Spine_Update_h
#include <spine/dll.h>
#include <spine/Physics.h>
#include <spine/RTTI.h>
#include <spine/SpineObject.h>
@ -39,7 +39,7 @@ namespace spine {
class Skeleton;
/// The interface for items updated by Skeleton::updateWorldTransform().
class Update : public SpineObject {
class SP_API Update : public SpineObject {
RTTI_DECL_NOPARENT
public:
Update();

View File

@ -40,7 +40,7 @@ namespace spine {
/// An attachment with vertices that are transformed by one or more bones and can be deformed by a slot's
/// SlotPose::getDeform().
class VertexAttachment : public Attachment {
class SP_API VertexAttachment : public Attachment {
friend class SkeletonBinary;
friend class SkeletonJson;

View File

@ -0,0 +1,51 @@
/******************************************************************************
* Spine Runtimes License Agreement
* Last updated April 5, 2025. Replaces all prior versions.
*
* Copyright (c) 2013-2025, Esoteric Software LLC
*
* Integration of the Spine Runtimes into software or otherwise creating
* derivative works of the Spine Runtimes is permitted under the terms and
* conditions of Section 2 of the Spine Editor License Agreement:
* http://esotericsoftware.com/spine-editor-license
*
* Otherwise, it is permitted to integrate the Spine Runtimes into software
* or otherwise create derivative works of the Spine Runtimes (collectively,
* "Products"), provided that each user of the Products must obtain their own
* Spine Editor license and redistribution of the Products in any form must
* include this license and copyright notice.
*
* THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
* BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*****************************************************************************/
#ifndef SPINE_SHAREDLIB_H
#define SPINE_SHAREDLIB_H
#ifdef _WIN32
#define DLLIMPORT __declspec(dllimport)
#define DLLEXPORT __declspec(dllexport)
#else
#ifndef DLLIMPORT
#define DLLIMPORT
#endif
#ifndef DLLEXPORT
#define DLLEXPORT
#endif
#endif
#ifdef SPINEPLUGIN_API
#define SP_API SPINEPLUGIN_API
#else
#define SP_API
#endif
#endif /* SPINE_SHAREDLIB_H */

View File

@ -84,7 +84,7 @@
using namespace spine;
class Vertices : public SpineObject {
class SP_API Vertices : public SpineObject {
public:
Array<int> _bones;
Array<float> _weights;