Уменьшите использование ЦП при рисовании массивов прямоугольников (SFML)

Я рисую, среди прочего, четыре массива по 65 sf :: RectangleShape каждый (я использую SFML 2.0). В моем игровом цикле я делаю это:

//...

window.clear();

// here I am drawing some other stuff

for (int i = 0; i < 65; i++) {
window.draw(tilesLeft[i]);
window.draw(tilesTop[i]);
window.draw(tilesRight[i]);
window.draw(tilesBot[i]);
}

window.display();

Это работает просто отлично. Тем не менее, я заметил в диспетчере задач, что чем больше массивов я рисую на экране, тем больше энергопотребление процессора, естественно. Поэтому, когда я рисую простые вещи, это составляет 0-5%, тогда как сейчас, когда я рисую эти четыре массива, оно увеличивается до 20-25%.

Теперь мой вопрос, как я могу уменьшить использование процессора? Программа, которую я делаю, очень, очень проста, поэтому 25% использование процессора неоправданно, и на самом деле просто из-за моей плохой реализации.

Есть ли способ, я не знаю, кэшировать изображение, нарисованное во фрейме, и превратить его в растровое изображение или что-то в этом роде и рисовать только эту карту, пока что-то в массивах не изменится?

Я также уже пытался нарисовать массивы в разных потоках, что не дало лучших результатов, поэтому я очень надеюсь, что кто-то может помочь мне с этим.

Я старался изо всех сил объяснить это полностью, но я не являюсь носителем английского языка, поэтому я не знаю, как это воспринимается. Плюс я использовал Google, чтобы попытаться понять это, не спрашивая здесь, но без какой-либо удачи.

Спасибо

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector