Управление аппаратными текстурами с помощью SDL2 - PullRequest
0 голосов
/ 05 июля 2018

Почему я должен использовать SDL_LockTexture и SDL_UnlockTexture для манипулирования аппаратными текстурами с SDL2? Мне известно о разнице между доступом к текстуре "STATIC" и доступом к текстуре "STREAMING", но я думаю, что я сбит с толку, потому что мне кажется, что я помню, как использовал "SDL_SetTextureColorMod" для настройки цвета текстур "STATIC". Так почему же иногда нам приходится блокировать пиксели, а иногда нет?

1 Ответ

0 голосов
/ 05 июля 2018

Вы должны заблокировать текстуру, чтобы изменить ее пиксели. SDL_SetTextureColorMod не делает этого, он только устанавливает цвет, который умножается на цвет пикселя, когда текстура используется для рендеринга.

Почему я должен использовать SDL_LockTexture и SDL_UnlockTexture для управления аппаратными текстурами?

«Аппаратная текстура» означает, что пиксели текстуры хранятся в VRAM и могут быть напрямую доступны графическому процессору при рендеринге. Вы не можете изменить память VRAM напрямую. SDL_LockTexture возвращает указатель на буфер, доступный для CPU, а SDL_UnlockTexture копирует этот (измененный) буфер обратно в VRAM.

...