En nous appuyant sur ce que nous avons compris récemment sur le fonctionnement des contextes graphiques Quartz et sur les nouvelles entrées apparues dans l'API, nous nous sommes replongés dans le Myriad Music plug-in et son non fonctionnement sur Safari. En théorie, cela devait être simple. Le plug-in peut interroger le navigateur, pour lui demander deux choses : - Fonctionne tu avec des évènements Cocoa ? - Le tracé graphique s'effectue t'il sur une surface QuickDraw ou sur une surface CoreGraphic ? En fonction de cela, le plug-in peut s'adapter pour gérer les évènement qu'il reçoit (ça cela fonctionne depuis longtemps), et convertir ses affichages (ça on sait faire depuis peu). C'est là que les problèmes commencent... Le Navigateur est censé envoyer dans le cas du fonctionnement en mode CoreGraphic, les valeurs du contexte permettant les affichages. Mais bien que le contexte soit là et correctement dimensionné, rien ne se passe à l'écran. Si l'on active le mode "évènement Cocoa" on reçoit également un contexte graphique, et on obtient une visualisation correcte (Champagne !), mais uniquement la première fois, apparemment ce contexte graphique est flottant et on ne peut le réutiliser. Si on active les deux (mauvaise, très mauvaise idée), on ne reçoit plus aucune information sur le contexte, petit détail qui nous a bloqué une bonne journée. Donc, encore choux blanc, et encore l'impression de défricher des zones de codes où l'absence d'exemple et les erreurs flagrantes dans la documentation officielle, semblent montrer que nous sommes certainement une petite poignée à vouloir faire cela : continuer à faire fonctionner ce qui a marché sans problème pendant des années. Une course sur place. |