问题标签 [cglayer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
585 浏览

performance - 在drawrect中加速“CGContextDrawRadialGradient”多次使用的最佳方法?

我无法发布图像,但我使用“CGContextDrawRadialGradient”方法绘制了一个带阴影的蓝色球(直径约 40 像素),它是阴影,并在球周围制作了一个“脉动”的白色环(内部和外部渐变戒指)。圆环从蓝色球的边缘开始向外扩展(半径随着计时器而增长)。当白色环像无线电波一样向外扩展时,它会逐渐消失。

在模拟器中运行看起来很棒,但在 iPhone 4 上运行速度非常慢。环应该在大约一秒内脉动(如在模拟器中),但在手机上需要 15-20 秒。我一直在阅读一些关于 CALayer、CGLayer 的内容,并阅读了一些渐变动画的一些片段,但不清楚我应该使用什么来获得最佳性能。

我该如何加快速度。我应该把球放在一层上,把膨胀环放在另一层上吗?如果是这样,我怎么知道要在drawrect上更新哪个图层?

感谢任何指导。谢谢。

0 投票
4 回答
2505 浏览

iphone - 向视图层添加阴影的问题

在我的一个观点中,我正在为视图添加阴影。问题是阴影在左右边缘显示空白。我想删除这些空格。

这是我的代码:

这是我的观点的o / p:

在此处输入图像描述

0 投票
1 回答
747 浏览

iphone - iPhone - 编码和解码 NSValue

所以我在这里读到了,我可以使用 CGLayerRef 将 CGLayerRef 编码为 NSValue

但是如何从 myCopy 重新创建 CGLayerRef?

谢谢

0 投票
2 回答
117 浏览

iphone - iPhone - 将字典中的值推送和拉取到 CGlayer

我有一个正在实施撤消/重做的手指绘画视图。所有的绘图都发生在一个名为 lineLayer 的 CGLayer 上。

一旦用户触摸屏幕但在对屏幕进行任何修改之前,我需要快速抓取视图内容并创建一个撤消级别。

显然将视图保存到磁盘不是一种选择,因为它需要太长时间。我想象的解决方案是将 CGLayer 复制到字典中,使用如下所示:

我把它存储在字典上

后来我检索它使用

问题是 lineLayer 根本没有被这个读取操作改变。它继续具有与以前相同的内容。

我错过了什么吗?

谢谢。

0 投票
2 回答
6120 浏览

ios - iOS:如何通过 CGLayer 支持 Retina Display?

我正在其委托方法中的 CALayer 上绘制图表drawLayer:inContext:

现在我想支持 Retina Display,因为图表在最新设备上看起来很模糊。

对于我直接在 CALayer 传递的图形上下文上绘制的部分,我可以通过如下设置 CALayer 的 contentScale 属性很好地绘制高分辨率。

但是对于我使用 CGLayer 的部分,仍然画得模糊。

如何在高分辨率 CGLayer 上绘图以支持 Retina Display?

我想使用 CGLayer 重复绘制图形的相同绘图形状,以及切断超出图层边缘的图形线。

我通过从 CALayer 传递的图形上下文获取 CGLayer CGLayerCreateWithContex,并使用 CG 函数(例如CGContextFillPath或)在其上下文上绘制CGContextAddLineToPoint

我需要同时支持 iOS 4.x 和 iOS 3.1.3,包括 Retina 和旧版显示器。

谢谢,

库拉

0 投票
0 回答
590 浏览

iphone - iPhone:创建具有渐变点和透明背景的 CGLayer

我想创建一个 CGLayer,包含一个边界渐变的点。因为我会使用这一层在主屏幕上绘制多个点。

这是我的代码:CGRect r = CGRectMake(0, 0, 64, 64); textureLayer = CGLayerCreateWithContext(context, r.size, NULL); CGContextRef textureContext = CGLayerGetContext(textureLayer);

我得到了这个结果:在此处输入图像描述 它是正确的。但是当我在主屏幕上绘制时,而不是像我期望的那样绘制,结果如下:在此处输入图像描述

我认为问题在于我的 CGLayer 中的白色背景。我怎样才能使背景透明?

感谢您的帮助。

0 投票
1 回答
1148 浏览

macos - Carbon 窗口(OS Lion、Mono)上的 OpenGL 3.2 上下文

我正在尝试将现代 OS X 支持添加到OpenTK 框架。Mac OS Lion 支持 OpenGL 3.2 核心上下文。我可以通过使用CGL成功获得它。但是,我找不到将上下文绑定到 Carbon 窗口的直接方法。

以前的 OpenTK 实现使用的aglSetDrawable方法。CGL 没有公开的替代方案,尽管它有一个类似的未记录的CGLSetSurface。任何使用它的尝试都会返回错误代码 1001,我找不到它的描述。

在 Carbon 窗口上获得 GL 3.2 有什么帮助吗?

0 投票
1 回答
600 浏览

ios - CGLayerRef in NSValue - when to call retain() or release()?

I am caching some graphics onto CGLayers and then storing them in NSValue objects using @encode (so as to store them in an array). I just wanted to make sure that I handle the retain/release correctly...

I cache the graphics and store them in the array something like this:

And then later on I retrieve the layer:

Am I right to assume that the layer needs releasing after being added to the array (the last line in the first code snippet)? I assumed this is the case since I called a create function earlier in the code. Is the NSValue then keeping track of the layer data for me? Does the retrievedLayer need manually releasing after being used?

Thanks

0 投票
2 回答
2213 浏览

macos - Mac 上的 CGL 与 OpenGL

我试图弄清楚Mac平台上CGL和OpenGL 之间的关系。

更具体地说,关于上下文。他们是否共享上下文?如果是,如何?请给我一些相关示例的链接。

如果不是,那么在使用 OpenGL 的 Core Animation 应用程序中是否有两个上下文工作?

我对 Mac 使用 OpenGL 感到非常困惑。有人可以澄清吗?

0 投票
1 回答
176 浏览

macos - 在 CGL 中拍摄内容快照?

我想从 Core OpenGL 上下文中创建一个图像。

我使用了以下代码,但它创建了一个黑色图像。所以我想我不能在那里使用 glReadPixles 吗?请问还有什么建议吗?