Resizage "à  l'ancienne"

olivier555olivier555 Membre
avril 2005 modifié dans API AppKit #1
Bonjour!
Face à  la lourdeur de mon affichage (j'ai pu optimiser des ptits détails dans les coins mais sans plus...), j'ai décidé de réaliser un resizage "à  l'ancienne" et non en temps réel. Lorsque l'utilisateur resize la fenêtre, le resizage en temps réel soit désactivé et on ne voit plus que des traits noirs représentant les limites de la fenêtre (genre MacOS 9). Ma question est donc : Comment on fait s'il vous plaà®t?
Par avance merci de votre aide!!!!
Olivier

Réponses

  • Eddy58Eddy58 Membre
    21:37 modifié #2
    Es-tu certain que tu as fait toutes les optimisations possibles ? :)
  • olivier555olivier555 Membre
    21:37 modifié #3
    NON, loin de là ! Mais j'ai observé les logiciels qui font le même genre d'affichage et ils utilisent tous un resizing comme ça, alors que la version PC de ces softs propose un resizing en temps réel très fluide... Il semble que les Mac ont du mal pour ça, non?
  • CéroceCéroce Membre, Modérateur
    21:37 modifié #4
    Quartz demande plus à  la machine c'est tout, mais je ne crois pas qu'il soit plus lent que son équivalent PC.

    Ce qui me semble lent: les NSImageView (pense à  utiliser des images de petites dimensions).
    Evite aussi les fenêtres Aluminium.
  • Eddy58Eddy58 Membre
    21:37 modifié #5
    Quartz tire parti de l'Altivec quand il travaille avec des caches d'images qui ont des largeurs multiples de 4 (pour un buffer RGBA 32 bits). A ta place j'essaierais de chercher par là , si tu peux exploiter cela.
    Sinon il existe aussi des optimisations mineurs, telles les méthodes setCachesBezierPath:, qui crée un cache pour les chemins beziers, ou aussi allocateGState:, useOptimizedDrawing:,... :)
  • maconnectmaconnect Membre
    21:37 modifié #6
    salut, il n'existe rien de propre pour une interface cocoa, mais voici quelques astuces:
    http://cocoa.mamasam.com/COCOADEV/2003/06/1/65098.php

    Sinon si tu t'y connais, faut passer par quickdraw au lieu de quartz qui est trop lent. Mais là  ça devient hardcore
Connectez-vous ou Inscrivez-vous pour répondre.