在PC的VGA模式和一些较旧的游戏机中,可以通过递增寄存器来按像素滚动显示。这只使用一条CPU指令。
在现代设备中,包括配备GPU的笔记本电脑和手机,当我们滚动应用程序或网页时,它们是否仍然使用这种方法,或者是否会执行类似以下伪代码的操作:
for x in 0..framebuffer_width {
for y in 0..framebuffer_height {
framebuffer[x][y] = framebuffer[x][y+1];
}
}
因此需要更多的CPU指令?
1条答案
按热度按时间t3irkdon1#
“滚动”在很大程度上不是图形硬件中的事情,几十年来也不是。
一些程序通过在内部保存渲染的图像并将其部分删除,并使用绘图命令生成屏幕外部分来执行滚动。但大多数程序(尤其是游戏)只是在每一帧中重新绘制整个屏幕。