Bonjour à tous,
J'ai depuis peu en tête le plus gros projet qui me soit jamais passé par la tête. J'en profite pour le présenter ici. Il s'agit d'une interface graphique pour OpenGL en objective-c (on ne se refait pas). Vous allez me dire… mais il y a déjà GLUI en C++ ! Et bien justement, je compte ajouter certaines particularités bien avantageuses à mon projet. En effet, en plus d'être totalement portable (j'utilise uniquement l'objective-c standard), le style de toute l'interface graphique sera entièrement personnalisable ! Et ceci dans le but de pouvoir parfaitement intégrer cette interface dans n'importe quel jeu vidéo, puisque ce projet est né de mon soucis pour trouver une interface pour mes projets de jeux vidéos (oui je sais j'ai 36 000 projets en même temps). Le plus (dans mes doux rêves, mais réalisable) serait de pouvoir faire réagir différemment l'interface en fonction de la valeur de la couche alpha (la transparence quoi) à l'endroit désigné par la fenêtre. De cette façon si on clique sur une zone entièrement transparente, le message "clic de souris" sera envoyé au jeu et non pas à l'UI. Ceci permet également d'utiliser des fenêtres aux formes les plus variées, et donc pas forcément quelque chose de "carré".
Et pourquoi avoir choisi l'Objective-C ? Principalement parce que je le connais beaucoup mieux (faut dire qu'il plus simple d'après moi) que le C++. Mon deuxième argument était sa performance, qu'après des tests concrets je croyais meilleure que celle du C++, mais je m'étais trompé. Le C++ est plus rapide. Il me reste cependant un argument qui ne me permet pas d'hésitation : la flexibilité du langage, une chose que je n'ai pu trouver dans le C++.
*pfffiou… fallait que ça sorte…*
Pour l'instant ce projet est fermé à toute participation, principalement à cause du fait que je ne sais pas si je serai disponible continuellement pour le faire avancer.
Venons en maintenant au problème pour lequel j'ai posté ici. Comme le projet doit être portable, j'utilise des bibliothèques portables (donc pas de Cocoa). Je cherche en fait l'implementation de la classe List définie par <objc/List.h>. Pourquoi ? Parce que j'avais déjà codé en C façon objet (TDA) une implementation de liste qui fonctionne parfaitement et avec de bonnes performances. Je cherche donc, en comparant mon implementation et l'implementation standard, à savoir si j'ai intérêt à choisir la classe standard ou convertir mon code C pour mon projet.
J'ai regardé du côté de GNUstep, mais utiliser NSArray m'obligerait à utiliser toute la bibliothèque Core de GNUstep, ce à quoi je ne tiens pas. Je n'ai pas besoin de tout le fratras de classes fournies. En plus de ça, je n'ai pas réussi à compiler la bilbiothèque. gnumake n'était soit disant pas installé. Je l'ai réinstallé à partir des sources données sur le site de GNUstep, retenté la configuration de GNUstep Core, même résultat… bon bref, ça ne colle pas.
Voilà, j'espère que le pavé n'était pas trop long à lire
Bon développement à tous
P.S.: j'ai commencé les premiers tests pour traquer les bugs et j'ai obtenu sur mon écran… devinez quoi…*un écran noir !
Partager