Browse Source

bla

master
tth 5 months ago
parent
commit
fed3076b92
1 changed files with 17 additions and 10 deletions
  1. +17
    -10
      doc/the_floatimg_hack.tex

+ 17
- 10
doc/the_floatimg_hack.tex View File

@ -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.
% ----------------------------------


Loading…
Cancel
Save