Red de conocimiento informático - Conocimiento informático - Tartamudeo en pantalla y análisis de la arquitectura de renderizado OpenGL en iOS

Tartamudeo en pantalla y análisis de la arquitectura de renderizado OpenGL en iOS

La congelación de pantalla se refiere a problemas como el desgarro (es decir, la imagen se muestra en la posición incorrecta), la pérdida de cuadros (el mismo cuadro se muestra repetidamente) al mostrar imágenes gráficas, lo que hace que el usuario vea una excepción.

¿Por qué sucede esto? La solución actual es utilizar doble buffer de sincronización vertical, lo que forzará la sincronización a expensas de la pérdida de fotogramas.

La siguiente es una ilustración del proceso de doble caché de sincronización vertical. Si hay algún error en la descripción, no dude en dejar un comentario.

Después de utilizar el método de doble caché de Apple, Surge un nuevo problema: los fotogramas eliminados.

¿Qué es la pérdida de fotogramas? En pocas palabras, cuando la pantalla muestra repetidamente el mismo cuadro de datos, se elimina el cuadro.

Como se muestra en la figura: la pantalla actual muestra A. Después de recibir la señal vertical, B es procesada por la CPU y la GPU. aún no está listo Cuando la pantalla todavía muestra A (hay un error en la imagen y el segundo es la GPU)

El proceso de renderizado general en iOS es el siguiente

Principal> Preguntas de la entrevista UIView y CALayer Relación entre

Representación de UIView y CALayer

La siguiente figura ilustra cómo las vistas y las capas se representan entre sí

En el sitio web oficial de Apple descripción. Representar, componer y animar elementos visuales. La animación es solo una parte de CoreAnimationg, que en realidad es un motor de composición cuyas principales responsabilidades incluyen la implementación de renderizado, composición y animación.

CoreAnimation en iOS se ve así

¿Por qué Apple proporciona dos jerarquías paralelas (UIKit y APPKit) basadas en UIView y CALayer?

El proceso de renderizado en CoreAnimation se muestra en la figura.

Se divide en dos partes principales:

Parte de CoreAnimation

Parte de GPU.

La arquitectura de renderizado en OpenGL se muestra en la figura

Está dividida en dos módulos principales

Análisis de arquitectura

De la figura Podemos Como puedes ver, la arquitectura de renderizado en OpenGL se divide en tres tipos:

parte GPU