Anuncios Google

Problema de fondos [SOLUCIONADO]

Llevo media hora dándole vueltas a un problema que no consigo solucionar. A ver si alguien me puede echar un cable...

En un proyecto que estoy llevando a cabo, estoy afinando el menú. Para ello uso un fondo de 16bit en la pantalla superior, juego un poco con el brillo de la pantalla, blablabla, y después se cargan los sprites en la táctil. Pulso en uno de ellos (por el momento sólo ése), y en teoría los fondos y sprites se borran (el de 16bit de la superior y un EasyBg en la inferior) Se borran sin problema. EL PROBLEMA viene después, se supone que un fondo de 256x1104 se cargaría entonces, y después se metería en un while infinito que sólo actualiza pantalla. Pero no carga. En su lugar me aparece el mensaje de PAlib, ése de "no hay suficiente memoria para cargar todos sus backgrounds, etc. etc.", cosa que me extraña, puesto que borré los fondos anteriores, al menos eso creo. Pruebo a comentar el resto de líneas para que el compilador las ignore y cargue directamente mi fondo "extralargo". No da ninguna clase de problema. He de añadir que se trata de un fondo Dual.

Si me da ese error, lo único que se me ocurre es que yo CREA que borré los fondos anteriores, pero aunque siguen en VRAM, y por eso el fondo "extralargo" exceda el límite. Como un fondo de 16bit son 6/8 de memoria VRAM (creo recordar),...

No creo que sea necesario código, porque mi impresión es que es cosa de la VRAM. ¿Alguien podría indicarme como saber seguro que el fondo de 16bit se borra DEFINITIVAMENTE de la VRAM? Yo usé la función PA_Clear16bitBg y PA_DeleteBg, sin éxito.

Necesito que alguien ilumine mi senda sobre mi problema.

Salu2

PD: Dejo aquí los datos que considero relevantes:

Pantalla superior con fondo de 16bit en capa 3

Pantalla inferior con fondo normal en capa 3

Se borran ambos, y se carga un fondo Dual en capa 0

EDITO: Ahora que pienso, el borrado de los fondos anteriores y el cargado del Dual es casi instantáneo. ¿Tendrá que ver con la lentitud de cargado y borrado de los fondos de 16bit?


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderás trucos para resolver tus dudas antes.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de gsc

iluminartela

te la puedo iluminar (con una linterna) pero no puedo ayudarte no se mu bn de eso

Cuando cambias de un fondo

Cuando cambias de un fondo de 16 bits a otro normal,. acuerdate de resetear el sistema de fondos antes (ya que lo has puesto en modo de 16 bits). Para ello usa esta funcion:

PA_ResetBgSys();

Esto resetea en las dos pantallas, en caso de que solo quieras una:

PA_ResetBgSysScreen(pantalla);

Pruebanos y nos cuentas.

 

Saludos!

Imagen de exterminator

Gracias

justo lo que buscaba, es que nunca me quedó claro la finalidad del ResetBgSys().

Salu2

PD: Si el ResetBgSys() es para poder usar de nuevo las capas iniciadas para fondos de 16bit, cuando necesite volverlo a cargar imagino que tengo que iniciar de nuevo el modo 16bit, ¿no?


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderás trucos para resolver tus dudas antes.

Pos nunca lo he probado (yo

Pos nunca lo he probado (yo solo uso el 16 bits para la splash) pero en teoria si. Necesitas volver a cargar el modo de 16 bits.

Saludos!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.