CALayer et QTMovieLayer : dur dur..

MickMick Membre
12:44 modifié dans API AppKit #1
Bonjour à  tous,

Je suis en train de lutter avec les Layers. Je m'explique :
J'ai une vue NSView simple que j'ai bidouillé pour recevoir des infos lors de clics (récupération du "lieu", conversions...). Ca, ça marche.
Je crée une instance de CALayer (conteneur) dont je règle la frame, les bounds et la position en fonction de ma vue.
Je crée une QTMovieView que je mets en subLayer de conteneur => Ca marche : le film est bien lu, des boutons play, pause, .. font bien ce qu'il faut avec le film.
Le problème vient ici : je crée une nouvelle instance de CALayer  (decos) que je mets en subView de conteneur, AU-DESSUS du layer vidéo. Je définit un contrôleur comme délégué pour dessiner son contenu par la méthode
- (void)drawLayer:(CALayer *)theLayer<br />&nbsp; &nbsp; &nbsp; &nbsp; inContext:(CGContextRef)theContext

=> Le résultat est que la vidéo est par dessus ! j'ai beau mettre à  la main l'index du layer decos pour forcer à  être dessus, que dalle !. Si je mets la transparence de la vidéo à  0.9, je vois le tracé par transparence...

Je ne comprends pas ce qui ne va pas. J'ai pourtant pris modèle sur l'exemple d'Apple (avec les pinguins qui dansent...).
Auriez-vous une idée ?

Ou bien y a-t-il un moyen plus simple d'avoir une vidéo sur laquelle on peut dessiner des choses et recevoir les évènements clic ?

Réponses

  • MickMick Membre
    12:44 modifié #2
    Bon, j'ai finalement ma réponse : je suis un gros boulet !
    J'ai pris la mauvaise habitude du dessin Cocoa : j'ai implémenté le drawLayer en utilisant des NSBezierPath.., seulement, en utilisant les fonctions CGContext.. ça marche nettement mieux !

    Désolé pour le dérangement ! :o
Connectez-vous ou Inscrivez-vous pour répondre.