From 2f2b64ee8c4c3959a1bced04d5ec40c0101713e5 Mon Sep 17 00:00:00 2001 From: Kyle Date: Wed, 7 Oct 2026 19:57:57 +0800 Subject: [PATCH] feat(shims): expose blend mode types and aliases --- Package.resolved | 2 +- .../include/OpenRenderBox/ORBBlendMode.h | 61 +++++++++++++++++++ .../include/OpenRenderBox/OpenRenderBox.h | 1 + Sources/OpenRenderBoxShims/ORBShims.swift | 1 + .../OpenRenderBoxShims/OpenRenderBoxShims.h | 1 + .../OpenRenderBoxShims/OpenRenderBoxShims.h | 46 ++++++++++++++ 6 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 Sources/OpenRenderBoxCxx/include/OpenRenderBox/ORBBlendMode.h diff --git a/Package.resolved b/Package.resolved index 5336da5..ca0733b 100644 --- a/Package.resolved +++ b/Package.resolved @@ -7,7 +7,7 @@ "location" : "https://github.com/OpenSwiftUIProject/DarwinPrivateFrameworks.git", "state" : { "branch" : "main", - "revision" : "b7e6ba165f3763dd477f55cc55b4a63f51385571" + "revision" : "b00ecca4c7e77ab24da8c25d81f3d413db6fdcb5" } }, { diff --git a/Sources/OpenRenderBoxCxx/include/OpenRenderBox/ORBBlendMode.h b/Sources/OpenRenderBoxCxx/include/OpenRenderBox/ORBBlendMode.h new file mode 100644 index 0000000..5222d89 --- /dev/null +++ b/Sources/OpenRenderBoxCxx/include/OpenRenderBox/ORBBlendMode.h @@ -0,0 +1,61 @@ +// +// ORBBlendMode.h +// OpenRenderBox + +#pragma once + +#include + +ORB_ASSUME_NONNULL_BEGIN + +ORB_EXTERN_C_BEGIN + +typedef enum ORBBlendMode : int32_t { + ORBBlendModeNormal = 0, + ORBBlendModeMultiply = 1, + ORBBlendModeScreen = 2, + ORBBlendModeOverlay = 3, + ORBBlendModeDarken = 4, + ORBBlendModeLighten = 5, + ORBBlendModeColorDodge = 6, + ORBBlendModeColorBurn = 7, + ORBBlendModeSoftLight = 8, + ORBBlendModeHardLight = 9, + ORBBlendModeDifference = 10, + ORBBlendModeExclusion = 11, + ORBBlendModeHue = 12, + ORBBlendModeSaturation = 13, + ORBBlendModeColor = 14, + ORBBlendModeLuminosity = 15, + ORBBlendModeClear = 16, + ORBBlendModeCopy = 17, + ORBBlendModeSourceIn = 18, + ORBBlendModeSourceOut = 19, + ORBBlendModeSourceAtop = 20, + ORBBlendModeDestinationOver = 21, + ORBBlendModeDestinationIn = 22, + ORBBlendModeDestinationOut = 23, + ORBBlendModeDestinationAtop = 24, + ORBBlendModeXOR = 25, + ORBBlendModePlusDarker = 26, + ORBBlendModePlusLighter = 27, + ORBBlendModeLinearDodge = 1000, + ORBBlendModeLinearBurn = 1001, + ORBBlendModeLinearLight = 1002, + ORBBlendModePinLight = 1003, + ORBBlendModeSubtract = 1004, + ORBBlendModeDivide = 1005, + ORBBlendModeMaximum = 1006, + ORBBlendModeAdd = 1007, + ORBBlendModeSubtractSource = 1008, + ORBBlendModeSubtractDestination = 1009, + ORBBlendModeDarkenSourceOver = 1010, + ORBBlendModeLightenSourceOver = 1011, + ORBBlendModeMinimum = 1012, + ORBBlendModeMinimumInverse = 1013, + ORBBlendModePassThrough = 2000, +} ORBBlendMode; + +ORB_EXTERN_C_END + +ORB_ASSUME_NONNULL_END diff --git a/Sources/OpenRenderBoxCxx/include/OpenRenderBox/OpenRenderBox.h b/Sources/OpenRenderBoxCxx/include/OpenRenderBox/OpenRenderBox.h index 07d626a..8794461 100644 --- a/Sources/OpenRenderBoxCxx/include/OpenRenderBox/OpenRenderBox.h +++ b/Sources/OpenRenderBoxCxx/include/OpenRenderBox/OpenRenderBox.h @@ -1,4 +1,5 @@ #include +#include #include #include #include diff --git a/Sources/OpenRenderBoxShims/ORBShims.swift b/Sources/OpenRenderBoxShims/ORBShims.swift index 217f80f..278f6da 100644 --- a/Sources/OpenRenderBoxShims/ORBShims.swift +++ b/Sources/OpenRenderBoxShims/ORBShims.swift @@ -25,6 +25,7 @@ public struct RenderBoxVendor: RawRepresentable, CaseIterable { @_exported public import RenderBox public typealias ORBAnimation = RBAnimation +public typealias ORBBlendMode = RBBlendMode public typealias ORBColor = RBColor public typealias ORBDevice = RBDevice public typealias ORBDisplayList = RBDisplayList diff --git a/Sources/OpenRenderBoxShimsCxx/include/OpenRenderBox/OpenRenderBoxShims/OpenRenderBoxShims.h b/Sources/OpenRenderBoxShimsCxx/include/OpenRenderBox/OpenRenderBoxShims/OpenRenderBoxShims.h index f643599..8b6e1c3 100644 --- a/Sources/OpenRenderBoxShimsCxx/include/OpenRenderBox/OpenRenderBoxShims/OpenRenderBoxShims.h +++ b/Sources/OpenRenderBoxShimsCxx/include/OpenRenderBox/OpenRenderBoxShims/OpenRenderBoxShims.h @@ -4,6 +4,7 @@ #pragma once +#include #include #include #include diff --git a/Sources/OpenRenderBoxShimsCxx/include/RenderBox/OpenRenderBoxShims/OpenRenderBoxShims.h b/Sources/OpenRenderBoxShimsCxx/include/RenderBox/OpenRenderBoxShims/OpenRenderBoxShims.h index cb42b95..120aabe 100644 --- a/Sources/OpenRenderBoxShimsCxx/include/RenderBox/OpenRenderBoxShims/OpenRenderBoxShims.h +++ b/Sources/OpenRenderBoxShimsCxx/include/RenderBox/OpenRenderBoxShims/OpenRenderBoxShims.h @@ -4,10 +4,12 @@ #pragma once +#include #include #include #include +typedef RBBlendMode ORBBlendMode; typedef RBPath ORBPath; typedef RBPathElement ORBPathElement; typedef RBPathRoundedCornerStyle ORBPathRoundedCornerStyle; @@ -17,6 +19,50 @@ typedef RBPathCallbacksFlags ORBPathCallbacksFlags; typedef RBPathCallbacksExtended ORBPathCallbacksExtended; typedef RBPathStorageRef ORBPathStorageRef; +#define ORBBlendModeNormal RBBlendModeNormal +#define ORBBlendModeMultiply RBBlendModeMultiply +#define ORBBlendModeScreen RBBlendModeScreen +#define ORBBlendModeOverlay RBBlendModeOverlay +#define ORBBlendModeDarken RBBlendModeDarken +#define ORBBlendModeLighten RBBlendModeLighten +#define ORBBlendModeColorDodge RBBlendModeColorDodge +#define ORBBlendModeColorBurn RBBlendModeColorBurn +#define ORBBlendModeSoftLight RBBlendModeSoftLight +#define ORBBlendModeHardLight RBBlendModeHardLight +#define ORBBlendModeDifference RBBlendModeDifference +#define ORBBlendModeExclusion RBBlendModeExclusion +#define ORBBlendModeHue RBBlendModeHue +#define ORBBlendModeSaturation RBBlendModeSaturation +#define ORBBlendModeColor RBBlendModeColor +#define ORBBlendModeLuminosity RBBlendModeLuminosity +#define ORBBlendModeClear RBBlendModeClear +#define ORBBlendModeCopy RBBlendModeCopy +#define ORBBlendModeSourceIn RBBlendModeSourceIn +#define ORBBlendModeSourceOut RBBlendModeSourceOut +#define ORBBlendModeSourceAtop RBBlendModeSourceAtop +#define ORBBlendModeDestinationOver RBBlendModeDestinationOver +#define ORBBlendModeDestinationIn RBBlendModeDestinationIn +#define ORBBlendModeDestinationOut RBBlendModeDestinationOut +#define ORBBlendModeDestinationAtop RBBlendModeDestinationAtop +#define ORBBlendModeXOR RBBlendModeXOR +#define ORBBlendModePlusDarker RBBlendModePlusDarker +#define ORBBlendModePlusLighter RBBlendModePlusLighter +#define ORBBlendModeLinearDodge RBBlendModeLinearDodge +#define ORBBlendModeLinearBurn RBBlendModeLinearBurn +#define ORBBlendModeLinearLight RBBlendModeLinearLight +#define ORBBlendModePinLight RBBlendModePinLight +#define ORBBlendModeSubtract RBBlendModeSubtract +#define ORBBlendModeDivide RBBlendModeDivide +#define ORBBlendModeMaximum RBBlendModeMaximum +#define ORBBlendModeAdd RBBlendModeAdd +#define ORBBlendModeSubtractSource RBBlendModeSubtractSource +#define ORBBlendModeSubtractDestination RBBlendModeSubtractDestination +#define ORBBlendModeDarkenSourceOver RBBlendModeDarkenSourceOver +#define ORBBlendModeLightenSourceOver RBBlendModeLightenSourceOver +#define ORBBlendModeMinimum RBBlendModeMinimum +#define ORBBlendModeMinimumInverse RBBlendModeMinimumInverse +#define ORBBlendModePassThrough RBBlendModePassThrough + #define ORBPathElementMoveToPoint RBPathElementMoveToPoint #define ORBPathElementAddLineToPoint RBPathElementAddLineToPoint #define ORBPathElementAddQuadCurveToPoint RBPathElementAddQuadCurveToPoint