µLua DS - Forum officiel | Official forum Index du Forum

µLua DS - Forum officiel | Official forum
Le bon endroit pour en savoir plus sur MicroLua et pour parler de vos projets ! | The right place to learn more about MicroLua and talk about your projects !

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer   ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Le nouveau MicroLua
Aller à la page: 1, 2  >
 
Poster un nouveau sujet   Répondre au sujet    µLua DS - Forum officiel | Official forum Index du Forum -> Section française -> Coin du dév'
Sujet précédent :: Sujet suivant  
Auteur Message
Quent42340


Hors ligne

Inscrit le: 03 Juin 2009
Messages: 1 388
Localisation: Veauche

MessagePosté le: Mer 25 Déc 2013 - 19:29    Sujet du message: Le nouveau MicroLua Répondre en citant

Reylak : séparation du thread depuis Nintendo DS is not dead!



Bon, alors, j'ai regardé pour DuaLua.

Ce qui est le plus compliqué c'est les fonctions d'affichage, donc j'ai refait:
screen.drawPoint
screen.drawLine
screen.drawRect
screen.drawFillRect
screen.drawGradientRect ( c'est moche, c'est lent, mais j'ai pas passé beaucoup de temps dessus )

Et j'ai travaillé sur screen.blit avec screen.newimg et screen.deleteimg ( noms temporaires c'était pour le test )
Le problème: la libpng n'est pas vraiment facile à prendre en main
Et pour les autres types d'images il faudra utiliser d'autres bibliothèques.

Ma conclusion:

Je pense que si il faut recoder µLua entièrement avec la libnds, ça sera trèèèèèèès long.

Dans un premier temps, je pensais m'occuper de faire un loader png qui fonctionnera avec la xlib pour faire des tests, et ainsi arriver à loader une image png correctement.
Ensuite, j'adapterais ce loader à DuaLua, afin de permettre de charger des images PNG.

Le problème ici, c'est qu'on a aucune fonction toute prête pour charger des images, et qu'il faut vraiment créer un loader qui gère tout, ce qui n'est pas une mince affaire.

De plus, les images ont la plupart du temps 32 bits de couleurs par pixel, alors que sur DS on en a que 16, ce qui signifie qu'il faut convertir toutes les images pour arriver à un résultat affichable par la DS.

Un autre souci, la mémoire. Toutes les images seront chargées en RAM, et si je me souviens bien, on a que 4MB de RAM sur la DS, ça va être juste... Enfin je crois que µLua ne fait pas bien mieux, donc au pire...

Je pense que tout ce foutoir va être vraiment long à coder, et surtout vraiment compliqué.
Donc ce que je vais faire c'est que je vais créer une bibliothèque moi même, qui sera aussi simple que les fonctions de µLua, et qui fonctionnera avec la xlib, ensuite, j'adapterais cette bibliothèque à µLua.
Cependant, j'aurais besoin d'un maximum d'aide, non pas sur la partie graphique, parce que je vais m'en occuper, mais sur le reste, donc tout ce qui est DateTime, System, Keys, DSUser, NiFi, etc...
Parce que je n'aurais pas le temps de m'occuper de tout ça.

Sur ce les amis !
_________________
Mes projets: https://github.com/Quent42340


Revenir en haut
Visiter le site web du posteur
Publicité






MessagePosté le: Mer 25 Déc 2013 - 19:29    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Reylak
Administrateur

Hors ligne

Inscrit le: 24 Nov 2008
Messages: 2 837
Localisation: Toulouse

MessagePosté le: Mer 25 Déc 2013 - 22:02    Sujet du message: Le nouveau MicroLua Répondre en citant

Pour le coup de la RAM on a toujours fait avec, les images ne sont de toute façon pas toutes chargées dans la RAM en même temps. Et le principe de la VRAM existe toujours non ?

A priori le reste devrait être moins compliqué, me semble pas que c'est excessivement dépendant de la µLib (et au pire on a les sources de la µLib Smile ).
Ah, et DateTime n'existe plus Quent :p
_________________


Plein d'infos sur le SourceForge !


Revenir en haut
Visiter le site web du posteur MSN Skype
Quent42340


Hors ligne

Inscrit le: 03 Juin 2009
Messages: 1 388
Localisation: Veauche

MessagePosté le: Mer 25 Déc 2013 - 22:14    Sujet du message: Le nouveau MicroLua Répondre en citant

Reylak a écrit:
Pour le coup de la RAM on a toujours fait avec, les images ne sont de toute façon pas toutes chargées dans la RAM en même temps. Et le principe de la VRAM existe toujours non ?


Bah si justement, à partir du moment où tu charges une image, elle sera dans la RAM jusqu'à ce que tu la libères...
Et non justement, la VRAM ici contiendra les pixels affichés.

Reylak a écrit:
A priori le reste devrait être moins compliqué, me semble pas que c'est excessivement dépendant de la µLib (et au pire on a les sources de la µLib Smile ).


J'ai déjà fait tout ce qui est keys normalement, faudra juste que je revérifie, après pour le reste je pense que c'est pas trop compliqué.

Reylak a écrit:
Ah, et DateTime n'existe plus Quent :p


C'est là que je commence à me sentir vieux... Sad

Ah oui au fait, j'ai refait mon implémentation mais avec la xlib cette fois, et mon gradient est parfait. Evil or Very Mad
Faudrait trouver une solution pour avoir plus de 16 bits par pixel, mais y'en a pas en fait haha...
Donc je crois que c'est le genre de fonction qu'il faudra abandonner, ou garder l'implémentation que je viens de faire qui est pas top, mais c'est déjà ça.

Voilà un screen de comparaison:


Pour ce qui est des images j'attaque tout de suite.
_________________
Mes projets: https://github.com/Quent42340


Revenir en haut
Visiter le site web du posteur
Reylak
Administrateur

Hors ligne

Inscrit le: 24 Nov 2008
Messages: 2 837
Localisation: Toulouse

MessagePosté le: Jeu 26 Déc 2013 - 14:53    Sujet du message: Le nouveau MicroLua Répondre en citant

Ah oui avec la libnds c'est dégueu xD

Pour les images, je voulais dire qu'on ne les charge pas toutes en même temps... Enfin bref c'est bon quoi.

Ah, et j'ai vu que Papy a committé sa branche pour l'utilisation du micro aussi Smile
_________________


Plein d'infos sur le SourceForge !


Revenir en haut
Visiter le site web du posteur MSN Skype
Quent42340


Hors ligne

Inscrit le: 03 Juin 2009
Messages: 1 388
Localisation: Veauche

MessagePosté le: Jeu 26 Déc 2013 - 21:13    Sujet du message: Le nouveau MicroLua Répondre en citant

Le problème c'est pas la libnds, mais le fait qu'on soit limité à 16 bits par pixel... :/

Ah bah heureusement, sinon ça serait problématique ! :')

Intéressant ! Bon, j'ai pas le temps de continuer ce soir, demain soir j'aurais fini ma semaine de taff donc je pense que je vais aller voir des potes, Samedi faut que j'aille chercher un déguisement de loup pour le grand jeu de Vendredi pro ( oui je suis animateur ) et le soir je sors, Dimanche je comate et c'est reparti pour une semaine de taff, donc je sais pas si j'aurais bien le temps avant la rentrée. Mais en tous cas je m'en occuperais au moins les weeks prochains je pense. (:

Si quelqu'un peut essayer de trouver un loader libpng 1.2.x qui permet d'avoir une couleur par pixel dans un tableau ça serait vraiment génial, ça devrait se trouver sur google avec un peu de recherche...
( Oui j'ai démarré from scratch juste avec la doc et sans tuto. Oui je suis un fou et je le sais. )
_________________
Mes projets: https://github.com/Quent42340


Revenir en haut
Visiter le site web du posteur
Reylak
Administrateur

Hors ligne

Inscrit le: 24 Nov 2008
Messages: 2 837
Localisation: Toulouse

MessagePosté le: Jeu 26 Déc 2013 - 23:05    Sujet du message: Le nouveau MicroLua Répondre en citant

Citation:
un loader libpng 1.2.x qui permet d'avoir une couleur par pixel dans un tableau

J'ai rien compris.
_________________


Plein d'infos sur le SourceForge !


Revenir en haut
Visiter le site web du posteur MSN Skype
Quent42340


Hors ligne

Inscrit le: 03 Juin 2009
Messages: 1 388
Localisation: Veauche

MessagePosté le: Jeu 26 Déc 2013 - 23:24    Sujet du message: Le nouveau MicroLua Répondre en citant

Je réexplique, ce que j'essaie de faire à l'heure actuelle, c'est de récupérer les pixels d'une image avec la libpng ( version 1.2.x ) afin de pouvoir la réafficher ensuite, donc il faudrait une fonction utilisant la libpng, qui permette de récupérer ces pixels afin de les mettre dans un tableau.
_________________
Mes projets: https://github.com/Quent42340


Revenir en haut
Visiter le site web du posteur
habababa


Hors ligne

Inscrit le: 07 Mar 2013
Messages: 21
Localisation: Philippines

MessagePosté le: Ven 27 Déc 2013 - 10:37    Sujet du message: Le nouveau MicroLua Répondre en citant

You'd have to use quantisation options in libpng to convert 32bpp to 16bpp.
Though, if you have plans of implementing dynamic images/textures/palettes, just drop 24bpp and 32bpp support, use the natively supported 16bpp and 4bpp.


BMP, GIF, JPEG & PNG decoder with no external dependencies - http://nothings.org/stb_image.c


Revenir en haut
Reylak
Administrateur

Hors ligne

Inscrit le: 24 Nov 2008
Messages: 2 837
Localisation: Toulouse

MessagePosté le: Ven 27 Déc 2013 - 18:24    Sujet du message: Le nouveau MicroLua Répondre en citant

Ah ok j'avais pas si mal compris la première fois en fait o/

Ooooh thank you habababa!
_________________


Plein d'infos sur le SourceForge !


Revenir en haut
Visiter le site web du posteur MSN Skype
Quent42340


Hors ligne

Inscrit le: 03 Juin 2009
Messages: 1 388
Localisation: Veauche

MessagePosté le: Sam 28 Déc 2013 - 13:43    Sujet du message: Le nouveau MicroLua Répondre en citant

OMG thanks a lot habababa, it works now with xlib!
_________________
Mes projets: https://github.com/Quent42340


Revenir en haut
Visiter le site web du posteur
Quent42340


Hors ligne

Inscrit le: 03 Juin 2009
Messages: 1 388
Localisation: Veauche

MessagePosté le: Sam 28 Déc 2013 - 16:32    Sujet du message: Le nouveau MicroLua Répondre en citant

Bon alors, j'ai quasiment tout refait niveau affichage, je peux afficher des points, des lignes, des rectangles ( pas pleins, pleins, dégradés ), des images, et maintenant des lettres, bientôt des chaînes, puis une textbox.
Ensuite je ferais les sprites, et ça sera terminé. Wink
_________________
Mes projets: https://github.com/Quent42340


Revenir en haut
Visiter le site web du posteur
habababa


Hors ligne

Inscrit le: 07 Mar 2013
Messages: 21
Localisation: Philippines

MessagePosté le: Sam 28 Déc 2013 - 16:37    Sujet du message: Le nouveau MicroLua Répondre en citant

Good for you then. Okay
Those were suggestions I actually have never tried so I didn't know whether they would work or not. Mr. Green


Did stb_image compile under devkitARM? Nothing to modify?
Haven't tried that too since my BMP loader was already done by the time i found that compilation.


libtonc/tonclib - http://www.coranac.com/tonc
This is for the GBA but adapting it for the NDS should take little work.
I suggest you check the sources since it has optimized code for working with surfaces(blitting an image onto an image, etc.) in 2D modes.


Revenir en haut
Quent42340


Hors ligne

Inscrit le: 03 Juin 2009
Messages: 1 388
Localisation: Veauche

MessagePosté le: Sam 28 Déc 2013 - 16:39    Sujet du message: Le nouveau MicroLua Répondre en citant

Don't worry, all works right now.

And yes, stb_image compiles without any modification.
_________________
Mes projets: https://github.com/Quent42340


Revenir en haut
Visiter le site web du posteur
Quent42340


Hors ligne

Inscrit le: 03 Juin 2009
Messages: 1 388
Localisation: Veauche

MessagePosté le: Sam 28 Déc 2013 - 18:21    Sujet du message: Le nouveau MicroLua Répondre en citant

Allez, fini pour ce soir, j'ai tout fait pour le texte, même la textbox ! ( faudra pas espérer compter sur les fonts custom par contre )
Enfin elle est pas totalement terminée la textbox d'ailleurs, j'ai pas encore totalement réussi à faire un découpage par mot, pour l'instant ça coupe en plein milieu d'un mot sur le bord d'une textbox, mais c'est en cours
Si ça intéresse quelqu'un j'ai créé un dépôt pour mes tests avec la xlib: https://github.com/Quent42340/DuaLuaLib
_________________
Mes projets: https://github.com/Quent42340


Revenir en haut
Visiter le site web du posteur
Quent42340


Hors ligne

Inscrit le: 03 Juin 2009
Messages: 1 388
Localisation: Veauche

MessagePosté le: Dim 29 Déc 2013 - 23:14    Sujet du message: Le nouveau MicroLua Répondre en citant

Tadaaaaa



Code:
screen.drawGradientRect(SCREEN_UP, 0, 10, 49, 59, Color.new(31, 31, 31), Color.new(31, 0, 0), Color.new(0, 31, 0), Color.new(31, 0, 31))

img = Image.load("img/drunken.png")

screen.blit(SCREEN_UP, 50, 60, img)

screen.print(SCREEN_UP, 0, 0, "Hello DuaLua!")

screen.drawTextBox(SCREEN_DOWN, 2, 2, 97, 46, "Hello everybody in this world of Lua and Nintendo DS.")

screen.drawRect(SCREEN_DOWN, 0, 0, 99, 49, Color.new(31, 31, 31))

screen.drawFillRect(SCREEN_DOWN, 50, 50, 99, 99, Color.new(31, 31, 31))

screen.drawLine(SCREEN_DOWN, 0, 50, 49, 99, Color.new(31, 31, 31))

while true do
   Controls.read()
   
   screen.waitForVBL()
end

Image.destroy(img)
img = nil

_________________
Mes projets: https://github.com/Quent42340


Revenir en haut
Visiter le site web du posteur
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 10:00    Sujet du message: Le nouveau MicroLua

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    µLua DS - Forum officiel | Official forum Index du Forum -> Section française -> Coin du dév' Toutes les heures sont au format GMT + 1 Heure
Aller à la page: 1, 2  >
Page 1 sur 2

 
Sauter vers:  

Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com