gpt4 book ai didi

c - 模拟屏幕

转载 作者:太空狗 更新时间:2023-10-29 16:12:08 24 4
gpt4 key购买 nike

有什么方法可以用 C 语言制作影院(或任何类型的)显示器吗?

我看过一些代码,但几乎没有文档。

最佳答案

像 EWFrameBuffer 等一样实现 IOFramebuffer 是创建图形驱动程序的方法。各种版本都有一点破损,但有可能让事情很好地工作,包括视网膜分辨率,通过一些试验和错误。硬件加速是分开的:

旧版本的 OSX 使用 IOGraphicsAcceleratorInterface 进行 2D 加速,前提是您的驱动程序提供了与您的 kext 一起实现它的 CFPlugin 包。

优胜美地我还没有弄明白;似乎它不使用 2D 加速。更糟糕的是,Yosemite 上的软件渲染性能也比以前的版本差得多。我鼓励任何受此影响的人( headless mac mini、虚拟机中的 OS X、虚拟显示器等)向 Apple 提交 Radar。我已经这样做了,但提示的人越多,他们就越有可能对此采取行动。

3D 加速 (OpenGL) API 在所有版本上都是私有(private)的。我不知道它们有任何第 3 方实现,无论是开源的还是其他方式,除非你算上 Intel/AMD/nVidia GPU 驱动程序,这些驱动程序似乎是 Apple 与相关公司合作开发的。

更新:事实证明,Yosemite 的 WindowServer 将帧速率限制在大约 8fps,除非您的 IOFramebuffer 驱动程序正确地实现了垂直空白中断。因此,如果您的驱动程序尚未这样做,请实现方法 registerForInterruptType()unregisterInterruptsetInterruptState 与中断类型一起工作 kIOFBVBLInterruptType ,并在每次发出完整图像时生成一个回调。这方面的细节将取决于您的设备(或没有)。这并没有解决硬件加速和渲染故障问题,但它至少在一定程度上提高了性能(以更高的 CPU 负载为代价)。

关于c - 模拟屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26502110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com