¿Alguien ha logrado que OpenGL ES 2.0 trabaje en un fondo de pantalla en vivo? Tengo una clase que usa OpenGL ES 2.0 y funciona bien como un Renderer para GLSurfaceView. Sin embargo, quiero que funcione como un fondo de pantalla en vivo. Encontré el GLWallpaperService de Robert Green, pero está basado en una versión anterior de GLSurfaceView y no es compatible con setEGLContextClientVersion, que es necesario para ejecutar OpenGL ES 2.0.Android Live Wallpapers con OpenGL ES 2.0?
Respuesta
He logrado hacer funcionar un LWP basado en OpenGL extendiendo GLSurfaceView y luego envolviéndolo en un servicio de fondos de pantalla. No he probado específicamente si OpenGL es 2.0 funciona con este método, pero no veo ninguna razón por la que no lo haga.
Puede encontrar los archivos específicos de LWP en https://github.com/JesusFreke/Penroser/tree/master/src/org/jf/GLWallpaper. Deben ser genéricos y utilizables como están en otros proyectos. Para un ejemplo de cómo utilizar estas clases, consulte https://github.com/JesusFreke/Penroser/blob/master/src/org/jf/Penroser/PenroserLiveWallpaper.java
Después de leer la fuente GLSurfaceView por un tiempo, terminé con una implementación/idea algo similar para obtener soporte OpenGL para WallpaperService. Pero la razón para comentar tu respuesta es que creo que estás perdiendo GLThread en tu implementación de GLWallpaper. Se cancela solo una vez que se llama a GLSurfaceView.onDetachedFromWindow() (o puede llamarlo manualmente en este caso), onSurfaceDestroyed() lo pone solo en estado de espera. – harism
@harism: ¿cómo lo implementó de manera diferente? He trabajado con el servicio de fondo de pantalla de JesusFreke por un tiempo, y funcionó muy bien. El único problema es cuando se aplica el fondo de pantalla desde el modo de vista previa, donde GLThread a veces arroja una excepción, pero no puedo entender cómo resolverlo. –
@Daniel Schuler La única diferencia es que implementé un método '' onDestroy() '' para GLSurfaceView que simplemente se escribe como '' void onDestroy() {super.onDetachedFromWindow()} ''. Llamar a esto matará la hebra GL subyacente, de lo contrario se dejará en estado inactivo en el fondo. Sin embargo, no puedo decir si tiene algo con el problema al que te enfrentas. – harism
El código en this blog post adapta GLWallpaperService de Robert Green para trabajar con OpenGL ES 2.0. Puede tener cierto éxito al usarlo, sin embargo, probablemente sea más fácil para usted utilizar la implementación de JesusFreke.
Si tiene éxito en mejorar GLWallpaperService, por favor submit your changes back to the project para que todos podamos beneficiarnos.
- 1. Android OpenGL ES 2.0 emulador
- 2. Fondos de Android Live - OpenGL vs Canvas
- 3. OpenGL ES 2.0 GLKit con fondo transparente
- 4. ¿Cómo usar OpenGL ES 2.0 en Android SDK (no NDK)?
- 5. Elija OpenGL ES 1.1 u OpenGL ES 2.0?
- 6. Transición de OpenGL ES 1.1 a OpenGL ES 2.0
- 7. Puntos texturizados en OpenGL ES 2.0?
- 8. Mostrar un texto como textura con OpenGL ES 2.0
- 9. OpenGL ES 2.0 posible sin NDK?
- 10. Vértices dinámicos rápidos en OpenGL ES 2.0 en Android
- 11. Android - tutoriales para OpenGL ES 2.0 utilizando el NDK?
- 12. ¿El simulador de Android admite OpenGL ES 2.0?
- 13. Cuestiones de la cámara OpenGL ES 2.0
- 14. OpenGL ES 2.0 PNG canal alfa
- 15. Framebuffer FBO renderizar a textura es muy lento, con OpenGL ES 2.0 en Android, ¿por qué?
- 16. Trazado de recorte en OpenGL ES 2.0
- 17. iPhone OpenGL ES 2.0 - Pixel Perfect Textures
- 18. OpenGL ES 2.0 equivalente de glOrtho()?
- 19. Introducción a OpenGL ES 2.0 en Windows
- 20. Diferencia entre OpenGL ES 2.0 y OpenGL 4
- 21. Libgdx no usa Opengl ES 2.0
- 22. Mejores prácticas de OpenGL ES 2.0 Shader
- 23. ¿CÓMO crear OpenGL ES 2.0 SkyBox?
- 24. Cómo lograr glOrthof en OpenGL ES 2.0
- 25. PowerVR SGX535 Shader Performance (OpenGL ES 2.0)
- 26. Representación de OpenGL ES 2.0 con una textura
- 27. Línea de textura suave con sombreadores OpenGL ES 2.0
- 28. ¿iPad o iPhone son compatibles con OpenGL ES 2.0?
- 29. OpenGL u OpenGL ES
- 30. Android OpenGL ES 2.0: No obtengo los resultados que quiero con Matrix.traslateM
He encontrado una respuesta a mi propia pregunta en https://github.com/ghisguth/blurred-lines-live/blob/master/src/cxa/lineswallpaper/Wallpaper.java –
Gracias por el enlace, I He estado buscando lo mismo :) – kusma
@MJP: ¡Agradable! Por favor responda su propia pregunta con el enlace. – Macarse