我可以相信 SDL_Surface::pitch 是不变的吗?
Can I rely on SDL_Surface::pitch being constant?
我正在从事一个利用 SDL 1.2.15
的项目。应用程序构建一个 SDL_Surface
其帧缓冲区然后通过 getDisplaySurface()->pixels
检索并通过串行线发送。
我了解到,SDL_Surface::pixels
指向的像素缓冲区不一定是连续的。字节序列可能会被不属于可见图像区域的数据块打断。
这意味着图像的大小为 320×240,但像素缓冲区的大小可能为 512×240。 (我认为由于内存对齐而可能的加速可能是一个正当理由。不过这只是我的假设,没有实际知识支持。)
问题:
就我而言,我碰巧很幸运,像素缓冲区的尺寸正好与我的图像相同。我可以相信像素缓冲区尺寸不会改变吗?
这样我就可以将像素缓冲区的内容发送到串行接口,而不必编写处理删除那些无效块的代码。
SDL uses 4-byte alignment for rows. It also matches OpenGL's default alignment.
我正在从事一个利用 SDL 1.2.15
的项目。应用程序构建一个 SDL_Surface
其帧缓冲区然后通过 getDisplaySurface()->pixels
检索并通过串行线发送。
我了解到,SDL_Surface::pixels
指向的像素缓冲区不一定是连续的。字节序列可能会被不属于可见图像区域的数据块打断。
这意味着图像的大小为 320×240,但像素缓冲区的大小可能为 512×240。 (我认为由于内存对齐而可能的加速可能是一个正当理由。不过这只是我的假设,没有实际知识支持。)
问题:
就我而言,我碰巧很幸运,像素缓冲区的尺寸正好与我的图像相同。我可以相信像素缓冲区尺寸不会改变吗?
这样我就可以将像素缓冲区的内容发送到串行接口,而不必编写处理删除那些无效块的代码。
SDL uses 4-byte alignment for rows. It also matches OpenGL's default alignment.