Comprensión inicial del renderizado fuera de pantalla

Debido a algunas restricciones, los resultados de la renderización no se pueden escribir directamente en el búfer de fotogramas, sino que se almacenan temporalmente en otra área de memoria y luego se escriben en el búfer de fotogramas una vez completado este proceso. llamado renderizado fuera de pantalla.

Las razones por las que el renderizado fuera de pantalla consume rendimiento:

1. Es necesario crear un nuevo búfer

2. Todo el proceso de renderizado fuera de pantalla requiere múltiples cambios Entorno de contexto, primero cambie de la pantalla actual (en pantalla) a la pantalla fuera de pantalla (fuera de pantalla). Una vez completada la representación fuera de la pantalla, el resultado de la representación del búfer de representación fuera de la pantalla se muestra en la pantalla y el entorno contextual debe cambiarse de fuera de la pantalla a la pantalla actual.

1. Usa máscara

2. Establece las esquinas redondeadas y llama a cornerRadius maskToBounds

3. Establece la sombra sin establecer el camino

4. ¿Activar la rasterización? debería rasterizar

5. opacidad del grupo

6. UIBlurEffect

Nota: /p/72653360 ?Aquí el autor tiene un análisis detallado de en cada caso

El resultado final no se puede renderizar usando el frame buffer y se debe asignar una memoria para la integración de renderizado. En términos sencillos, se activa cuando hay varias capas en un marco que deben modificarse al mismo tiempo.

1. El contenido de la memoria que no se haya utilizado durante más de 100 ms se descartará automáticamente

2. El espacio máximo de memoria de renderizado fuera de la pantalla es 2,5 veces los píxeles de la pantalla. y el contenido que debe renderizarse es mayor que El valor máximo no tendrá efecto

3. Aunque la renderización fuera de la pantalla ocupará más memoria, algunas capas complejas que requieren un uso frecuente pueden mejorar el rendimiento activando renderizado fuera de pantalla.

4. El renderizado real fuera de la pantalla ocurre en la GPU

5. El simulador detecta qué capas tienen renderizado fuera de la pantalla. DEBUG-gt la interfaz renderizada en color fuera de la pantalla cambia; amarillo Esto produce renderizado fuera de la pantalla