Pregunta

Creé una aplicación de mapa que usa una imagen muy grande como mi mapa. Muestra mosaicos de alta resolución cuando el usuario se acerca hasta cierto punto y una mapa de bits de menor resolución de toda la imagen cuando se acerca al 50%. Funciona bien, en mi droide original a veces puedo ver un retraso muy leve debido a que los nuevos azulejos se dibujan dentro y del recolector de basura.

Ahora estoy pensando en cómo OpenGL ES sería una mejor manera de renderizar. Nunca lo he tocado antes, pero por lo que he estado leyendo en diferentes turoiales, parece que podría crear un quad que tenga 8 caras más o menos, y habilitar el sacrificio para que solo dibuja las imágenes que actualmente son visibles en la pantalla.

¿Esto eliminaría el retraso por completo? En mi aplicación de prueba ahora tengo que se están cargando mosaicos en el inicio de la aplicación, pero puedo decir que el retraso se debe a que los mosaicos se dibujan por primera vez. Gracias.

¿Fue útil?

Solución

He escrito una vista de mapa basada en OpenGL y es increíble si lo digo yo mismo. Lamentablemente es para un proyecto comercial, por lo que no puedo ofrecer código. Sin embargo, puedo decirle que tiene 1 hilo de representación, un grupo de 8 hilos de descarga de mosaicos y (más pertinente a su pregunta) 1 hilo de almacenamiento que carga y guarda mosaicos en el flash NAND o la tarjeta SD. La representación se realiza un mosaico a la vez, cada mosaico es 2 triángulos (no hay quads en ES). Todavía es abrasadoramente rápido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top