【问题标题】:QuickLook plugins and Core Image filtersQuickLook 插件和核心图像过滤器
【发布时间】:2010-12-25 14:53:57
【问题描述】:

我正在编写一个 QuickLook 插件,它使用自定义(系统范围内安装的)Core Image 过滤器将两个左/右视图组合成一个立体图。当通过“qlmanage -p”启动时,一切正常。但是从查找器中,预览是空白的……我附加到 quicklookd 并设置了一些断点来看看会发生什么;没有错误,但过滤器的输出是灰色图像。 Mac OS X 10.6 和 XCode 3.2.5。该插件被标记为需要在主线程中执行。

有什么提示吗?

【问题讨论】:

    标签: macos core-image quicklook


    【解决方案1】:

    qlmanage 进程与执行插件的真实进程 (quicklookd) 略有不同。简而言之,qlmanage -p 可以连接到窗口服务器,而 quicklookd 禁止它,因此行为不同。

    如果您真的希望 qlmanage 在与 quicklookd 相同的条件下测试您的插件,请尝试“qlmanage -p -z”而不是“qlmanage -p”。只有它不会显示结果。然后你可以使用 gdb 来调试你的插件。

    【讨论】:

    • 你不是说qlmanage -p -x吗?这使它使用 quicklookd。
    • -p -z 作为 -p 运行,除了它用于性能计时,因此不显示结果,因此不需要连接到窗口服务器,因此可以在与 quicklookd 相同的条件下运行。 -x 确实将请求发送到 quicklookd,因此您将重现您的问题,但不容易调试。
    • 使用 -x 确实可以重现问题,但调试起来并不容易;因为插件是从 quicklookd 调用的,而不是我的代码,所以我仍然必须像以前一样附加到 quicklookd 进程......
    • 虽然这实际上不是一个答案,但我会将其标记为一个原因,因为它可能对其他人非常有用。作为记录,我使用了一种不同的方法来计算浮雕,没有使用 CoreImage 过滤器,它可以工作,所以 CIFilter/quicklook 似乎不能很好地协同工作。
    • 更确切地说,GPU 和 Quick Look 插件不能很好地协同工作。这是 QL 在经常处理不受信任的文件时尝试对插件进行沙箱处理并保护系统的其余部分免受各种问题的结果。
    猜你喜欢
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    相关资源
    最近更新 更多