diff --git a/doc/the_floatimg_hack.tex b/doc/the_floatimg_hack.tex index fdfa207..a85f8a0 100644 --- a/doc/the_floatimg_hack.tex +++ b/doc/the_floatimg_hack.tex @@ -69,7 +69,7 @@ chaque pixel en virgule flottante sur 32bits, le type % XXX XXX XXX\vspace{1em} \textbf{Attention !} tout le code que nous allons voir ensemble est en -perpétuelle évolution\footnote{voir page \pageref{TODO}}, +perpétuelle évolution\footnote{voir page \pageref{TODO} pour les détails}, et sa fiablité (surtout sur certains aspects mathématiques) reste à démontrer\index{valgrind}. Mais le service après-vente est assez réactif. Du moins @@ -77,7 +77,7 @@ pour ceux qui suivent le canal \texttt{\#tetalab} sur le réseau IRC de Freenode. \textbf{Attention !} ce document commence par une bonne rafale -de technique parfois \textsl{hardue}. +de technique parfois \textsl{hardue}, avec des pointeurs dedans. Vous avez parfaitement le droit de sauter directement à la page \pageref{outils} pour quelque chose de plus concret. @@ -122,7 +122,7 @@ dans les machin-trocs, et un grain d'image vraiment présent. Ah vous en voulez de la technique ? Oké, on y va. En fait, on va tripoter pleins de nombres, plus ou moins rangés dans -des pixels, pour concrétiser l'existence perceptuelles de ces +des champs de pixels, pour concrétiser l'existence perceptuelles de ces grains de lumière chromatisés. \subsubsection*{quelques belles images / schémas polychromes en intro pour @@ -191,7 +191,8 @@ et sur disque. Ça a été imaginé de façon presque empirique, mais nous sommes tous là pour améliorer les choses, dans la mesure de nos moyens. Nous allons donc directement rentrer au cœur du problème, -en écrivant quelques lignes de code. +en écrivant quelques lignes de code montrant le fonctionnement +général de la chose. \subsection{L'idée} @@ -207,16 +208,19 @@ pour gérer la machinerie interne. \begin{lstlisting} int width = 640, height = 480; -char *fname = "exemple.fimg"; +char *fname = "quux.fimg"; FloatImg fimg; \end{lstlisting} Ensuite, nous enchainerons trois étapes : la création de l'image -en mémoire centrale, l'initialisation des valeurs de chaque pixel à 0.0, +en mémoire centrale, l'initialisation des valeurs de chaque pixel à 0.0 +(une valeur que certains associent au noir complet, et d'autres à une +impossibilité quantique), et pour conclure, l'enregistrement dans un fichier\footnote{Au format ésotérique, mais très véloce.} binaire. \begin{lstlisting} +memset(fimg, 0, sizeof(FloatImg)); foo = fimg_create(&fimg, width, height, FIMG_TYPE_RGB); if (foo) { fprintf(stderr, "create floatimg -> %d\n", foo); @@ -291,7 +295,10 @@ comme \textsc{gnu}/make\index{make}. Une connaissance de base de l'utilisation du shell\index{shell} et de l'écriture de Makefile's sera un plus. -Il faut aussi savoir où trouver le code. +Il faut aussi savoir où trouver le code. Il est dans le Git du +Tetalab. Mais comme je ne comprend rien à Git, c'est pas la peine +de m'envoyer des trucs genre \textsl{pull-request} auquels je ne +comprend rien. \subsection{Compilation} @@ -489,7 +496,7 @@ foo = fimg_create_from_dump("lena.fimg", &head); Si la valeur retournée est différente de 0, c'est que quelque chose s'est probablement mal passé. -Certains messages sont parfois explicites. +Certains messages sont parfois explicites. Mais parfois non. % _________ @@ -642,7 +649,7 @@ Tout d'abord pour normaliser l'endianess et le packing\dots \begin{lstlisting} typedef struct { char magic[8]; - int w, h, t; + int32_t w, h, t; } FimgFileHead; \end{lstlisting} @@ -656,7 +663,7 @@ les quatre premier octets doivent contenir les quatre caractères Le champ \texttt{t} (le type de l'image) doit avoir les trois octets de poids fort à 0. Vous trouverez les constantes de type dans le fichier \texttt{floatimg.h}, et quelques informations -(non-)essentielles. +(non-)essentielles qui ne vous servirons probablement à rien. % ----------------------------------