Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Package.resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

52 changes: 52 additions & 0 deletions Sources/OpenRenderBox/Animation/ORBAnimation.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
//
// ORBAnimation.swift
// OpenRenderBox
//

#if !canImport(ObjectiveC)
public import Foundation

public class ORBAnimation: NSObject {
public private(set) var activeDuration: Double = 0

public override init() {
super.init()
}

public func removeAll() {
_openRenderBoxUnimplementedFailure()
}

public func evaluate(atTime time: Double) -> Float {
_openRenderBoxUnimplementedFailure()
}

public func addBezierDuration(_ duration: Double, controlPoint1 point1: CGPoint, controlPoint2 point2: CGPoint) {
_openRenderBoxUnimplementedFailure()
}

public func addDelay(_ delay: Double) {
_openRenderBoxUnimplementedFailure()
}

public func addPreset(_ preset: UInt32, duration: Double) {
_openRenderBoxUnimplementedFailure()
}

public func addRepeatCount(_ count: Double, autoreverses: Bool) {
_openRenderBoxUnimplementedFailure()
}

public func addSampledFunction(withDuration duration: Double, count: UInt64, values: UnsafePointer<Float>) {
_openRenderBoxUnimplementedFailure()
}

public func addSpeed(_ speed: Double) {
_openRenderBoxUnimplementedFailure()
}

public func addSpringDuration(_ duration: Double, mass: Double, stiffness: Double, damping: Double, initialVelocity velocity: Double) {
_openRenderBoxUnimplementedFailure()
}
}
#endif
117 changes: 117 additions & 0 deletions Sources/OpenRenderBox/Animation/ORBSymbolAnimator.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
//
// ORBSymbolAnimator.swift
// OpenRenderBox
//

#if !canImport(ObjectiveC)
public import Foundation

// MARK: - ORBSymbolAnimatorObserver

public protocol ORBSymbolAnimatorObserver: AnyObject {
func symbolAnimatorDidChange(_ animator: ORBSymbolAnimator)
}

// MARK: - ORBSymbolAnimator

public class ORBSymbolAnimator: NSObject {
// MARK: - Properties

public var glyph: AnyObject?
public var renderingMode: UInt32 = 0
public var flipsRightToLeft: Bool = false
public var variableValue: Double = 0
public var opacities: ORBColor = .clear
public var isHidden: Bool = false
public var scaleLevel: Int32 = 0
public var anchorPoint: CGPoint = .zero
public var position: CGPoint = .zero
public var size: CGSize = .zero
public var presentationPosition: CGPoint = .zero
public var currentTime: Double = 0
public private(set) var maxVelocity: Double = 0
public private(set) var version: UInt32 = 0
public private(set) var isAnimating: Bool = false
public private(set) var alignmentRect: CGRect = .zero
public private(set) var unroundedAlignmentRect: CGRect = .zero
public private(set) var styleMask: UInt32 = 0
public var depth: UInt32 = 0
public private(set) var boundingRect: CGRect = .zero

public override init() {
super.init()
}

// MARK: - Animation Management

public func addAnimation(_ animation: UInt32, options: Any?) -> UInt32 {
_openRenderBoxUnimplementedFailure()
}

public func removeAllAnimations() {
_openRenderBoxUnimplementedFailure()
}

public func removeAnimation(_ animation: UInt32) {
_openRenderBoxUnimplementedFailure()
}

public func removeAnimation(withID animationID: UInt32) {
_openRenderBoxUnimplementedFailure()
}

public func cancelAllAnimations() {
_openRenderBoxUnimplementedFailure()
}

public func cancelAnimation(_ animation: UInt32) {
_openRenderBoxUnimplementedFailure()
}

public func cancelAnimation(withID animationID: UInt32) {
_openRenderBoxUnimplementedFailure()
}

public func setPriority(_ priority: Float, ofAnimationWithID animationID: UInt32) {
_openRenderBoxUnimplementedFailure()
}

// MARK: - Update

public func beginUpdate(withRenderingMode mode: UInt32) -> OpaquePointer {
_openRenderBoxUnimplementedFailure()
}

public func beginUpdate(withRenderingMode mode: UInt32, position: UnsafePointer<CGPoint>?, size: UnsafePointer<CGSize>?, flags: UInt32) -> OpaquePointer {
_openRenderBoxUnimplementedFailure()
}

public func endUpdate(_ update: OpaquePointer) {
_openRenderBoxUnimplementedFailure()
}

public func copyDebugDescription(for update: OpaquePointer) -> Any? {
_openRenderBoxUnimplementedFailure()
}

// MARK: - Color

public func color(forStyle style: UInt32) -> ORBColor {
_openRenderBoxUnimplementedFailure()
}

public func setColor(_ color: ORBColor, forStyle style: UInt32) {
_openRenderBoxUnimplementedFailure()
}

// MARK: - Observer

public func addObserver(_ observer: any ORBSymbolAnimatorObserver) {
_openRenderBoxUnimplementedFailure()
}

public func removeObserver(_ observer: any ORBSymbolAnimatorObserver) {
_openRenderBoxUnimplementedFailure()
}
}
#endif
15 changes: 15 additions & 0 deletions Sources/OpenRenderBoxCxx/Animation/ORBAnimation.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//
// ORBAnimation.m
// OpenRenderBox

#include <OpenRenderBoxObjC/Animation/ORBAnimation.h>

#if ORB_OBJC_FOUNDATION

@implementation ORBAnimation

// TODO

@end

#endif /* ORB_OBJC_FOUNDATION */
15 changes: 15 additions & 0 deletions Sources/OpenRenderBoxCxx/Animation/ORBSymbolAnimator.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//
// ORBSymbolAnimator.m
// OpenRenderBox

#include <OpenRenderBoxObjC/Animation/ORBSymbolAnimator.h>

#if ORB_OBJC_FOUNDATION

@implementation ORBSymbolAnimator

// TODO

@end

#endif /* ORB_OBJC_FOUNDATION */
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
//
// ORBAnimation.h
// OpenRenderBox

#pragma once

#include <OpenRenderBox/ORBBase.h>

#if ORB_OBJC_FOUNDATION

#include <Foundation/Foundation.h>
#include <CoreGraphics/CoreGraphics.h>

ORB_ASSUME_NONNULL_BEGIN

// TODO
@interface ORBAnimation : NSObject <NSCopying>

@property (readonly, nonatomic) double activeDuration;

- (id)copyWithZone:(nullable NSZone *)zone;
- (BOOL)isEqual:(nullable id)object;
- (void)removeAll;
- (float)evaluateAtTime:(double)time;
- (void)addBezierDuration:(double)duration controlPoint1:(CGPoint)point1 controlPoint2:(CGPoint)point2;
- (void)addDelay:(double)delay;
- (void)addPreset:(unsigned int)preset duration:(double)duration;
- (void)addRepeatCount:(double)count autoreverses:(BOOL)autoreverses;
- (void)addSampledFunctionWithDuration:(double)duration count:(unsigned long long)count values:(const float *)values;
- (void)addSpeed:(double)speed;
- (void)addSpringDuration:(double)duration mass:(double)mass stiffness:(double)stiffness damping:(double)damping initialVelocity:(double)velocity;

@end

ORB_ASSUME_NONNULL_END

#endif /* ORB_OBJC_FOUNDATION */
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
//
// ORBSymbolAnimator.h
// OpenRenderBox

#pragma once

#include <OpenRenderBox/ORBBase.h>

#if ORB_OBJC_FOUNDATION

#include <OpenRenderBox/ORBColor.h>
#include <OpenRenderBoxObjC/Animation/ORBSymbolAnimatorObserver.h>
#include <Foundation/Foundation.h>
#include <CoreGraphics/CoreGraphics.h>

ORB_ASSUME_NONNULL_BEGIN

@class CUINamedVectorGlyph;
struct _ORBSymbolUpdate;

// TODO
@interface ORBSymbolAnimator : NSObject

@property (retain, nonatomic, nullable) CUINamedVectorGlyph *glyph;
@property (nonatomic) unsigned int renderingMode;
@property (nonatomic) BOOL flipsRightToLeft;
@property (nonatomic) double variableValue;
@property (nonatomic) ORBColor opacities;
@property (nonatomic, getter=isHidden) BOOL hidden;
@property (nonatomic) int scaleLevel;
@property (nonatomic) CGPoint anchorPoint;
@property (nonatomic) CGPoint position;
@property (nonatomic) CGSize size;
@property (nonatomic) CGPoint presentationPosition;
@property (nonatomic) double currentTime;
@property (readonly, nonatomic) double maxVelocity;
@property (readonly, nonatomic) unsigned int version;
@property (readonly, nonatomic, getter=isAnimating) BOOL animating;
@property (readonly, nonatomic) CGRect alignmentRect;
@property (readonly, nonatomic) CGRect unroundedAlignmentRect;
@property (readonly, nonatomic) unsigned int styleMask;
@property (nonatomic) unsigned int depth;
@property (readonly, nonatomic) CGRect boundingRect;

/* instance methods */
- (unsigned int)addAnimation:(unsigned int)animation options:(nullable id)options;
- (struct _ORBSymbolUpdate *)beginUpdateWithRenderingMode:(unsigned int)mode;
- (void)endUpdate:(struct _ORBSymbolUpdate *)update;
- (void)removeAllAnimations;
- (void)removeAnimation:(unsigned int)animation;
- (struct _ORBSymbolUpdate *)beginUpdateWithRenderingMode:(unsigned int)mode position:(nullable const CGPoint *)position size:(nullable const CGSize *)size flags:(unsigned int)flags;
- (void)cancelAllAnimations;
- (void)cancelAnimation:(unsigned int)animation;
- (void)cancelAnimationWithID:(unsigned int)animationID;
- (ORBColor)colorForStyle:(unsigned int)style;
- (nullable id)copyDebugDescriptionForUpdate:(struct _ORBSymbolUpdate *)update;
- (void)removeAnimationWithID:(unsigned int)animationID;
- (void)setColor:(ORBColor)color forStyle:(unsigned int)style;
- (void)setPriority:(float)priority ofAnimationWithID:(unsigned int)animationID;
- (void)addObserver:(id<ORBSymbolAnimatorObserver>)observer;
- (void)removeObserver:(id<ORBSymbolAnimatorObserver>)observer;

@end

ORB_ASSUME_NONNULL_END

#endif /* ORB_OBJC_FOUNDATION */
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
//
// ORBSymbolAnimatorObserver.h
// OpenRenderBox

#pragma once

#include <OpenRenderBox/ORBBase.h>

#if ORB_OBJC_FOUNDATION

#include <Foundation/Foundation.h>

ORB_ASSUME_NONNULL_BEGIN

@class ORBSymbolAnimator;

@protocol ORBSymbolAnimatorObserver <NSObject>

@required

- (void)symbolAnimatorDidChange:(ORBSymbolAnimator *)animator;

@optional

@end

ORB_ASSUME_NONNULL_END

#endif /* ORB_OBJC_FOUNDATION */
3 changes: 3 additions & 0 deletions Sources/OpenRenderBoxShims/Export.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ public typealias ORBLayerDelegate = RBLayerDelegate
public typealias ORBDisplayList = RBDisplayList
public typealias ORBPath = RBPath
public typealias ORBUUID = RBUUID
public typealias ORBAnimation = RBAnimation
public typealias ORBSymbolAnimator = RBSymbolAnimator
public typealias ORBSymbolAnimatorObserver = RBSymbolAnimatorObserver
public let renderBoxEnabled = true
#else
@_exported import OpenRenderBox
Expand Down
Loading