From b4bfaa8f5ca0fbd98d0701681201f6409ee40d5e Mon Sep 17 00:00:00 2001 From: Kyle Date: Sun, 4 Jan 2026 23:51:00 +0800 Subject: [PATCH 1/3] Add ORBLayerDelegate --- .../OpenRenderBoxObjC/Render/ORBDisplayList.h | 22 ++++++++++++ .../OpenRenderBoxObjC/Render/ORBLayer.h | 9 ++--- .../Render/ORBLayerDelegate.h | 34 +++++++++++++++++++ .../Render/_ORBDrawableDelegate.h | 28 +++++++++++++++ Sources/OpenRenderBoxShims/Export.swift | 2 ++ 5 files changed, 91 insertions(+), 4 deletions(-) create mode 100644 Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/ORBDisplayList.h create mode 100644 Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/ORBLayerDelegate.h create mode 100644 Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/_ORBDrawableDelegate.h diff --git a/Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/ORBDisplayList.h b/Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/ORBDisplayList.h new file mode 100644 index 0000000..a7f7c41 --- /dev/null +++ b/Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/ORBDisplayList.h @@ -0,0 +1,22 @@ +// +// ORBDisplayList.h +// OpenRenderBox + +#pragma once + +#include + +#if ORB_OBJC_FOUNDATION + +#include + +ORB_ASSUME_NONNULL_BEGIN + +// TODO +@interface ORBDisplayList : NSObject + +@end + +ORB_ASSUME_NONNULL_END + +#endif diff --git a/Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/ORBLayer.h b/Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/ORBLayer.h index a6a1864..dee295e 100644 --- a/Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/ORBLayer.h +++ b/Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/ORBLayer.h @@ -8,13 +8,14 @@ #if ORB_OBJC_FOUNDATION +#include #include #include -#include +#include +#include //#include "RBImageQueueLayer.h" //#include "RBSurfaceContentsLayer.h" -//#include "_RBDrawableDelegate-Protocol.h" //#include "_RBSharedSurfaceOwner-Protocol.h" #include @@ -24,7 +25,7 @@ ORB_ASSUME_NONNULL_BEGIN -@interface ORBLayer: CALayer +@interface ORBLayer: CALayer <_ORBDrawableDelegate, /*_RBSharedSurfaceOwner,*/ ORBDrawableStatistics> @property (retain, nonatomic, nullable) ORBDevice *device; @property (nonatomic) BOOL rendersAsynchronously; @@ -68,7 +69,7 @@ ORB_ASSUME_NONNULL_BEGIN - (BOOL)_willMoveSubsurface:(unsigned int)subsurface; - (void)copyImageInRect:(CGRect)rect options:(nullable id)options completionQueue:(nullable id)queue handler:(nullable id /* block */)handler; - (BOOL)displayWithBounds:(CGRect)bounds callback:(nullable id /* block */)callback; -- (void)drawInDisplayList:(nullable id)list; +- (void)drawInDisplayList:(nullable ORBDisplayList *)list; - (void)resetStatistics:(NSUInteger)statistics alpha:(double)alpha; - (void)waitUntilAsyncRenderingCompleted; diff --git a/Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/ORBLayerDelegate.h b/Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/ORBLayerDelegate.h new file mode 100644 index 0000000..3e6f9db --- /dev/null +++ b/Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/ORBLayerDelegate.h @@ -0,0 +1,34 @@ +// +// ORBLayerDelegate.h +// OpenRenderBox + +#pragma once + +#include + +#if ORB_OBJC_FOUNDATION + +#include + +#include +#include + +ORB_ASSUME_NONNULL_BEGIN + +@class ORBLayer; + +@protocol ORBLayerDelegate + +@required + +@optional + +- (void)RBLayer:(ORBLayer *)layer draw:(ORBDisplayList *)inDisplayList; +- (nullable id)RBLayerDefaultDevice:(ORBLayer *)layer; + +@end + +ORB_ASSUME_NONNULL_END + +#endif /* ORB_OBJC_FOUNDATION */ + diff --git a/Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/_ORBDrawableDelegate.h b/Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/_ORBDrawableDelegate.h new file mode 100644 index 0000000..ce2ff10 --- /dev/null +++ b/Sources/OpenRenderBoxCxx/include/OpenRenderBoxObjC/Render/_ORBDrawableDelegate.h @@ -0,0 +1,28 @@ +// +// _ORBDrawableDelegate.h +// OpenRenderBox + +#pragma once + +#include + +#if ORB_OBJC_FOUNDATION + +#include + +ORB_ASSUME_NONNULL_BEGIN + +@protocol _ORBDrawableDelegate + +@required + +- (void)_RBDrawableStatisticsDidChange; + +@optional + +@end + +ORB_ASSUME_NONNULL_END + +#endif /* ORB_OBJC_FOUNDATION */ + diff --git a/Sources/OpenRenderBoxShims/Export.swift b/Sources/OpenRenderBoxShims/Export.swift index 197e57c..22e364f 100644 --- a/Sources/OpenRenderBoxShims/Export.swift +++ b/Sources/OpenRenderBoxShims/Export.swift @@ -7,6 +7,8 @@ public typealias ORBColor = RBColor public typealias ORBDevice = RBDevice public typealias ORBLayer = RBLayer +public typealias ORBLayerDelegate = RBLayerDelegate +public typealias ORBDisplayList = RBDisplayList public typealias ORBPath = RBPath public typealias ORBUUID = RBUUID public let renderBoxEnabled = true From a34cc45d7580fcb1181a862fb0ffed55c53df407 Mon Sep 17 00:00:00 2001 From: Kyle Date: Sun, 4 Jan 2026 23:54:15 +0800 Subject: [PATCH 2/3] Update ColorMode type --- Sources/OpenRenderBoxCxx/include/OpenRenderBox/ORBColorMode.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/OpenRenderBoxCxx/include/OpenRenderBox/ORBColorMode.h b/Sources/OpenRenderBoxCxx/include/OpenRenderBox/ORBColorMode.h index 516d8d2..568511c 100644 --- a/Sources/OpenRenderBoxCxx/include/OpenRenderBox/ORBColorMode.h +++ b/Sources/OpenRenderBoxCxx/include/OpenRenderBox/ORBColorMode.h @@ -12,7 +12,7 @@ ORB_ASSUME_NONNULL_BEGIN ORB_EXTERN_C_BEGIN // TODO: Review those names later -typedef ORB_ENUM(uint32_t, ORBColorMode) { +typedef ORB_ENUM(int32_t, ORBColorMode) { ORBColorMode0 = 0, ORBColorMode1 = 1, ORBColorMode2 = 2, From 0eae3beb7e6a268f7f10ea0b8dee797adf01ad23 Mon Sep 17 00:00:00 2001 From: Kyle Date: Mon, 5 Jan 2026 00:23:37 +0800 Subject: [PATCH 3/3] Update RenderBox dependency --- Package.resolved | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.resolved b/Package.resolved index e0d27a5..9f7b99c 100644 --- a/Package.resolved +++ b/Package.resolved @@ -7,7 +7,7 @@ "location" : "https://github.com/OpenSwiftUIProject/DarwinPrivateFrameworks.git", "state" : { "branch" : "main", - "revision" : "0d5aa5bc8533ea6a2607a97c0fe0da54726a5148" + "revision" : "ea49b004ae2b6f4b85fbaeae814d194f01e70a81" } }, {