Home Menu

Menu



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


 
Herramientas
  #1  
Viejo 04/02/12, 23:41:17
Avatar de Cerb
Cerb Cerb no está en línea
Usuario novato en la web
Mensajes: 3
 
Fecha de registro: feb 2012
Mensajes: 3
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de Cerb
Cerb Cerb no está en línea
Usuario novato en la web
Mensajes: 3
 
Fecha de registro: feb 2012
Mensajes: 3
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
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   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 19:04:04 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007