Skip to content

Commit 51990e5

Browse files
committed
Complete CGImageProvider
1 parent 2078ab6 commit 51990e5

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

Sources/OpenSwiftUICore/Graphic/Color/ConstantColor.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ extension Color {
4444
}
4545

4646
package func multiplyingOpacity(by opacity: Float) -> Color.Resolved {
47-
Color.Resolved(linearRed: linearRed, linearGreen: linearGreen, linearBlue: linearBlue, opacity: opacity * self.opacity)
47+
var resolved = self
48+
resolved.opacity = opacity * self.opacity
49+
return resolved
4850
}
4951

5052
package func over(_ s: Color.Resolved) -> Color.Resolved {

Sources/OpenSwiftUICore/View/Image/CGImageProvider.swift

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// OpenSwiftUICore
44
//
55
// Audited for 6.5.4
6-
// Status: Blocked by Image.Resolved
6+
// Status: Complete
77
// ID: BB7900A03A030BC988C08113497314C3 (SwiftUICore?)
88

99
public import OpenCoreGraphicsShims
@@ -75,7 +75,23 @@ private struct CGImageProvider: ImageProvider {
7575
var decorative: Bool
7676

7777
func resolve(in context: ImageResolutionContext) -> Image.Resolved {
78-
_openSwiftUIUnimplementedFailure()
78+
var graphicsImage = GraphicsImage(
79+
contents: .cgImage(image),
80+
scale: scale,
81+
unrotatedPixelSize: image.size,
82+
orientation: orientation,
83+
isTemplate: context.environment.imageIsTemplate()
84+
)
85+
graphicsImage.allowedDynamicRange = context.effectiveAllowedDynamicRange(for: graphicsImage)
86+
if context.environment.shouldRedactContent {
87+
let color = Color.foreground.resolve(in: context.environment)
88+
graphicsImage.contents = .color(color.multiplyingOpacity(by: 0.16))
89+
}
90+
return Image.Resolved(
91+
image: graphicsImage,
92+
decorative: decorative,
93+
label: AccessibilityImageLabel(label)
94+
)
7995
}
8096

8197
func resolveNamedImage(in context: ImageResolutionContext) -> Image.NamedResolved? {

0 commit comments

Comments
 (0)