SDL_LockSurface
«s документация не очень ясно предполагает, что формат пикселей некоторых поверхностей может изменяться в течение срока их службы, и поэтому правильным способом доступа к формату пикселей поверхности будет сначала проверить, нуждается ли поверхность в блокировке с помощью SDL_MUSTLOCK
и, если это так, заблокируйте его, используя SDL_LockSurface
,
Тем не менее, много онлайн примеры кода получить доступ к формату без выполнения какой-либо проверки.
Действительно ли необходимо заблокировать поверхность для доступа к формату пикселей? Может ли формат изменяться в течение срока службы поверхности, чтобы требовать блокировки?
Я использую SDL 1.2 на случай, если есть разница между версиями.
Маловероятно, что формат пикселя будет изменен, и если это произойдет, то это не произойдет в середине вашего доступа к нему, потому что формат находится в памяти клиента (затронутый только вами и SDL). Если вы по-прежнему обеспокоены этой возможностью, всегда создавайте поверхности с флагом SDL_SWSURFACE или блокируйте поверхность перед доступом к формату.