1. John Siracusa
    1. Mountain Lion
      1. Introduction
      2. Achat et installation
      3. Changements d'interface (1)
      4. Changements d'interface (2)
      5. Changements d'interface (3)
      6. Applications (1)
      7. Applications (2)
      8. Applications (3)
      9. Applications (4)
      10. Applications (5)
      11. iCloud(1)
      12. iCloud(2)
      13. iCloud(3)
      14. Gatekeeper(1)
      15. Gatekeeper(2)
      16. Retina et HiDPI
      17. Fourre-tout (1)
      18. Fourre-tout (2)
      19. Fourre-tout (3)
      20. Fourre-tout (4)
      21. Fourre-tout (5)
      22. Fourre-tout (6)
      23. Recommandations
      24. Deux pères, un fils
    2. Lion
      1. Introduction
      2. Installation
      3. Revoir les fondamentaux
      4. Redimensionnement des fenêtres
      5. Et voici pour les cinglés
      6. La gestion des fenêtres
      7. Le modèle de document
      8. le modèle des processus
      9. Les éléments internes (1)
      10. Les éléments internes (2)
      11. ARC
      12. Le système de fichiers
      13. Ses modifications dans Lion
      14. Documents, résolution
      15. Le Finder
      16. Mail, Safari
      17. Fourre tout (1)
      18. Fourre tout (2)
      19. Recommendations
    3. Snow Leopard
      1. Introduction
      2. Le ticket d'entrée
      3. L'installation
      4. Nouvel aspect
      5. Détails internes
      6. Quick Time X
      7. Système de fichiers
      8. Faire plus avec plus
      9. LLVM et Clang
      10. Les blocs
      11. Concurrence
      12. Grand Central Dispatch
      13. Asynchronicité
      14. Open CL
      15. La différence...
      16. Quick Time Player
      17. Le Dock
      18. Le Finder
      19. Exchange
      20. Performances
      21. Fourre tout (1)
      22. Fourre tout (2)
      23. Le futur
    4. Leopard
      1. Introduction
      2. L'héritage
      3. Nouvel aspect 1
      4. Nouvel aspect 2
      5. Le noyau
      6. 64 bits
      7. FS Events
      8. Core animation
      9. Quartz GL
      10. Core UI
      11. Détails internes
      12. Le Finder
      13. Le Dock
      14. Time Machine
      15. Performances
      16. Pot pourri
      17. Demain
    5. Tiger
      1. Introduction
      2. Retour sur le passé
      3. Nouvel aspect de Tiger
      4. Mises à jour du noyau
      5. Le lancement
      6. Les méta-données
      7. Attributs étendus
      8. Listes de contrôle d'accès
      9. Spotlight 1
      10. Spotlight 2 : analyse et potentiel
      11. Types de fichiers
      12. Méta-données : la fin
      13. Quartz
      14. Quartz 2D Extreme
      15. Core Image
      16. La vidéo sous Tiger
      17. Dashboard
      18. Le Finder
      19. Les performances
      20. Pot pourri
      21. Conclusion
    6. Panther
      1. Introduction
      2. Les précédents
      3. L'installation
      4. Nouvel aspect
      5. Performances
      6. Changement rapide d'utilisateur
      7. Gestion des fenêtres
      8. Exposé
      9. Le Finder
      10. Performance du Finder
      11. Toujours le même
      12. Safari
      13. XCode
      14. Conclusion
    7. Jaguar
      1. Introduction
      2. Le nom
      3. L'installation
      4. Modifications d'Unix
      5. Dévelopeurs...
      6. Quoi de neuf
      7. Rendezvous
      8. Quartz Extrême
      9. Performance
      10. Compositions
      11. Le Finder
      12. Applications
      13. Sherlock
      14. Le portrait
    8. Puma
      1. Prelude
      2. Introduction
      3. Installation
      4. Réglages système
      5. Performance
      6. Redimensionnement des fenêtres
      7. Utilisation de la mémoire
      8. Diagnostics de mémoire
      9. L'environnement Classique
      10. L'interface Utilisateur
      11. Le Finder
      12. Extensions de fichiers
      13. Divers, conclusion
    9. Cheeta (Mac OS X 10.0)
      1. Qu'est ce que Mac OS X
      2. Installation
      3. Le démarrage
      4. Utilisation de la RAM
      5. Performance
      6. Performance des applications
      7. Stabilité
      8. L'interface utilisateur
      9. Le Finder
      10. Le navigateur du Finder
      11. Le Finder (divers)
      12. L'interface utilisateur
      13. Os X Classique
      14. Système de fichiers
      15. Unix
      16. Applications
      17. Conclusion
    10. Les débuts de MacOsX
      1. 1999 : OSX DP2
      2. 2000 : Quartz et Aqua/a>
      3. Fin de la lune de miel
      4. la première bêta publique
      5. 2001 : Mac OS X 10.0
      6. Un investissement
    11. Finder Spatial
      1. Introduction
      2. Interfaces spatiales
      3. Le Finder spatial
      4. Le concierge
      5. Un nouveau Finder
      6. Le browser
      7. Le browser spatial
      8. Finder et méta-données
      9. Les modèles
      10. Pensées finales

Quartz GL




J'ai pris plusieurs pages, dans mon compte-rendu de Tiger, à explorer comment dans Mac OS X la couche d'affichage Quartz avait évolué dans le temps, et notamment comment les fonctionnalités ont migré depuis le CPU et la mémoire principale vers le GPU et la VRAM. Tiger a apporté la dernière marche à cette évolution, Quartz 2D Extrême qui a fini par déplacer l'exécution des commandes de dessin elles-mêmes vers le GPU, en écrivant le résultat directement dans la VRAM.

J'ai consacré tellement de temps (et tant de graphes plaisants OmniGraffle) à Quartz 2D Extrême parce que c'était l'une des technologies de Tiger qui m'intéressait le plus. Je l'avais attendue longtemps, en bûchant dur depuis Mac OS 10.0, où tout dessin ou processus de composition se faisait sur mon pauvre CPU G3 à 400 MHz, dans l'attente qu'un jour, cela se ferait sur du matériel spécifique.

D'une façon regrettable, bien que le code de Quartz 2D extrême ait été inclus dans Tiger, il était invalidé par défaut. A l'époque, je supputais qu'il pourrait être validé dans une mise à jour ultérieure "peut-être aussi tôt que la version 10.4.1". Ah... Deux ans après, Tiger a atteint la version 10.4.11, et Quartz 2D Extrême est toujours invalidé par défaut.

Mais sûrement -sûrement- Quartz 2D extrême va être validé dans le puissant Léopard, non ? Quand il est question de déplacer le code vers le GPU, peut-être que nous devrions tous être habitués à la déception.

Les premières choses d'abord. Quartz 2D Extrême, qui vous remplissait presque la bouche, a été renommé Quartz GL dans Léopard. Je suis chaudement partisan de l'éviscération de "Extrême" dans tous les noms de produits Apple, alors oui. Deuxièmement, il est important de comprendre pourquoi Quartz GL fut invalidé dans Tiger pendant toutes ces années. Apple n'a jamais fait aucune déclaration publique à ce propos, mais les développeurs qui ont demandé ont reçu un message tout à fait cohérent. Et qui se ramène à des différences entre Quartz GL et les implémentations de Quartz plus anciennes, plus centrées sur le CPU, différences qui affectent effectivement des applications existantes.

Les bogues sont le problème évident. Quartz GL était un nouveau produit dans 10.4.0, une version qui avait bien assez de ses propres problèmes, sans vouloir ajouter un nouveau moteur de dessin à toutes ses applications. L'autre défaut important fut abordé dans le compte-rendu sur Tiger : Quartz GL peut effectivement rendre quelques applications plus lentes parce que les "meilleures pratiques" quand on écrit pour une implantation de Quartz centrée CPU/RAM sont exactement l'opposé de celles à utiliser pour Quartz GL.

Alors qu'est-ce qui a changé dans Léopard ? Vraisemblablement, la plupart des bogues de Quartz GL ont été éliminées, mais les problèmes de performance supposent que les développeurs d'applications changent leur code. Mais, pourquoi seraient-ils motivés à changer leur code ? Après tout, Quartz GL est invalidé dans Tiger. Cette situation de la poule et de l'œuf explique explique pourquoi Quartz GL n'est pas non plus validé globalement dans Léopard.

A la différence de Tiger, cependant, les applications de Léopard peuvent explicitement valider Quartz GL, soit pour toute l'application, soit seulement pour des fenêtres spécifiques. Cela autorise chaque développeur à choisir quand et où il utilise Quarz GL. Quarz GL, comme beaucoup de technologies de Léopard, va sûrement commencer à se répandre dans les applications qu'on utilise tous les jours. Cela n'est peut-être pas aussi évident que pour Core Animation, mais à long terme, c'est tout aussi important.


L'indépendance vis à vis de la résolution

Si on parle de technologies présentes dans Tiger, mais jamais validées, l'indépendance à la résolution fait quelques pas supplémentaires dans Léopard. Un simple rappel : dit simplement, l'indépendance à la résolution, parfois appelée "mise à l'échelle de l'interface utilisateur" ou "support pour des hautes résolutions d'image" (High DPI support) est la possibilité de dessiner les éléments de l'interface utilisateur en utilisant plus de pixels.

Par exemple, le petit widget rouge de fermeture dans la barre de titre d'une fenêtre utilise 16 x 16 pixels au facteur d'échelle par défaut (1.0). C'est bon pour les écrans qui ont autour de 100 pixels par inch (PPI), mais sur un écran avec 200 pixels par inch, cela donne une cible très petite pour cliquer dessus. En utilisant un facteur d'échelle de 2, le même widget serait dessiné en utilisant 32 x 32 pixels -quatre fois plus. Cela fait une cible à cliquer de même taille que celle de 16 x 16 pixels à l'échelle 1 sur un écran de 100 PPI. Le facteur d'échelle 2 pourrait aussi être plus détaillé, puisqu'il contient plus de pixels.

Cœurs inutilisés

Echelle 1 (à gauche), échelle 2 (à droite)

Les bénéfices de l'indépendance à la résolution sont doubles. Dans le haut de gamme, les écrans avec une densité de pixels plus grande deviennent utilisables, maintenant qu'il y a un moyen d'empêcher les widgets qui constituent l'interface graphique de se rapetisser jusqu'à devenir incliquables. En particulier, du texte apparaîtra bien plus net à mesure que le taux de PPI des écrans commencera à se rapprocher de celui des imprimantes modernes.

Dans le bas de gamme, l'indépendance à la résolution permet à des utilisateurs avec une mauvaise vision de rendre tout plus grand sur leurs écrans à faible PPI, en augmentant réellement la quantité de détails (par opposition au zoom d'écran courant qui ne fait qu'agrandir les pixels existants en rajoutant un flou gênant).

Sous Tiger, le facteur d'échelle de l'interface utilisateur n'existait que dans l'application Quartz Debug (une partie des outils de développement gratuits d'Apple). Et sous Léopard, le contrôle du facteur d'échelle pour l'interface utilisateur ... n'existe que dans l'application Quartz Debug. Désolé !

Augmenter effectivement le facteur d'échelle fournit une démonstration tout à fait convaincante de la raison pour laquelle il en est ainsi. Regardez les espaces non uniformes sur les contrôles segmentés dans cette recopie d'écran de Text Edit au facteur d'échelle de 2.0

Text Edit à l'échelle 2

Texte Edit au facteur d'échelle 2 : espacement irrégulier des contrôles segmentés

Comme vous pouvez le constater, il y a encore plein de défauts, même dans les applications les plus simples. Comme le facteur d'échelle a un effet global, il ne peut pas être validé partiellement comme avec Quartz GL.

A l'opposé de Quartz GL, Apple a effectivement tenu un message clair auprès des développeurs au sujet de l'indépendance à la résolution. Il y a eu des sessions aux dernières WWDC sur la façon de préparer les applicationsà fonctionner à des facteurs d'échelle supérieurs à 1.0. Le gros problème, c'est Apple elle-même qui n'a pas d'indépendance à la résolution fonctionnant correctement sur tous les frameworks graphiques de Mac OS X. De plus, les détails de la façon dont l'indépendance à la résolution intér-agissent avec les APIs ont changé à la WWDC 2007.

Néanmoins, la date qui se murmure pour l'apparition de l'indépendance à la résolution en tant que caractéristique visible par l'utilisateur dans Léopard est 2008. Le début de 2008 ? La fin de 2008 ? Si Apple le sait, elle ne dit rien. Si bien que la question posée il y a deux ans est toujours pendante. Qu'est-ce qui viendra le premier, des moniteurs de prix abordable à PPI élevé, ou une version indépendante à la résolution de Mac OS X ? L'attente se prolonge.

Mais ce n'est pas tout ce qu'il y a à dire à propos de l'indépendance à la résolution. En fait, on pourrait dire il y a encore une chose...