Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 04/02/12, 23:41:17
Array

[xs_avatar]
Cerb Cerb no está en línea
Usuario novato en la web
 
Fecha de registro: feb 2012
Mensajes: 3
Tu operador: Pepephone

Flip horizontal en canvas

Buenas, soy Cerb ;D Estoy portando un juego de windows phone a android y he tenido unos problemas. En windows phone funcionaba perfectamente pero en android baja el framerate un huevo.
Es un juego de lucha y tengo que reflejar respecto del plano Y el personaje de la derecha. Las animaciones son imagenes 3D prerenderizadas que tienen que flipearse en cada iteracion. Ahi es donde peta.
He probado a flipear el canvas entero (multiplicacion por -1, 1), luego pintar normal y luego restaurarlo, suena rebuscado pero es lo que suelen proponer. Tambien he probado a crear un bitmap nuevo en cada iteracion que se escale por -1, 1, pero solo el bitmap, y luego se pinte en el canvas, esto parece que va un poco peor.
Tambien he probado a almacenar las imagenes al principio, en vez de flipearlas en tiempo real. Al principio del juego cargo todas las animaciones asociadas a los personajes seleccionados, las flipeo y las meto en un array de bitmaps, pero cuando llego a la imagen numero 70 dice que ya no tiene mas memoria.. cuando es realmente solo 1162k... si, 1 mega.
Me han dicho que es porque este flip lo hace la cpu, y que con opengl usaria la gpu. Pero como hago que el flip se haga usando al gpu? si llamo a Bitmap.createScaledBitmap y luego lo renderizo con opengl no ganara nada de velocidad, porque la propia multiplicacion del bitmap es la que se hace en cpu, independientemente de que despues vaya a canvas o a opengl (o eso creo yo).
A alguien le ha pasado algo asi? que puedo hacer para que vaya fluido? Gracias
Responder Con Cita


  #2  
Viejo 05/02/12, 00:09:02
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
La librería Bitmap en Android, además de ser la culpable del 99% de los Memory Leak y FCs, es LEEEEEEENTA de cojones.

Por lo que estoy viendo al final vas a tener que ir a morir a NDK, tanto por el tema de memoria como por el tema de velocidad.
Responder Con Cita
  #3  
Viejo 07/02/12, 22:42:05
Array

[xs_avatar]
Cerb Cerb no está en línea
Usuario novato en la web
 
Fecha de registro: feb 2012
Mensajes: 3
Tu operador: Pepephone

Y se supone que es normal que la gente tenga que hacerse sus arreglos porque las librerias oficiales son una castaña? Siento que soy el unico que tiene este problema :S
De todas formas cuando pueda intentare cargar la textura del resource a opengl sin pasar por bitmap (usando una libreria 3D) y lo cargare sobre un plano flipeado, desflipeare despues para dejarlo igual. Igual que hacia con el canvas ^^
Lo probe ayer en windows phone y va infinitamente mejor que en android, incluso pintando solo animaciones sin flipear...
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 19:02:20 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /