【问题标题】:How to write MacOS display driver如何编写 MacOS 显示驱动程序
【发布时间】:2019-01-21 15:21:43
【问题描述】:

我需要在 MacOS High Sierra 上为外部显示器编写显示驱动程序。我找到了设备驱动程序的 IOKit 示例和有关 IOVideoDevice 的基本文档。但是我找不到 IOVideoDevice 的详细文档或示例代码。

我以 99 美元/年的价格加入了 Apple 开发者计划。我必须加入特殊的 Apple 程序来编写视频驱动程序吗?我想知道显卡供应商、DisplayLink 和 AirParrot 是如何获得这些信息的。

【问题讨论】:

    标签: macos iokit


    【解决方案1】:

    “视频驱动程序”是指视频捕获设备还是显卡 (GPU)?

    • IOVideoDevice 表示视频捕获设备,例如网络摄像头或视频采集卡。然而,这个 API 是旧的,现在视频捕获设备的驱动程序应该是written as CoreMediaIO plugins。 (尽管自从图书馆验证盛行以来 代码签名标志,此路线也存在问题,例如 3rd 方捕获驱动程序无法与 FaceTime 和类似应用程序一起使用;这超出了这个问题的范围。)
    • “显卡”表示您有一台设备要用作 Mac 的显示器。这不是苹果官方支持的。过去你可以创建一个IOFramebuffer 子类。从 macOS 10.13 开始,这不再按预期工作(空白屏幕),并且从 10.13.4-10.13.6 开始完全不起作用。 GPU 制造商(英特尔、AMD 和 NVidia)是 Apple 的供应商,因此他们可以深入访问图形管道。他们用来实现其驱动程序的 API 是不公开的。
      更新:从 10.14 和 10.15 开始,IOFramebuffer 子类再次起作用。至少,足以使操作系统将显示扩展到这样的虚拟屏幕,尽管“vram”实际上从未填充图像数据。您需要通过 Core Graphics API 或类似方法在用户空间中捕获这些内容。

    【讨论】:

    • 感谢@pmdj 的关闭。我找不到它,因为它不可用。哦,好吧。
    猜你喜欢
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 2021-10-04
    • 1970-01-01
    • 2011-06-24
    • 2013-11-24
    • 2013-03-25
    相关资源
    最近更新 更多