您必须锁定纹理才能修改其像素。SDL_SetTextureColorMod不这样做,它只设置一个颜色,当纹理用于渲染时,它会与像素的颜色相乘。
为什么我必须使用 SDL_LockTexture 和 SDL_UnlockTexture 来操作硬件纹理?
“硬件纹理”是指纹理的像素存储在 VRAM 中,渲染时可以由 GPU 直接访问。您不能直接修改 VRAM 内存。SDL_LockTexture返回指向 CPU 可访问的缓冲区的指针,同时SDL_UnlockTexture将此(修改后的)缓冲区复制回 VRAM。