在SDL维基中,它说
使用此功能可以从源曲面到目标曲面执行快速blit。
然而,这对我没什么帮助。
在这种情况下,术语表面blitting意味着什么?
答案 0 :(得分:19)
基本上它意味着将图像从一个表面复制到另一个表面 - 可能会被裁剪和移动。
答案 1 :(得分:13)
Blitting意味着维基百科或块信息传输定义的位边界块传输,在Pygame开发人员中众所周知。假设你有一个Surface(你的屏幕)。你想在屏幕上画一个圆圈。所以你想要做的是,绘制圆圈并将缓冲区的圆块传输到屏幕缓冲区,这个过程称为“Blitting”。您可以继续阅读有关Blit here.
的更多信息答案 2 :(得分:1)
官方代码示例
直观地说,它意味着“在另一个表面上绘制一个精灵”。
此操作可以使用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内存一次,从那时起它就会被有效地重用,请参阅:Difference between surface and texture (SDL / general)
当我在Ubuntu 15.10上运行此示例时,nvidia-settings
表示GPU使用率达到100%,并且我得到的FPS比逐个像素地绘制到屏幕要高得多,因此它是GPU加速的。
答案 3 :(得分:1)
它将内存从内存(源)中的一个位置复制到内存中的另一个位置(目标)。
EG。它可以将像素从一个位图复制到另一个位图,从位图复制到纹理,或者将上述任何一个复制到屏幕的表面或屏幕的后缓冲区表面。
假设您有要在屏幕上显示的图像/图块。您可以执行“blit”将构成图像的内存复制到屏幕上使用的内存中。
实际上,它调用的函数非常类似于memcpy(),它将指定为源的字节逐个复制到指定为目标的字节。