Projet d'économiseur d'écran

1246725

Réponses

  • cbrandtcbrandt Membre
    19:58 modifié #92
    dans 1113416323:

    En effet, la MBU est bien soignée par Apple, qui ont du à  mon avis leur fournir la doc CGS nécessaire, pour mettre un effet Génie dans Word. Mais ils ont beau être bien soignés, ce n'est pas pour autant qu'ils vont nous sortir un MSN potable....:P


    d'après certaines discussions sur la mailing list développeurs, il semblerait que l'effet génie ait été réimplémenté par M$, donc sans utiliser de fonction CGS cachée, et ça n'a pas l'air trop compliqué: http://www.cocoabuilder.com/search/archive/cocoa?words=genie
  • Eddy58Eddy58 Membre
    19:58 modifié #93
    Oui cbrandt, la méthode évoquée est intéressante. A retenir... :)
  • Vinc26Vinc26 Membre
    19:58 modifié #94
    Alors les amis  :)

    Comment va autour de ce projet ? Zavez des bonnes pistes ? De nouvelles betas ?

    ;)
  • Vinc26Vinc26 Membre
    19:58 modifié #95
    Coucou !!!

    Bon... je vois que depuis que Tiger est sorti, ben y'a plus personne ! Il est si génial que ça ce Tiger ?  ;)

    Moi, pas encore pu l'essayer  :-\\  J'attends mon nouveau powerbook qui sera livré avec 

    Plus sérieusement, y a-t-il eu des changement des Tiger qui vous ai obliger d'arrêter le développement de cet éco d'écran ? Ou des nouveautés qui permettraient de le faire plus simplement ?

    :o
  • Eddy58Eddy58 Membre
    19:58 modifié #96
    Normalement, Tiger ne devrait rien changer (il suffit d'essayer la démo en attachement plus haut sur Tiger pour être fixé, et je ne l'ai pas encore). La progression du projet se fait selon nos disponibilitées, un peu de patience.... ;)
  • Vinc26Vinc26 Membre
    19:58 modifié #97
    La patience ! Promis j'en demande à  noel !  :P
  • Vinc26Vinc26 Membre
    19:58 modifié #98
    Coucou tout le monde ?

    Zavez des news ? Zavez des avancées sur cet éco d'écran ? Tiger a-t-il finalement changé la donne ?

    ;)
  • jhoolsjhools Membre
    19:58 modifié #99
    Bonjour,

    Je suis tout nouveau, et je comprends pas grand chose au développement, même si j'essaie de faire quelques efforts ces derniers temps.

    je viens de découvrir ce projet d'économiseur d'écran que je trouve très prometteur. je me demandais : est ce que Quartz Composer pourrait "faciliter" la mise en oeuvre du projet ? Si on arrive à  injecter l'information des differentes fenetres et du fond d'écran dans QC, programmer le mouvement en 2D, 3D, voire avec des effets blur...etc... semble à  la portée de pas mal de monde : chacun pourrait même faire sa propre sauce. (à  condition d'avoir Tiger bien sur...)

    Bref voila ma question : savez vous si il est possible en combinant/modifiant les fonctions de Quartz Composer fournies par Apple d'obtenir une macro qui récupère toutes les fenetres et le fond d'écran et les met dans des "Sprites" ou autre "Billboards" ou bien des "Image Importer" ?

    Est ce que le travail de Bru peut être récupéré dans QC ?
  • Eddy58Eddy58 Membre
    19:58 modifié #100
    Salut jhools,
    Bien que je n'ai pas encore eu l'occasion de m'en servir, Quartz Composer semble être un très bel outil, mais le problème principal reste le même que si on voulait simplement passer par OpenGL : La récupération des images des fenêtres et de l'écran. :-\\
  • Vinc26Vinc26 Membre
    19:58 modifié #101
    Coucou !

    Le temps a passé... et a oublié  :)

    Je vois que ce projet est bien trop compliqué au niveau de la récupération du contenu de fenêtre... tampis.

    En revanche, y'aurai pas moyen, simplement, de faire le contenu total de l'écran se mette à  floter dans un espace tout noir ?

    Enfin... je rêve encore de l'idée du début... mais il semble que seul Apple peu pondre ça.
  • 19:58 modifié #102
    Moi je pense que ça serait possible mais pour les app Cocoa uniquement. Il faudrait un inputManager qui lors du lancement de screen saveur capture le contenu des fenêtres ouvertes. Au screen saver de tout récupérer ensuite.
  • septembre 2005 modifié #103
    Voilà , ce n'est pas terrible mais c'est peut être mieux que rien.

    Voici le code pour l'IM, j'ai placé le code http://www.mparrot.net/downloads/setalphavalue.zip (je ferais un IM dédié si le principe convient).
    - (void)notif:(NSNotification *)aNotification<br />{<br />	NSLog(@&quot;notif %@&quot;,aNotification);<br />	NSFileManager *man=[NSFileManager defaultManager];<br />	<br />	NSString *folder=nil;<br />	if ([aNotification object])<br />	{<br />		if ([[NSFileManager defaultManager] fileExistsAtPath:[aNotification object]])<br />			folder=[aNotification object];<br />	}<br />	if (!folder)<br />	{<br />		folder=[@&quot;~/Library/Caches/CapturerToutesLesFenetres/&quot; stringByExpandingTildeInPath];<br />		if (![man fileExistsAtPath:folder])<br />			[man createDirectoryAtPath:folder attributes:nil];<br />	}<br /><br />	NSArray *allWins=[NSApp windows];<br />	int i;<br />	for (i=0;i&lt;[allWins count];i++)<br />	{<br />		NSWindow *win=[allWins objectAtIndex:i];<br />		if ([win isVisible])<br />		{<br />			[[win contentView] lockFocus];<br />			NSSize winSize=[win frame].size;<br />			NSRect rect=NSMakeRect(0.0,0.0,winSize.width,winSize.height);<br />			NSBitmapImageRep *bitmap=[[NSBitmapImageRep alloc] initWithFocusedViewRect:rect];<br />			[[win contentView] unlockFocus];<br />	<br />			[[bitmap representationUsingType:NSPNGFileType properties:nil] writeToFile:<br />							[folder stringByAppendingPathComponent:[NSString stringWithFormat:@&quot;%d.png&quot;,win]] atomically:NO];<br />[bitmap release];<br />		}<br />	}<br />}
    


    L'IM réagit à  la notification :
    [[NSDistributedNotificationCenter defaultCenter]postNotificationName:@_capturerToutesLesFenetres object:nil];

    Un testeur est disponible http://www.mparrot.net/downloads/testeur.zip.

    @+
  • Vinc26Vinc26 Membre
    19:58 modifié #104
    Bon, je sais pas si tu sais, mais je n'ai eu que l'idée du truc. J'y connais malheureusement rien en dévelopoment... je ne comprends donc pas vraiement à  quoi va servir ce que t'as posté. J'ai testé le "testeur". Mais rien ne se passe. Je suppose que c'est normal ?

    En espérant que ça aide d'autre dev ici pour peut-être faire renaà®tre ce projet !!!  <3
  • Eddy58Eddy58 Membre
    19:58 modifié #105
    Pour moi ça ne capture que les fenêtres d'AlphaValue et la petite fenêtre pour lancer la capture, ce qui est normal vu le code, mais il faudrait que ça marche aussi pour toutes les fenêtres hors de l'application. Comment comptes-tu procéder ? :o
  • Vinc26Vinc26 Membre
    19:58 modifié #106
    (punaise ! si ça pouvait marcher et qu'ensuite, on envoie tout ça dans Quartz Composer  :o )
  • septembre 2005 modifié #107
    Pour les fenêtres des applications masquées, je ne sais pas... capturer les visibles ce n'est pas assez ?

    Mode d'emploi...
    1. Télécharger setAlphaValue (la paresse de faire un autre IM...)
    2. Installer setAlphaValue...
    3. Relancer les app Cocoa afin qu'elles chargent setAlphaValue
    4. Lancer et utiliser le testeur.
    5. Les images sont dans le dossier /Library/Caches/CapturerToutesLesFenetres/
  • Eddy58Eddy58 Membre
    19:58 modifié #108
    Ok oui ça fonctionne ! <3 :kicking: :p :p <br />Bien joué supermic...trés intéressant ces IM pour bidouiller. Donc maintenant tu peux faire un IM dédié que l'on notifierait à  partir du screensaver pour faire les captures c'est ça ? :)
  • septembre 2005 modifié #109
    Oui, on a accès a tout... j'en avais prévu un pour ajouter les tab à  la omniweb dans Safari mais trop tard :(...

    bref... Si quelqu'un s'occupe du SS oui (je n'aurais fait que le plus facile : )
  • Vinc26Vinc26 Membre
    19:58 modifié #110
    En effet ça marche !!!

    Bon effectivement ça ne prend que le cocoa... ça n'a pas pris par exemple les fenêtres finalcutpro, finder, itunes 5,... etc... mais ça marche déjà  hyper bien pour celle en cocoa.

    J'y pense, pourquoi ça ne prend pas le bureau ?

    Et enfin, y'aura-t-il une solution pour prendre les non-cocoa ?

    Enfin, pour avancer, il nous manque maintenant à  récupérer les coordonnées des fenêtres cocoa prises. Et en l'état, je propose déjà  une première version qui ressemblerai à  ça :

    - on prend une capture de l'ensemble de l'écran tel quel
    - on prend les fenêtre cocoa et leurs coordonnées.
    - on recompose tout ça dans QuartzComposer : la capture générale au fond, et par devant, aux bons endroits, les fenêtre cocoa.
    - et on anime de la manière suivante : le fond disparait dans un simple fondu au noir, et alors, les fenêtres restante se mettent à  virevolter lentement dans l'espace !!!

    Trop beau !!!!!!!!!

    C'est faisable ça hein ?
  • 19:58 modifié #111
    Ca marche pour le Finder (il faut le relancer lui aussi)... par contre le bureau je sais pas. Je sais obtenir l'image de fond mais il n'y aura pas les icônes :(
  • Eddy58Eddy58 Membre
    19:58 modifié #112
    J'ai bcp de boulot, par dessus la tête même :P, mais je devrais trouver un peu de temps pour OpenGl-iser ça, je dis pas que ça avancera vite mais on va essayer. Je ne sais pas ou en est Bru avec la méthode CGS, mais on peut déjà  commencer un truc avec ça. :)
  • Vinc26Vinc26 Membre
    19:58 modifié #113
    Ben chez moi, même après redémarrage de la machine, ça ne marche toujours pas pour le finder. ni pour le bureau.

    J'ai essayé de l'installé pour tous les utilisateur... pareil.

    T'en dit quoi pour les fenêtres non cocoa ?
    Et vous en dites quoi pour les coordonnées des fenêtres ?

    :adios!:
  • Vinc26Vinc26 Membre
    19:58 modifié #114
    dans 1126803664:

    J'ai bcp de boulot, par dessus la tête même :P, mais je devrais trouver un peu de temps pour OpenGl-iser ça, je dis pas que ça avancera vite mais on va essayer. Je ne sais pas ou en est Bru avec la méthode CGS, mais on peut déjà  commencer un truc avec ça. :)


    Tu préfères open gl à  quatrz composer ?
  • Eddy58Eddy58 Membre
    19:58 modifié #115
    dans 1126803966:

    Tu préfères open gl à  quatrz composer ?

    Disons que j'ai jamais utilisé Quartz Composer, il faudrait que j'y jette un coup d'oeil pour voir la marge de manoeuvre qu'il offre, mais en adressant directement OpenGL ça doit laisser plus de possibilitées je pense. :)
  • Vinc26Vinc26 Membre
    19:58 modifié #116
    D'mon coté, j'me disais que quartz composer a peut-être des fonctions toutes prêtes pour faire les ombres par exemple... etc... enfin je sais pas... t'es l'air de sacrément mieux t'y connaà®tre 

    <3
  • Vinc26Vinc26 Membre
    19:58 modifié #118
    Bon, un petit bilan... visuel : Vu ce que nous sommes capables de faire et de récupérer actuellement (c'est a dire pas certaines fenêtres, ni les icones, il me semble que nous devrions pouvoir obtenir ça :

    http://vincent.zorzi.free.fr/forums/EcoEcran_v2.mov
    H264 QuickTime7 - 1.1Mo - Fait sous FinalCutPro

    Qu'en dites vous ? ça peut avoir une sacrée allure ! n'est-ce pas ?

    DEUX REMARQUES :
    - Là , j'ai un peu triché : la fenêtre QuickTime, je l'ai capturée à  la main (MAJ+POMME+4) parce que "Testeur" capture bien la fenêtre quicktime, mais son contenu est tout blanc ! Et j'ai essayé avec différents formats de video affichés... Qu'en dites-vous ?
    - Un élément hyper important est néssecaire pour reconstituer l'écran : l'ordre de superposition des fenêtre (avant-plan > ... > arrière-plan > bureau). Savez-vous récupérer ce genre d'information ?

    Que dites-vous de tout ça ?
  • septembre 2005 modifié #119
    dans 1126803841:

    Ben chez moi, même après redémarrage de la machine, ça ne marche toujours pas pour le finder. ni pour le bureau.

    Oui, j'ai dit une connerie, pour le finder ça ne marche pas en fait...

    dans 1126803841:

    T'en dit quoi pour les fenêtres non cocoa ?

    ... que je ne sais pas comment faire pour l'instant...

    dans 1126803841:

    Et vous en dites quoi pour les coordonnées des fenêtres ?

    J'ai ajouté un fichier info indiquant la position des captures.
    Pour la v1, tu n'as plus qu'a attendre qu'Eddy58 te fasse la partie graphique :brule:
  • Vinc26Vinc26 Membre
    19:58 modifié #120
    Et pour la position "z" des fenêtres ? Leurs positions avant-plan / arrière plan ?

    Oui...... je sais...... maintenant..... de la patience.....  B) depuis tout petit on me dit ça  >:D :'( ...........

    :adios!:
  • AliGatorAliGator Membre, Modérateur
    19:58 modifié #121
    C'est logique que ça ne capture pas le Finder.
    Le Finder est encore une appli Carbon, et non Cocoa, si je ne m'abuse.

    C'est aussi compréhensible l'histoire de la fenêtre blanche pour QuickTime.
    Je suis prêt à  parier ce que tu veux que ça fait le même effet (mais je dirais plutôt une fenêtre noire) avec des softs d'affichage de vidéo comme VLC (si c'est en Cocoa ?) ou même p'tet bien DVDPlayer.
    C'est dû à  la façon qu'ont les cartes graphiques pour gérer cela : en fait il s'agit du système d'"Overlay", où la surface où doit se faire l'affichage est d'une couleur uniforme donnée, et la vidéo est ensuite appliquée sur cette surface uniforme qui sert un peu de "masque".

    Tu peux t'en rendre parfois compte en déplaçant très très rapidement la fenêtre de VLC où s'affiche la vidéo : la vidéo en elle même va se repositionner au bon endroit un peu en retard par raport à  la fenêtre, genre tu déplaces la fenêtre et seulement qques ms après ta vidéo se déplace.

    Une solution pour palier à  ça, c'est utiliser ce que tu as fait (capture de la fenêtre par Pomme-Maj-4) mais ce qui peut être automatisé, puisqu'il existe une ligne de commande pour capturer l'écran (à  voir ensuite ce que l'on peut lui fournir comme paramètres, si on peut lui préciser les coordonnées on devrait pouvoir se démerder). Je crois que la commande en question s'appelle "screencapture" un truc du genre.
Connectez-vous ou Inscrivez-vous pour répondre.