问题标签 [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.
performance - 在drawrect中加速“CGContextDrawRadialGradient”多次使用的最佳方法?
我无法发布图像,但我使用“CGContextDrawRadialGradient”方法绘制了一个带阴影的蓝色球(直径约 40 像素),它是阴影,并在球周围制作了一个“脉动”的白色环(内部和外部渐变戒指)。圆环从蓝色球的边缘开始向外扩展(半径随着计时器而增长)。当白色环像无线电波一样向外扩展时,它会逐渐消失。
在模拟器中运行看起来很棒,但在 iPhone 4 上运行速度非常慢。环应该在大约一秒内脉动(如在模拟器中),但在手机上需要 15-20 秒。我一直在阅读一些关于 CALayer、CGLayer 的内容,并阅读了一些渐变动画的一些片段,但不清楚我应该使用什么来获得最佳性能。
我该如何加快速度。我应该把球放在一层上,把膨胀环放在另一层上吗?如果是这样,我怎么知道要在drawrect上更新哪个图层?
感谢任何指导。谢谢。
iphone - 向视图层添加阴影的问题
在我的一个观点中,我正在为视图添加阴影。问题是阴影在左右边缘显示空白。我想删除这些空格。
这是我的代码:
这是我的观点的o / p:
iphone - iPhone - 编码和解码 NSValue
所以我在这里读到了,我可以使用 CGLayerRef 将 CGLayerRef 编码为 NSValue
但是如何从 myCopy 重新创建 CGLayerRef?
谢谢
iphone - iPhone - 将字典中的值推送和拉取到 CGlayer
我有一个正在实施撤消/重做的手指绘画视图。所有的绘图都发生在一个名为 lineLayer 的 CGLayer 上。
一旦用户触摸屏幕但在对屏幕进行任何修改之前,我需要快速抓取视图内容并创建一个撤消级别。
显然将视图保存到磁盘不是一种选择,因为它需要太长时间。我想象的解决方案是将 CGLayer 复制到字典中,使用如下所示:
我把它存储在字典上
后来我检索它使用
问题是 lineLayer 根本没有被这个读取操作改变。它继续具有与以前相同的内容。
我错过了什么吗?
谢谢。
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 和旧版显示器。
谢谢,
库拉
iphone - iPhone:创建具有渐变点和透明背景的 CGLayer
我想创建一个 CGLayer,包含一个边界渐变的点。因为我会使用这一层在主屏幕上绘制多个点。
这是我的代码:CGRect r = CGRectMake(0, 0, 64, 64); textureLayer = CGLayerCreateWithContext(context, r.size, NULL); CGContextRef textureContext = CGLayerGetContext(textureLayer);
我得到了这个结果: 它是正确的。但是当我在主屏幕上绘制时,而不是像我期望的那样绘制,结果如下:
我认为问题在于我的 CGLayer 中的白色背景。我怎样才能使背景透明?
感谢您的帮助。
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 有什么帮助吗?
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
macos - 在 CGL 中拍摄内容快照?
我想从 Core OpenGL 上下文中创建一个图像。
我使用了以下代码,但它创建了一个黑色图像。所以我想我不能在那里使用 glReadPixles 吗?请问还有什么建议吗?