gpt4 book ai didi

objective-c - 在 OS X 上正确应用 CALayer compositingFilter?

转载 作者:搜寻专家 更新时间:2023-10-30 20:24:56 25 4
gpt4 key购买 nike

我有一个 NSView。它有一层。在该层内部,有几个子层。其中一个子层需要与其下面的层混合。我设置了顶层的 compositingFilter 属性,但没有发生混合。 :-(

这是一个视觉表示:

Root Layer      <-- myView.layer
|- Bottom Layer <-- myView.layer.sublayers[0]
|- Middle Layer <-- myView.layer.sublayers[1]
|- Top Layer <-- myView.layer.sublayers[2]

Root Layer
|- Bottom Layer
|- Middle Layer
|- Top Layer <-- Added filter to this layer.

我这样设置属性:

self.topLayer.compositingFilter = [CIFilter filterWithName:@"CIMultiplyBlendMode"];

我假设输入图像和背景图像会自动随每一层的 contents 一起提供,但也许我错了。我是吗?

TL;DR:n00b 如何使用混合模式将一堆图层合成在一起?

附言我正在使用委托(delegate)方法 -drawLayer:inContext: 绘制每一层的 contents

最佳答案

你必须在 NSView 上启用一个标志,因为它在图层上使用过滤器:

[self.view setWantsLayer:YES];
[self.view setLayerUsesCoreImageFilters:YES];

我认为这是特定于 OS X 和 NSView 的,对于 iOS 上的 UIView 来说不是必需的。其他一切对我来说都是正确的。

关于objective-c - 在 OS X 上正确应用 CALayer compositingFilter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23690720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com