微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在显示模式更改过程中会发生什么?

在普通电脑的显示模式变化(分辨率,深度)过程中会发生什么? (古典台式电脑和笔记本电脑)

它可能不是那么微不足道,因为video卡是如此不同,但有一点是共同的:

屏幕变黑(可以理解,因为信号是closures的)

信号以新模式返回需要几秒钟的时间

如果它在D3D或GL下:

graphics设备丢失,所有VRAM对象都必须重新加载,使得模式更改时间更长

有人可以解释这种潜在的性质,特别是为什么一个显示模式的变化不是一个简单的重新分配缓冲器(s),并采取这样一个“长”的时间?

Windows StretchBlt API性能

在direct3d应用程序中呈现格式化的文本

从设备(video)内存直接在当前窗口中显示位图

如何在windows c ++中使用titlebar创build一个无边框窗口

保持全屏的XNA游戏在上面

不同显卡上的DirectXfunction

使用GeForce 960M在笔记本电脑上初始化D3D12debugging接口失败

为什么Direct3D只能在Windows上工作?

在Windows / D3D中检测.png alpha通道

如何获取dxgi显示器/输出的当前显示模式(分辨率,刷新率)?

实际上唯一改变的就是所谓的RAmdac(直接连接到视频RAM的数字模拟转换器)的设置,现在很好的数字连接,它更像是RAMTX(连接到视频RAM的DVI / HDMI / displayPort发射器)。 DOS图形程序员的老兵可能还记得RAmdac,规范和自己的代码间的战斗。

它实际上不需要几秒钟,直到信号返回。 这是一个相当快的过程,但是大多数显示设备需要花时间与新的信号参数同步。 实际上,写得很好的司机们之间的变化几乎立即发生在垂直空白之间。 几年前,当显示器,错误,stupider和analogue,更改视频模式设置后,人们可能会看到图片在短时间内疯狂,直到显示器重新同步(也许我应该采取这个视频,而我仍然拥有这个设备)。

由于实际发生的只是RAmdac设置的变化,只要基本参数保持不变,就不会丢失数据丢失:每像素的位数,每像素的像素数量和像素跨度。 实际上,OpenGL上下文通常不会在视频模式改变的情况下丢失数据。 当然,可见的framebuffer布局会改变,但是当移动窗口时也会发生这种情况。

不过,DirectX图形有点不同。 有设备独占访问权限,无论何时在Direct3D全屏模式和常规桌面模式之间进行切换,所有图形对象都将被交换,这就是DirectX Graphics从游戏切换到Windows桌面时的原因。

如果像素数据格式发生变化,通常需要对可见帧缓冲区进行完全重新初始化,但现在的GPU在将异构像素格式映射到目标帧缓冲区方面非常出色,所以在这里也不会出现延迟。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐