Version 0.90 : 05/01/04 |
- Utilisation de SDL pour gérer les événements, c'est beaucoup plus puissant que GLUT. Comme SDL ne supporte pas tout ce dont j'ai besion (l'accélération alpha en hardware, le redimensionnement de textures, certains blendings), toute la partie graphique est toujours sous OpenGL.
- Correction du fameux bug graphique (des lignes crades qui apparaissent partout) !!! En fait, les textures lissées sont gérées de manière différentes suivant la carte graphique : sur certaines, si on copie en lissant un bord de texture, ça rajoute des artéfacts tous laids. Bref, maintenant on peut choisir de lisser ou non une texture (en pratique, seules les textures pour les textes ou les images devant être redimmensionnées sont lissées).
- Le fond de l'écran n'est pas vidé à chaque nouvelle frame, ce qui augmente la vitesse d'affichage (sous U.M.A.X., je suis à plus de 500 fps avec une Geforce 4 Ti 4200).
- Ajout pour chaque texture d'un deuxième argument pour la compresser ou non.
- Retravail des procédures de textures, avec maintenant (De)Charge(Toutes)Texture (on peut maintenant charger les textures uniquement quand on en a besoin, pour optimiser la mémoire graphique utilisée), CreeTexture pour les textures vides, Copie(Ecran/Tampon)DansTexture qui correspond à MiseAJourInterfaceGauche de U.M.A.X..
- Quelques petites corrections dans l'affichage du texte. Possibilité de justifier le texte des deux côtés, et de modifier la hauteur des lignes.
- Les boutons ne restent plus enfoncés quand on les clique avec le bouton droit.
- Les Texte sont transparents aux événements par défaut (attention lorsqu'on crée un texte clickable à bien désactiver cette propriété).
- Séparation dans des fichiers commençant par "perso" de tout ce qui peut être personnalisé (paramètres généraux, textures chargées, skins, etc).
- Ajout de la fonction ForceTickTimer.
- Utilisation de MemoryManager pour détecter les fuites de mémoire : en fait il n'y en avait que des petites (handlers de ObjetGDI jamais libérés, Pixel dans TGA.cpp non plus), mais pas mal :p
- Une nouvelle skin pour les Coche (on peut maintenant utiliser des coches dont l'image cochée s'affiche indépendemment de la non-cochée).
- Un ObjetGDI qui va être détruit est rendu invisible.
- Affichage à la place de VariableDebogage de la place prise par les textures chargées.
- Quelques autres corrections de-ci de-là.
- Tous mes programmes basés sous UGDI passent sous license GPL !
- Plus aucune inclusion de <windows.h>, normalement le source est directement compilable sous une autre plate-forme.
- U.G.D.I. prend 53 fichiers pour 184 Ko.
|
Version 0.86 : 04/10/03 |
- Un niveau de classe en moins en interne pour les handlers, merci à Grunt :)
|
Version 0.85 : 03/10/03 |
- FenetrePrincipale est maintenant appellée par FenetreFond, une fenêtre invisible qui est en fait la racine de tous les objets.
- Nouveaux objets Texte et Menu.
- ajouteObjetGDI centre les fenêtres par défaut.
- Les noms de skins sont changés pour être plus parlant. Plein de nouveaux types de boutons (que je remets lors du portage pour U.M.A.X. en fait :)
- Ajout de DecalageEnfonce dans SkinBouton, et des arguments decalBMPSurvol, decalBMPEnfonce, decalEnfonce au dernier constructeur de Bouton.
- Séparation de la procédure CreeTexture, pour enlever la redondance entre Graphiques.cpp et AffichageTexte.cpp. Cette procédure peut aussi créer des textures vides.
- Possibilité d'utiliser plusieurs polices.
- Quelques changements de noms pour augmenter la cohérence et le français : Affichage pour Affiche, Dessine pour Draw, les balises pseudo-html, etc.
- Quelques arguments de plus ont des valeurs par défaut.
- Les touches dans les FenetreMessage font comme un clic sur les boutons.
- Les ObjetGDI ont une propriété TransparentAuxEvenements, par exemple pour permettre à un clic de souris de les "traverser". On peut par exemple maintenant déplacer une FenetreMessage en la prenant par son texte.
- La propriété Visible des ObjetGDI fonctionne.
- Correction du calcul de largeur d'un texte avec des caractères en gras.
- Quelques autres modifications et corrections apportées lors de la ré-importation de U.G.D.I. dans U.M.A.X. (je peux enfin me remettre à mon projet d'origine !!)
|
Version 0.8 : 01/09/03 |
- Programmation d'un éditeur pour générer le code-source des fenêtres automatiquement ! C'est en plus une véritable démonstration de U.G.D.I., vu que c'est un programme indépendant et complet qui utilise sans le modifier le code de U.G.D.I., en rajoutant simplement des classes pour les différentes fenêtres. Enfin, ce programme aide au mûrissement de U.G.D.I., vu qu'il me permet de vérifier la puissance et la simplicité d'utilisation du framework : la quasi-totalité des mises à jour de U.G.D.I. ont en fait été apportées lors du développement de l'éditeur.
- Correction des bugs quand une fenêtre ne contenait aucun objet.
- Ajout des procédures DessineLigne, DessinePoint, GetTailleTexture, et des arguments facultatifs pour DessineRect et DessineCercle.
- Plus besoin de passer en paramètre le Container parent, c'est mis automatiquement par ajouteObjetGDI maintenant.
- Meilleure skinnisation des curseurs.
- Ajout de la propriété Texture à toutes les skins.
- Ajout de la propriété TroncagePleinEcran dans SSkinContainer, quelques autres corrections pour l'affichage de fenêtres en plein écran.
- Container gère maintenant les RelacheDehors comme il se doit.
- Rajout des méthodes ajouteDebutAffichageHandler et videHandlers à ObjetGDI.
- ObjetGDI.setLimites est maintenant virtual pour pouvoir contrôler les dimensions des objets, utile pour l'éditeur.
- Les boutons peuvent maintenant être créés simplement à partir d'une image quelconque, sans créer de skin correspondante.
- Correction du retour à la ligne de l'affichage de texte.
- Rajout de la procédure centre à Fenetre.
|
Version 0.78 : 26/08/03 |
- Possibilité de skinner complètement mais simplement les fenêtres, les boutons, les cases à cocher et les barres de progression, quelques exemples pour en faire la démonstration.
- Gestion avancée du multi-fenêtres.
- Possibilité d'ajouter un décalage et une zone de clip à l'affichage en cours (le clip garde les caractères de texte entiers pour l'affichage, trop compliqué sinon).
- Rajout de la classe gérant le temps et les timers, affichage du temps et du fps en version DEBUG.
- Correction de la libération des ressources.
- Correction du déplacement des fenêtres.
- Les ObjetGDI ont maintenant une propriété ADetruire pour éviter qu'une destruction au cours d'une procédure interne de l'objet (typiquement une fenêtre qui se ferme) n'entraîne un plantage, cette propriété est vérifiée dans la procédure attente() des Containers.
- Séparation des procédures Relache en Relache et RechaleEtSelectionne. Pas mal de petits remaniements dans la gestion des événements, par exemple ne pas traiter un clic droit quand le gauche est en cours, etc.
- La majorité des méthodes de Fenetre ont été déplacées vers Container.
- Affichage est maintenant une liste de handlers.
- Allez voir le Lisez-moi pour voir les problèmes qu'il reste encore.
|
Version 0.7 : 27/07/03 |
- Première version, commencée à partir du moteur GDI de U.M.A.X. 0.36.
- Les Callback de GLUT sont maintenant gérés dans un fichier à part qui les transmet à la Fenêtre principale.
- Le moteur de gestion des événements est au point, merci à François Ferrand pour m'avoir aidée avec les listes template de pointeurs de méthodes !
- Les classes Liste et Iterator sont maintenant bien ce qu'elles veulent dire, et utilisent des template.
- Les fenêtres sont maintenant des dérivées de la classe Container, elle-même dérivée de ObjetGDI. On ne peut les déplacer qu'en cliquand dans une zone définie.
- Toutes les fonctionnalités déjà présentes dans U.M.A.X. (chargement de textures et dessin 2D, affichage de texte, les objet Bouton-Image-Texte-Défilement) sont bien sûr présentes.
|