Из документов:
Средство рендеринга по умолчанию не выполняет отсечения области просмотра на стороне ЦП или обнаружения окклюзии. Если что-то не должно быть видно, это не должно быть показано. Используйте
Item::visible: false
для элементов, которые не должны быть нарисованы. Основная причина отказа от добавления такой логики заключается в том, что она увеличивает стоимость, что также нанесет ущерб приложениям, которые заботятся о хорошем поведении.
Итак, есть ли способ сделать это легко, не применяя его самостоятельно?
Обратите внимание, что в моем случае элементы, находящиеся за пределами видимой области, присутствуют, потому что они находятся в ScrollView
, и они не прокручиваются.
Причина, по которой я хочу отбраковку, заключается в том, чтобы уменьшить использование ЦП для полной перерисовки сцены.
visible: false
, а затем сноваtrue
. Чтобы сэкономить на перекраске процессора. Обратите внимание, что я не пытаюсь сэкономить на оперативной памяти. - person Stefan Monov   schedule 19.04.2017opacity: 0
для элементов за пределами области просмотра действительно выиграла меня. IIRC I перешел с 12% использования ЦП на 3,5% использования ЦП для 257 элементов, 21 из которых находится в области просмотра. Я думаю, что эксперименты, в которых я использовалvisible: false
, показали аналогичные улучшения. - person Stefan Monov   schedule 01.05.2017