Skip to content

Commit a5b6045

Browse files
authored
feat(shims): expose display list predicate and transform APIs (#33)
1 parent 4b0e86b commit a5b6045

11 files changed

Lines changed: 151 additions & 2 deletions

File tree

‎Package.resolved‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Sources/OpenRenderBox/Render/ORBDisplayListContents.swift‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@
77
public import Foundation
88
public import OpenCoreGraphicsShims
99

10+
public struct ORBDisplayListRenderKey: RawRepresentable, Hashable, Sendable {
11+
public var rawValue: String
12+
13+
public init(rawValue: String) {
14+
self.rawValue = rawValue
15+
}
16+
17+
public static let rasterizationScale = ORBDisplayListRenderKey(rawValue: "rasterizationscale")
18+
}
19+
1020
public protocol ORBDisplayListContents: AnyObject {
1121
var empty: Bool { get }
1222
var boundingRect: CGRect { get }
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
//
2+
// ORBDisplayListPredicate.swift
3+
// OpenRenderBox
4+
5+
#if !canImport(ObjectiveC)
6+
public import Foundation
7+
8+
public class ORBDisplayListPredicate: NSObject {
9+
public var invertsResult: Bool = false
10+
11+
public func removeAll() {
12+
_openRenderBoxUnimplementedFailure()
13+
}
14+
15+
public func addCondition(withFill color: ORBColor, colorSpace: ORBColor.ColorSpace) {
16+
_openRenderBoxUnimplementedFailure()
17+
}
18+
19+
public func copyFilteredDisplayList(_ list: any ORBDisplayListContents) -> any ORBDisplayListContents {
20+
_openRenderBoxUnimplementedFailure()
21+
}
22+
}
23+
#endif
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
//
2+
// ORBDisplayListTransform.swift
3+
// OpenRenderBox
4+
5+
#if !canImport(ObjectiveC)
6+
public import Foundation
7+
8+
public class ORBDisplayListTransform: NSObject {
9+
public func removeAll() {
10+
_openRenderBoxUnimplementedFailure()
11+
}
12+
13+
public func addColorReplacement(from fromColor: ORBColor, to toColor: ORBColor, colorSpace: ORBColor.ColorSpace) {
14+
_openRenderBoxUnimplementedFailure()
15+
}
16+
17+
public func copyApplying(toDisplayList list: any ORBDisplayListContents) -> any ORBDisplayListContents {
18+
_openRenderBoxUnimplementedFailure()
19+
}
20+
}
21+
#endif

‎Sources/OpenRenderBoxCxx/Render/ORBDisplayList.m‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#if ORB_OBJC_FOUNDATION
99

10+
ORBDisplayListRenderKey const ORBDisplayListRenderRasterizationScale = @"rasterizationscale";
11+
1012
@interface ORBDisplayList () <_ORBDisplayListContents>
1113
@end
1214

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//
2+
// ORBDisplayListPredicate.m
3+
// OpenRenderBox
4+
5+
#include <OpenRenderBoxObjC/Render/ORBDisplayListPredicate.h>
6+
7+
#if ORB_OBJC_FOUNDATION
8+
9+
@implementation ORBDisplayListPredicate
10+
11+
// TODO
12+
13+
@end
14+
15+
#endif /* ORB_OBJC_FOUNDATION */
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//
2+
// ORBDisplayListTransform.m
3+
// OpenRenderBox
4+
5+
#include <OpenRenderBoxObjC/Render/ORBDisplayListTransform.h>
6+
7+
#if ORB_OBJC_FOUNDATION
8+
9+
@implementation ORBDisplayListTransform
10+
11+
// TODO
12+
13+
@end
14+
15+
#endif /* ORB_OBJC_FOUNDATION */

‎Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/ORBDisplayListContents.h‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ ORB_ASSUME_NONNULL_BEGIN
2020

2121
struct _ORBDrawingState;
2222

23+
typedef NSString *ORBDisplayListRenderKey NS_TYPED_EXTENSIBLE_ENUM;
24+
25+
ORB_EXPORT ORBDisplayListRenderKey const ORBDisplayListRenderRasterizationScale ORB_SWIFT_NAME(ORBDisplayListRenderKey.rasterizationScale);
26+
2327
@protocol ORBDisplayListContents <NSObject, ORBEncodable, ORBDecodable>
2428

2529
@required
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
//
2+
// ORBDisplayListPredicate.h
3+
// OpenRenderBox
4+
5+
#pragma once
6+
7+
#include <OpenRenderBox/ORBBase.h>
8+
9+
#if ORB_OBJC_FOUNDATION
10+
11+
#include <OpenRenderBox/ORBColor.h>
12+
#include <OpenRenderBoxObjC/Render/ORBDisplayListContents.h>
13+
#include <Foundation/Foundation.h>
14+
15+
ORB_ASSUME_NONNULL_BEGIN
16+
17+
@interface ORBDisplayListPredicate : NSObject
18+
19+
@property (nonatomic) BOOL invertsResult;
20+
21+
- (void)removeAll;
22+
- (void)addConditionWithFillColor:(ORBColor)color colorSpace:(ORBColorSpace)colorSpace;
23+
- (id<ORBDisplayListContents>)copyFilteredDisplayList:(id<ORBDisplayListContents>)list;
24+
25+
@end
26+
27+
ORB_ASSUME_NONNULL_END
28+
29+
#endif /* ORB_OBJC_FOUNDATION */
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
//
2+
// ORBDisplayListTransform.h
3+
// OpenRenderBox
4+
5+
#pragma once
6+
7+
#include <OpenRenderBox/ORBBase.h>
8+
9+
#if ORB_OBJC_FOUNDATION
10+
11+
#include <OpenRenderBox/ORBColor.h>
12+
#include <OpenRenderBoxObjC/Render/ORBDisplayListContents.h>
13+
#include <Foundation/Foundation.h>
14+
15+
ORB_ASSUME_NONNULL_BEGIN
16+
17+
@interface ORBDisplayListTransform : NSObject
18+
19+
- (void)removeAll;
20+
- (void)addColorReplacementFrom:(ORBColor)fromColor to:(ORBColor)toColor colorSpace:(ORBColorSpace)colorSpace;
21+
- (id<ORBDisplayListContents>)copyApplyingToDisplayList:(id<ORBDisplayListContents>)list;
22+
23+
@end
24+
25+
ORB_ASSUME_NONNULL_END
26+
27+
#endif /* ORB_OBJC_FOUNDATION */

0 commit comments

Comments
 (0)