Какой самый быстрый способ очистить блок памяти (или поверхность SDL)?

В настоящее время я разрабатываю проект с SDL. Он в основном рисует и перемещает изображения (поверхности) на экране.

Чтобы переместить изображение, не оставляя следов, вы должны сначала очистить поверхность экрана , очень похоже на glClear (), и в настоящее время я делаю это с помощью простого цикла for, повторяющего пиксели поверхности. (также рисование черного ящика на поверхности или memset).

Хотя предыдущие решения отлично работают для небольших поверхностей, они становятся все медленнее по мере увеличения поверхности, поэтому я искал самый быстрый способ очистить (обнулить) блок памяти.

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

7
задан NeonMan 21 December 2011 в 01:38
поделиться