Я рисую, среди прочего, четыре массива по 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, чтобы попытаться понять это, не спрашивая здесь, но без какой-либо удачи.
Спасибо
Задача ещё не решена.
Других решений пока нет …