问题标签 [quartz-composer]

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 回答
285 浏览

cocoa - Quartz Composer 和 MacRuby 的 forKeyPath 问题

我在使用 MacRuby 和 Cocoa 设置值时遇到了一些问题。我已将 QCView 和 QCPatchController 插入 XIB 并将组合加载到 QCPatchController 中。一切都在运行,但我无法访问 QCView 上发布的输入。

我收到一个错误:

我难住了。我曾尝试搜索 MacRuby 论坛,但没有运气。

谢谢你的建议

0 投票
3 回答
952 浏览

bash - SED,获取最后一个文件名

这是一个 SED 问题。

我正在使用 Quartz Composer (Mac OSX) 脚本来:

  1. 从目录中打开最后一个 .log。
  2. 获取该文件的最后一个文本行并删除其前 24 个字符。
  3. 每次在最后一个 .log 中创建新行时显示最后一行

我想这会很简单。目前,我已经在 QC 中完成了这项工作,并且几乎可以正常工作。但是我在getFileName.shgetLastLineOfLog.sh中的 SED 命令都有问题

获取文件名.sh

我在这里需要的是打开最后一个 .log 文件,这个名称结构127.0.0.1,NUMBER.log是 NUMBER 部分,一个 5 位数字。数字越大,.log 文件越新。现在,它只打开第一个 .log 文件。

请问您知道如何在 SED 中编写正确的命令吗?

getLastLineOfLog.sh

在第二个文件中,我尝试获取加载的 .log 的最后一个文件,并在不包含 24 个第一个字符的情况下回显它。它可以工作,但会创建一个新的 .log.log。(等)文件每次函数通过时,我想避免的事情。

是否需要将 SED 命令的结果输出到新文件?怎么能做到尽可能简单呢?

先感谢您。

0 投票
1 回答
1049 浏览

quartz-composer - Quartz Composer,循环重新加载文本文件(命令行工具)

我有一个 .qtz 加载最新的 .log 文件的最后一行,以显示播放器当前播放的歌曲。

以下是源代码,以 2 个 .log 文件为例:LastTrack.zip(阅读 .zip 中的说明)

它工作,但手动。您需要从查看器中再次运行它以获取最后播放的歌曲。如果你不这样做,它总是显示相同的文本,即使在 .log 中是一个新轨道。

我想知道是否有办法让它自动工作(我尝试使用 LFO 和 Pulse 没有结果,并使脚本输出一些错误)。

我已经尝试连续手动拔掉 LFO/Pulse 和 Enable/Disable 两个命令行工具补丁。

在“获取最新的 .log 文件”补丁中执行此操作时,它输出此错误:

提出了一个例外:

* -[NSConcreteTask 终止状态]:任务仍在运行

0x85b9bc55:-[QCContext nextExecutionTimeForPatch:time:arguments:] 0x85b9b9fe:-[QCGraphicsContext nextExecutionTimeForPatch:time:arguments:] 0x85b9b7e1:-[QCContext nextExecutionTimeForPatch:time:arguments:] 0x0000d5f2 0x85be372d:-[QCView 渲染:arguments:] [的NSView _drawRect:剪辑:] 0x84ad58bc: - [的NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] 0x84ad5c26: - [的NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] 0x84ad3f8e: - [的NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:冠捷:] 0x84ad4e5a: - [的NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect: rectIsVisibleRectForView:topView:] 0x84ad4e5a:-[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] 0x84ad3ab0:- [NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:冠捷:] 0x84ad0362: - [的NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] 0x84a49b9a: - [的NSView displayIfNeeded] 0x84a44a46:_handleWindowNeedsDisplay 0x85471b37:__CFRunLoopDoObservers 0x8544d464:__CFRunLoopRun 0x8544cdbf:CFRunLoopRunSpecific 0x8470591a:RunCurrentEventLoopInMode 0x8470567d:ReceiveNextEventCommon 0x847055d8 : BlockUntilNextEventMatchingListInMode 0x84a19e64: _DPSNextEvent 0x84a197a9:-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] 0x849df48b:-[NSApplication 运行]__CFRunLoopDoObservers 0x8544d464:__CFRunLoopRun 0x8544cdbf:CFRunLoopRunSpecific 0x8470591a:RunCurrentEventLoopInMode 0x8470567d:ReceiveNextEventCommon 0x847055d8:BlockUntilNextEventMatchingListInMode 0x84a19e64:_DPSNextEvent 0x84a197a9: - [的NSApplication nextEventMatchingMask:untilDate:inMode:出队:] 0x849df48b: - [运行的NSApplication]__CFRunLoopDoObservers 0x8544d464:__CFRunLoopRun 0x8544cdbf:CFRunLoopRunSpecific 0x8470591a:RunCurrentEventLoopInMode 0x8470567d:ReceiveNextEventCommon 0x847055d8:BlockUntilNextEventMatchingListInMode 0x84a19e64:_DPSNextEvent 0x84a197a9: - [的NSApplication nextEventMatchingMask:untilDate:inMode:出队:] 0x849df48b: - [运行的NSApplication]

在“获取 .log 文件的最后一行”补丁中执行此操作时,它输出了此错误(我认为是相同的):

提出了一个例外:

* -[NSConcreteTask 终止状态]:任务仍在运行

0x85b9bc55:-[QCContext nextExecutionTimeForPatch:time:arguments:] 0x85b9b9fe:-[QCGraphicsContext nextExecutionTimeForPatch:time:arguments:] 0x85b9b7e1:-[QCContext nextExecutionTimeForPatch:time:arguments:] 0x0000d5f2 0x85be372d:-[QCView 渲染:arguments:] [的NSView _drawRect:剪辑:] 0x84ad58bc: - [的NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] 0x84ad5c26: - [的NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] 0x84ad3f8e: - [的NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:冠捷:] 0x84ad4e5a: - [的NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect: rectIsVisibleRectForView:topView:] 0x84ad4e5a:-[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] 0x84ad3ab0:- [NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:冠捷:] 0x84ad0362: - [的NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] 0x84a49b9a: - [的NSView displayIfNeeded] 0x84a44a46:_handleWindowNeedsDisplay 0x85471b37:__CFRunLoopDoObservers 0x8544d464:__CFRunLoopRun 0x8544cdbf:CFRunLoopRunSpecific 0x8470591a:RunCurrentEventLoopInMode 0x8470567d:ReceiveNextEventCommon 0x847055d8 : BlockUntilNextEventMatchingListInMode 0x84a19e64: _DPSNextEvent 0x84a197a9:-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] 0x849df48b:-[NSApplication 运行]__CFRunLoopDoObservers 0x8544d464:__CFRunLoopRun 0x8544cdbf:CFRunLoopRunSpecific 0x8470591a:RunCurrentEventLoopInMode 0x8470567d:ReceiveNextEventCommon 0x847055d8:BlockUntilNextEventMatchingListInMode 0x84a19e64:_DPSNextEvent 0x84a197a9: - [的NSApplication nextEventMatchingMask:untilDate:inMode:出队:] 0x849df48b: - [运行的NSApplication]__CFRunLoopDoObservers 0x8544d464:__CFRunLoopRun 0x8544cdbf:CFRunLoopRunSpecific 0x8470591a:RunCurrentEventLoopInMode 0x8470567d:ReceiveNextEventCommon 0x847055d8:BlockUntilNextEventMatchingListInMode 0x84a19e64:_DPSNextEvent 0x84a197a9: - [的NSApplication nextEventMatchingMask:untilDate:inMode:出队:] 0x849df48b: - [运行的NSApplication]

预先感谢您的帮助。

0 投票
1 回答
651 浏览

javascript - Javascript计算元素重复的次数

我在石英作曲家的 JavaScript 补丁中有以下代码片段,需要遍历整个结构以查找每个元素的数量并输出每个元素的数组。我能够遍历 StructureIn 以将其与 Title 0 进行比较,并以 title 0 作为键并以重复次数作为值来创建数组。我需要做的是弄清楚如何遍历所有 Title 元素(有 49 个 em)以生成所需的数组。任何帮助将不胜感激。

0 投票
0 回答
312 浏览

objective-c - 从 QCView 拍摄的快照有时为空白

我有一个程序在 QCViews 中播放石英作品。因为 QCViews 在辅助屏幕上,所以我需要在主屏幕(一种控制屏幕)中显示一个(较小的)副本。

所以我每 0.1 秒触发一次计时器,拍摄 QCView 的快照,然后在 NSImageView 中设置生成的图像。

我的问题:

  • 快照大约 90% 的时间是正确的,但有时会变为空白。一旦发生这种情况,从此 QCView 拍摄的所有快照都是空白的,直到出现 stopRendering / startRendering。即使在同一时间另一个具有完全相同组成的 QCView 正在运行并提供良好的快照,也会发生这种情况。

  • 快照似乎与 QCView 不同步。我试图以更高的频率触发计时器,但它没有改变任何东西(我提到这一点以防它可能与我的空白图像的主要问题有关)。

任何想法或指示?

编辑:

我试图重现:创建了一个最小的项目,然后复制粘贴了我的代码:

唉,我没明白问题...

QCViews 中的快照已过期,但非常好:(

似乎快照检索的是前一个图像而不是当前图像:我制作了一个简单的 Quartz Composer 时钟,带有“系统时间”->“时间格式化程序(格式 = ss)”->“带字符串的图像”->“精灵”并且快照恰好晚了一秒:它们与原始时钟同时更改,但显示前一个图像...

听起来也像一个错误,但可能与导致无效图像的错误不同......

0 投票
1 回答
320 浏览

performance - 检测 QCView 中的 Quartz Composition 是通过软件渲染还是硬件渲染

我感觉有些 Cocoa Quartz Compositions 和 GPU 的组合无法由 GPU 处理并且依赖于软件渲染器,即使 Core Image 正常“加速”。我将如何发现这种情况?

或者更一般地说,我如何检测机器功能太弱而无法处理特定大小的特定组合,而无需实际播放组合并测量 FPS?

(通过在隐藏窗口中播放合成来测量 FPS 不太可能起作用,因为 QCView 可能会检测到这种情况并优化整个操作或其中的一部分。即使它今天没有这样做,它也可能开始这样做随着 Apple 的下一次更新 - 这将是一个不可靠的解决方案。)

更新:为了彻底,我确实编写了一些代码来测试在一个有序但大小合适的窗口中以全分辨率渲染合成,试图强制渲染以[self startRendering];[self snapshotImage];[self stopRendering];. 这花费了大量时间,起初看起来很合理,直到结果证明慢速机器在运行此测试时比快速机器更快。;) 实际上,慢速机器以微不足道的 2.24 FPS 渲染构图,而在快速机器上则为 27 FPS。

0 投票
2 回答
695 浏览

objective-c - Objective-C 和 Quartz Composer;[qcView pauseRendering] 导致 Bad_Access

提前致谢。

我有一个 Quartz Composer 视图(下面的 qcView)并在随机方向移动图像(蚂蚁的,如果你想知道代码),直到它在 QCView 中间找到它的“家”。pauseRendering 是必要的,这样我们才能看到蚂蚁一寸一寸地移动;没有它,蚂蚁只会出现在它的“家”。

这对于单个蚂蚁来说非常有效。

当我在等式中添加另一个蚂蚁时,我使用了一个调度队列和两个块。

当这段代码运行时,两个阿姨同时匆匆赶到他们家——这正是我们正在寻找的行为。但是,当我停止执行并再次构建时,我会立即从 [qcView pauseRendering] 方法中的某处获得 Exc_Bad_Access。在 Clean & Build 之后,它将完美地运行一次。移除 pauseRendering 和 resumeRendering 后,蚂蚁会立即出现在它们的家中。

显然,QCView pauseRendering 方法有一个本地数组,该数组不断增长和缩小,通过单个 QCView 和多个块访问它,您可以看到问题的根源。

我研究了QCView 文档,但似乎找不到灵感;pauseRendering 的文档很少。虽然我敢肯定你们中没有人尝试过像这样愚蠢的事情,但我希望有人有实际修改 QCView 的经验,并且能够指出我正确的方向(错误......阅读“任何!”)方向.

[编辑:如果有帮助,我已经尝试过“while (![qcView isPausedRendering])”的变体。]

0 投票
1 回答
439 浏览

cocoa - 将黑白像素转换为其他两种颜色的 QC 合成

我刚刚开始学习 Quartz Composer,我想创建的第一件事是最终可以在 Cocoa 应用程序中使用的组合,它将接受黑白图像和两个 NSColor,并将黑色像素更改为 NSColor # 1 和白色像素到 NSColor #2。

我花了一些时间和 QC 一起玩,但似乎无法弄清楚如何将所有部分放在一起。

关于我唯一想到的是我需要使用图像过滤器模板,我确实看到有一个图像像素补丁可以从图像中获取像素......但是,我没有看到一个补丁来设置像素。Pixellate补丁似乎也可能是必要的......虽然,我不应该担心它会产生无限尺寸的图像,因为我的源图像只会是固定大小的PNG图像。

0 投票
0 回答
384 浏览

objective-c - 在不使用 QCView 和 QCPatchController 的情况下观察 Quartz Composition 的发布值

我一直在寻找一些方法来控制 Quartz Composition,它被加载为从 NSView 继承的自定义视图的子层。

我手动发现,以下代码可用于设置发布的输入值:

所以我试图找到观看发布的输出值的方法,我想知道观察者是否应该这样做。写了这样的东西:

这在同一个班级:

但它不起作用。也许 keypath 不正确或者这段代码根本不应该工作:)
那么有什么方法可以观察我的作品的发布值吗?
感谢帮助。

0 投票
1 回答
549 浏览

plugins - Quartz Composer 条码扫描器

是否有可以在 Leopard (10.5) 上运行的 Quartz Composer 条码扫描器插件?我需要可以扫描书背上的条形码类型的东西;我见过一个使用 libdmtx 的 DataMatrix 插件,它可以扫描一些其他类型的条形码。