什么是SDL中的Blit?

在SDL wiki中它说   使用此功能可以从源曲面到目标曲面执行快速blit。 然而,这对我没有多大帮助。 在这种情况下,术语表面blitting意味着什么?     
已邀请:
基本上它意味着将图像从一个表面复制到另一个表面 - 可能被裁剪和移位。     
Blitting意味着由维基百科或块信息传输定义的位边界块传输,在Pygame开发人员中众所周知。假设你有一个Surface(你的屏幕)。你想在屏幕上画一个圆圈。所以你想要做的是,绘制圆圈并将缓冲区的圆块传输到屏幕缓冲区,这个过程称为“Blitting”。您可以继续阅读有关Blit的更多信息。     
它将内存从内存(源)中的一个位置复制到内存中的另一个位置(目标)。 例如。它可以将像素从一个位图复制到另一个位图,从位图复制到纹理,或者将上述任何一个复制到屏幕的表面或屏幕的后缓冲区表面。 假设您有要在屏幕上显示的图像/图块。您将执行“blit”将构成图像的内存复制到屏幕上使用的内存中。 实质上,它调用的函数非常类似于memcpy(),它将指定为源的字节逐个复制到指定为目标的字节。     
官方代码示例 直觉上,它意味着“在另一个表面上绘制一个精灵”。 此操作可以使用
SDL_Texture
+
SDL_RenderCopy
进行GPU加速。 有关示例,请查看http://hg.libsdl.org/SDL/file/e12c38730512/test/testsprite2.c,特别是注释:
/* Blit the sprite onto the screen */
SDL_RenderCopy(renderer, sprite, NULL, position);
明确地说
SDL_RenderCopy
是一种盲目的方式。 在该示例中,纹理被创​​建并仅被发送到GPU存储器一次,并且从那时起它被有效地重用,参见:表面和纹理之间的差异(SDL /一般) 当我在Ubuntu 15.10上运行这个例子时,
nvidia-settings
表示GPU使用率达到了100%,而且我得到的FPS远高于通过逐个像素绘制屏幕,​​因此它是GPU加速的。     

要回复问题请先登录注册