Manipuler le gam.egd

[…]

Ca se rapprocherait plus de ça, il s’agit d’un fichier qui contient les autres fichiers, en copiant de façon brut les données binaires de chaque fichier, et ayant un entête qui contient les noms de fichiers, leur emplacement dans le fichier et la taille. Ensuite GD connaissant ceci va chercher le fichier voulu et te le retourner. Certains fichiers comme ce qui se rapproche des sources peuvent être cryptés.

Chaque objet et chaque extension peut surcharger si elle veut la méthode “PrepareResourcesForMerging(ResourcesMergingHelper & resourcesMergingHelper)”.
Celle ci est appelée à chaque compilation, et passe un objet “ResourcesMergingHelper” destiné à déclarer à GD les fichiers à mettre en resources. En contre partie, l’objet te renvoie le nouveau nom du fichier. Exemple pour l’objet texte :

void TextObject::PrepareResourcesForMerging(ResourcesMergingHelper & resourcesMergingHelper) { fontName = resourcesMergingHelper.GetNewFilename(fontName); }

L’objet texte déclare ici la police de caractère utilisée, et change en même temps le nom du fichier de la police.
Les extensions peuvent faire de même en surchargeant ceci :

[code]
/**
* Called ( e.g. during compilation ) so as to inventory resources used by conditions and update their filename
*/
virtual void PrepareConditionsResourcesForMerging(Instruction & condition, ResourcesMergingHelper & resourcesMergingHelper) {};

/**
 * Called ( e.g. during compilation ) so as to inventory resources used by actions and update their filename
 */
virtual void PrepareActionsResourcesForMerging(Instruction & action, ResourcesMergingHelper & resourcesMergingHelper) {};[/code]

Pour accéder aux ressources, genre lorsque GD appelle la fonction “LoadResourcesForRuntime” de ton objet lors du chargement, tu peux utiliser la classe “RessourcesLoader” qui fournit plusieurs moyen d’accéder à des fichiers, notamment des facilités pour certains types de fichiers.

[…]

Tu sais, si tu veux faire un lecteur vidéo, prends plutôt Qt, avec GD t’iras pas loin (a moins que l’utilisateur soit contraint de voir la même vidéo en boucle toute sa vie…)

Comment ça un peu long ?

Même si GD n’est pas approprié pour faire un lecteur vidéo :
-Il y a une action pour charger un fichier vidéo aux choix. :wink:
-On parle ici de la programmation d’extensions pour GD, pas d’utiliser les évènements de GD. On peut donc tout à fait programmer une extension qui offre plein de possibilités pour lire les vidéos. Moi dans l’extension “officielle”, je me suis limité au strict minimum.

[…]

Hein ?! Qt supporte très bien le réseau, les traductions, la compressions, les fichiers, l’html, le xml, la gui (encore heureux), le SVG. A mon goût, Qt est plus complet que Qt.
D’ailleurs, pourquoi le tabWidget de WxWidget s’appelle WxNotebook : c’est totalement idiot et ça veut rien dire, sur Qt ça s’appelle QTabWidget, tout simplement.

Elle emprisonne rien du tout.

[…]

(Qt plus complet que Wx)
Sinon, il y a QGLWidget pour Qt qui permet de mettre SFML.

Le fichier est chargé en mémoire, après y a plus qu’à lire à la bonne position pour obtenir le fichier voulu : Tout n’est pas compressé ou crypté.

Mon dieu non, jamais. En C++, il y a les typedef qui sont fait pour ça, c’est largement plus sur.

Qt vaut très largement wxWidgets. La seule chose que je n’ai pas trouvé dans Qt, c’est un ruban comme celui de wxWidgets. Qt égale/surpasse wxWidgets sur bien des points, à part sans doute le fait que wxWidgets utilise véritablement l’API Windows là où Qt “simule” l’apparence de windows, ce qui est plus ou moins contestable. Les deux bibliothèques se valent.

Mais, comme ça, on peux personnalisé tout avec du CSS.

La license de Qt était très peu permissive il y a quelques années, obligeant le développeur à créer de l’open-source à moins de payer une licence commerciale, c’est la raison pour laquelle WxWidgets est un peu plus populaire du côté des amateurs, sauf les gens du SdZ qui vont quasiment tous vers Qt du fait qu’il est intégré dans le tutorial C++.

Enfin, cette époque est révolue, maintenant, il y a une license LGPL sur Qt.

Uniquement en C++ cependant, la plupart des bindings Qt pour d’autres langages utilisent encore l’ancienne licence (je pense notamment à PyQt pour Python, qui s’avère être plus complète que sa concurrente PySide)

Oui, mais ce ne sont pas des binding officiels pour la plupart.