Second Life® world, Second Life® viewer, SL™ community, Linden™ dollars, SLurl™ link sont réservés par Linden Labs™

Petites Annonces

 Burn2 festival second life


Du vendredi 21 au vendredi 28 octobre:  FESTIVAL DU RIRE

Retransmis par Jetsetlife Radio en direct.

Second Life festival du rire

Login



Examen de passage avant de s'attaquer au source du viewer de Second Life
Note des utilisateurs: / 4
MauvaisTrès bien 
Humour
Écrit par Garmin Kawaguichi   
Jeudi, 26 Mars 2009 14:02

Ce n'est pas un secret, c'est même public, Linden Lab a (depuis des lustres déjà) rendu public le code source de son viewer pour Second Life.
Scénario : vous venez d'aborder Second Life, dix jours se sont écoulés, vous apprenez que vous avez librement accès au code source ...

... et vous vous voyez déjà éditeur de votre propre viewer qui va montrer aux autres ce que vous savez faire en la matière. Quatre semaines plus tard, vous avez enfin compris comment récupérer ce source sur votre disque dur bien à vous ; une vingtaine de jours de plus et vous avez enfin compris que vous devez compiler ce source pour en faire un exécutable ; deux mois de plus et vous pigez qu'il vous faut installer un véritable atelier de développement logiciel pour parvenir à compiler et, enfin, au bout de six mois vous avez une compilation exempte d'erreurs pour ... vous retrouver avec le viewer de Monsieur Toutlemonde. Ah, quelle chance vous allez enfin vous plonger dans le source pour y mettre votre grain de sel!
{Tous les droits pour ce scénario sont entièrement réservés. Pour toute adaptation cinématographique, télévisuelle ou autre support média, ce sera pour le plus offrant - très cher, quoi!}

Dans le but de vous épargner une si effroyable perte de temps, je vous ai élaboré un simple test d'aptitude à mettre le bout du nez dans le code source. Pas difficile, vous lisez calmement ce qui suit et je vous retrouve à l'autre bout :

mOffset is actually the data that's reserved for the header in the formatted image buffer at creation *before* the readFromCache() is invoked (see LLTextureFetchWorker::doWork() in lltexturefetch.cpp).
This quantity is fixed and never changed. What we've read so far is *at most* TEXTURE_CACHE_ENTRY_SIZE from the header cache.

The cache system writes all the cached files "headers" in a special file so to access the basic image info rapidly. Each entry to that file is *fixed* and stores TEXTURE_CACHE_ENTRY_SIZE of data, header 
*and all*. So, sometimes that entry actually stores real data (pixels so to speak...) that needs to be read before we read the body. This is what the mState == HEADER section will actually do. Sometimes, the 
header is actually bigger than TEXTURE_CACHE_ENTRY_SIZE and part of the header of the file will leak into the body section and will have to be accounted for there. This is the reason of the mind boggling code you encountered...

So, the idea in the line of code ... is that, if the header (mOffset) is smaller than TEXTURE_CACHE_ENTRY_SIZE, then there is some data we'll have to get from here and that'll be done in 
the mState == HEADER section of the doWork(). Otherwise, we go to the BODY section directly.

Note that, in truth, the (mState == HEADER) section actually doesn't read the header (this is done in getHeaderCacheEntry()) but rather deals with the left over of body data in that buffer... (Merov Linden)

Bon, me revoilou (pas trop mal à la header?) ; alors est-ce que vous êtes encore en mesure de répondre à la question suivante :
Par quel tour de passe-passe a-t'on fait disparaître la partie de cache-cache?

Vous pouvez? Chapeau, alors allez-y!

Vous n'en pouvez plus? Laissez tomber, y a pas de honte, moi non plus!

Question de rattrapage : Si vous croyez que CMake est une autre manière de reproduire le bruit d'un bisou (smack!) alors prenez une bombe de peinture et repeignez votre ordinateur (surtout l'écran).

Garmin Kawaguichi,
Révérend Père Siffleur

Mis à jour ( Jeudi, 26 Mars 2009 15:20 )
 

Commentaires 

 
#4 Garmin Kawaguichi 2009-03-27 11:04 moi aussi xptdr
J'ai honte, je ris quand je me relis!
Citer
 
 
#3 Gregleens Merlin 2009-03-27 08:50 mdr Citer
 
 
#2 Alain Terieur 2009-03-26 18:28 ???? Citer
 
 
#1 Victor Hugo 2009-03-26 15:42 Ah ah ah ah ah
C'est quoi ce délire?
Hiiiiiiiii!
Citer
 

Ajouter un Commentaire

Pour placer un commentaire Auto-publier sur le journal, merci de bien vouloir vous enregister en tant que membre - Sinon il faudra attendre que l'administrateur accepte la publication de votre commentaire. Utiliser le lien ci-dessous pour vous enregistrer.


* CRÉER UN COMPTE *




* Lire la charte du blogger et des commentaires *


L'admin :-)

Code de sécurité
Rafraîchir

Bannière
Copyright © 2012 Second Life Journal - CanardVirtuel.com - Actualité Second life - journal monde virtuel --- Second Life and the inSL logo are trademarks of Linden Research, Inc. -- CanardVirtuel is not affiliated with or sponsored by Linden Research. Tous droits réservés.
Joomla! est un logiciel libre sous licence GNU/GPL.
secondlife, sl, insl, second, life, world, virtual, monde virtuel
 

Statistique

Membres : 3248
Contenu : 365
Liens internet : 49
Affiche le nombre de clics des articles : 780702

Partenaires Officiels

Mini Spot

Visiter Furvata, son café, les chevaux etc.. Fringue et skin Your ad here Your ad here

Vos Réactions