Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 模拟屏幕_C - Fatal编程技术网

C 模拟屏幕

C 模拟屏幕,c,C,有没有办法用C语言制作电影院(或任何类型的)显示器 我看过一些代码,但几乎没有文档。实现IOFramebuffer,如EWFrameBuffer等,这是创建图形驱动程序的方法。在不同的版本中有一点破损,但是通过一些尝试和错误,可以让事情很好地工作,包括视网膜分辨率。硬件加速是独立的: 如果您的驱动程序提供了与kext一起实现的CFPlugin捆绑包,则较旧版本的OSX使用了IOGraphicsAcceleratorInterface进行2D加速 我还没有在约塞米蒂找到答案;它似乎没有使用二维加速

有没有办法用C语言制作电影院(或任何类型的)显示器


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

实现IOFramebuffer,如EWFrameBuffer等,这是创建图形驱动程序的方法。在不同的版本中有一点破损,但是通过一些尝试和错误,可以让事情很好地工作,包括视网膜分辨率。硬件加速是独立的:

如果您的驱动程序提供了与kext一起实现的CFPlugin捆绑包,则较旧版本的OSX使用了
IOGraphicsAcceleratorInterface
进行2D加速

我还没有在约塞米蒂找到答案;它似乎没有使用二维加速度。更糟糕的是,Yosemite上的软件渲染性能也比以前的版本差得多。我鼓励任何受此影响的人(无头MacMini、虚拟机中的OSX、虚拟显示器等)向苹果公司提交雷达文件。我已经这样做了,但抱怨的人越多,他们就越有可能对此采取行动

3D加速(OpenGL)API在所有版本上都是私有的。我不知道有任何第三方实现它们,开源或其他,除非你把Intel/AMD/nVidia GPU驱动程序算在内,它似乎是由苹果和相关公司合作开发的


更新:事实证明,Yosemite的Windows服务器将帧速率限制在8fps左右,除非您的IOFramebuffer驱动程序正确实现垂直空白中断。因此,如果您的驱动程序还没有这样做,请实现方法
registerForInterruptType()
unregisterInterrupt
setInterruptState
使用中断类型
kiofbblinterrupttype
,并在每次发出完整映像时生成回调。详细信息将取决于您的设备(或缺少设备)。这并不能解决硬件加速和渲染问题,但至少可以在一定程度上提高性能(以更高的CPU负载为代价)。

您需要模拟大于等于150dpi的显示器(因此像素除以报告的物理尺寸),您需要在相关显示模式上设置
kDisplayModeValidForHiResFlag
标志。我还必须提供一个有效的EDID或系统首选项,以便显示会出现故障,但这是在Mountain Lion上,所以他们可能已经解决了这个问题。