3. Principio de renderizado fuera de pantalla
app -gt; Frame Buffer -gt; Display
Después de que la CPU calcula los datos de la aplicación y la GPU los procesa, los resultados se almacenan en el frame buffer. usando El controlador de video lo extrae del framebuffer y lo muestra en la pantalla.
aplicación -gt; búfer fuera de pantalla (OffScreen Buffer) -gt; (combinación de capas) -gt; búfer de fotograma (Frame Buffer) -gt; Durante el proceso de visualización, la imagen se lee del búfer de fotogramas capa por capa y se elimina del búfer una vez completada la visualización. Sin embargo, las imágenes a menudo no se muestran de una manera tan simple y, a veces, es necesario recortar la imagen y realizar otras operaciones. Pero estos se han eliminado del frame buffer y definitivamente es imposible operar con ellos. Por lo tanto, para resolver este problema, se agregó un búfer fuera de pantalla (offScreen Buffer). Cada capa de la imagen primero se recorta por separado y se almacena en el búfer fuera de pantalla, y luego los resultados procesados se sintetizan y se colocan en el. búfer de fotograma medio. Esta operación se llama renderizado fuera de pantalla.
Cuando se activa la representación fuera de la pantalla, el proceso de representación de imágenes/gráficos se convierte en: la aplicación realiza una representación y fusión adicionales -gt; combinación de búfer fuera de la pantalla (búfer fuera de la pantalla) -gt; -gt; características de pantalla: (renderizado fuera de pantalla-gt; espacio de almacenamiento adicional/búfer fuera de pantalla-gt; FrameBuffer) tamaño del espacio offscreenBuffer-gt; el espacio máximo del búfer fuera de pantalla es 2,5 veces los píxeles de la pantalla
Dado que el búfer fuera de la pantalla en el renderizado fuera de la pantalla es un espacio de almacenamiento adicional para la transferencia de datos, el renderizado fuera de la pantalla afectará los problemas de rendimiento
Sin embargo, algunos efectos especiales aún deben usarse apagados. -renderizado en pantalla
1. Configurar la imagen de fondo para el botón y abrir clipsToBounds o Layer.masksToBounds activará el renderizado fuera de la pantalla
2. Abrir clipsToBounds o capa para el botón sin configurar la imagen de fondo marksToBounds no activará la representación fuera de la pantalla
4. UIImageView solo configura imágenes y no tiene color de fondo. Activar clipsToBounds o Layer.masksToBounds no activará la representación fuera de la pantalla.
Tengo que mencionar CALayer aquí, que se compone de backgroundColor, contenidos, borderWidthamp; borderColor
Cuando configuramos cornerRadius y MasksToBounds para el recorte de esquinas redondeadas, la propiedad de recorte MasksToBounds se aplicará a todas las capas.
El proceso de renderizado normal es dibujar secuencialmente. Después de dibujar una capa, se puede descartar. Pero ahora es necesario guardarlos en el búfer fuera de pantalla uno por uno y esperar el proceso de recorte de esquinas redondeadas, que activa el renderizado fuera de la pantalla.
Resumen
Cuando activamos la rasterización, la capa se renderizará en un mapa de bits y se guardará en el caché, de modo que pueda reutilizarse directamente la próxima vez que se use para mejorar. eficiencia.
Sugerencias para usar la rasterización: