Red de conocimiento informático - Problemas con los teléfonos móviles - Programación VC, ¿problema de parpadeo del mapa de bits en segundo plano?

Programación VC, ¿problema de parpadeo del mapa de bits en segundo plano?

Utilizaré mi propio conocimiento para explicar qué es el doble buffer

. Generalmente, la pantalla de visualización del monitor es de 60 cuadros por segundo, es decir, cada 1/60 de segundo, el monitor volverá a dibujar la pantalla de visualización. Si la imagen es estática, imagine que la parte superior de la imagen se vuelve a dibujar y la parte inferior de la imagen sigue siendo el 1/60 de segundo original, pero la síntesis de las partes superior e inferior aún conserva la imagen estática original. imagen si la imagen es dinámica, es decir, la imagen en el primer 1/60 de segundo y en el último 1/60 de segundo es diferente, entonces el efecto de combinar las partes superior e inferior será que la imagen se sentirá destrozada; Entonces, si actualiza la pantalla directamente en la superficie de la pantalla (la superficie de la pantalla es una parte de la memoria, solo sepa esto), se producirá un efecto de parpadeo.

Hay dos soluciones: 1. Seguir actualizando la pantalla directamente en la superficie de visualización, pero actualizar durante la sincronización vertical, es decir, controlar el tiempo de la actualización. El problema con este método es que si la escena que se mostrará es compleja y la actualización no se puede completar dentro del intervalo de sincronización vertical, aún se producirá un efecto de parpadeo.

2. Doble buffer. Cree una superficie fuera de la pantalla (diferente de la superficie de visualización anterior), realice operaciones de actualización en la superficie fuera de la pantalla, es decir, dibuje el siguiente

fotograma

de la pantalla para mostrarse en la superficie fuera de la pantalla. Si es VC, cuando se muestra, el contenido en la superficie fuera de la pantalla se copia a la superficie de visualización y se muestra si es

Direct3D

, cuando se muestra; , puede

p>

Intercambiar la superficie fuera de la pantalla y la superficie de visualización, es decir, la superficie fuera de la pantalla se convierte en la superficie de visualización y la superficie de visualización se convierte en la superficie fuera de la pantalla.

En VC, la operación de doble almacenamiento en búfer generalmente consiste en dibujar primero la imagen que se mostrará en un

mapa de bits

y luego dibujar este mapa de bits en el bitblt actual. DC (

Contexto del dispositivo

) y se muestra.

No sé si puedo hacerte entender. ¡Buena suerte!