int21h
AA-lib
ASCII:
The control code for all beginning programmers and those who would
become computer literate. Etymologically, the term has come down as
a contraction of the often-repeated phrase "ascii and you shall
receive."
-- Robb Russon
What the hell?
AA-lib byl napsn echem a skvlm programtorem Janem Hubikou. (Jeho dal projekty nap. XaoS, Xkoules)
Autor o tto knihovn pe jako o plnohodnotn nhrad grafickch API knihoven. No, o tom by se dalo polemizovat. Hlavn vznam m hlavn pro milovnky ASCII-artu.
Jako knihovna pro C je portovateln na prokticky vechny systmy a platformy na trhu.
Jinak napklad v Linuxu podporuje jak X, frambuffer i svga a to bez speciln kompilace.
Prvn projekt v tomto jazyce byl napsn prv Hubikou a bylo to originln demo s nzvem BB.
V tom se ukazuje sla tto knihovny. Obsahovalo plasmu, ohe, snh, 3D objekty, zooming Mandelbrota,(patrn nejrychlej na svt) a mnoho dalho.
V tomto lnku vs seznmm s ovldnm tto knihovny
Zpracovn
AA-lib je psn pro ist C, take nen objektov.
Poskytuje zkladn funkce jako putpixel, nastavovn palety atd.
M vlastn handlery na my a klvesnici.
Na vechno se d aplikovat i autoinicializace, kter si sama najde ovldn va obrazovky a vstupnch zazen.
Pracuje na principu flushingu. To znamen, e m virtualn obrazovku, kterou stdav zobrazuje.
Jinak vechny funkce pro prci s pixely se zapisuj do bufferu, kter se ulo a po renderingu.
Take zkladn kostra je
o Inicializovat obrazovku
o Nastavit paletu
o Grafika
o Rendrovn
o Textov vstupy do obrazovky
o Prohozen obrazovek (flush)
Grafika
Tohle je to nejzajmavj:
Kad znak obsahuje 2 pixely a reaguje na strukturu pixel v nm a jeho sousedech.
** - vykresl znak '-'
*.
.* - Vykresl znak \
Atd.
Myslm, e se d s touhle knihovnou pracovat na dost vysok rovni.
Jedin problm, na kter jsem narazil je, e pokud se zapisuje za obrazovku, tak to spadne na Segmentation fault.
Program se sm ukon pes SIG11. Ale mon to jde oetit (j s c terpve zanm)
Pokud do kdu pidte tyto dky:
if (!aa_parseoptions(NULL,NULL,&argc,argv)||argc!=1) {
printf ("%s", aa_help);
exit (1);
}
scr=aa_autoinit(&aa_defparams);
bude program umt zpracovvat velkou nabdku ppna, jako teba konfigurace zobrazen, vbr metody ditheringu, upesnn hardwaru a podobn.
Cle a spchy
Port all important software (like Doom, Second Reality, X windows etc..) on AA-lib.
To byl zmr. A co se podailo?
O Second Reality v AA bohuel nic nevm, ale znm se napklad stal Dumb, co je port legendrnho Dooma, dokonce i XWindow existuje, stejn tak Quake. AA pluginy maj i pehrvae vide Mplayer nebo Xine
Pro samotn AA-projekt byl vyvinut i prohle obrzk PPM Aview nebo FLI pehrva Flip.
Po nainstalovn knihovny si mete prohldnout i demonstran programy aatest, aainfo nebo aafire
Pipravil jsem i pr pklad, tak se na n podvejte a uvidte jestli vs to chytne jako m, nebo to penechte jinm blznm.
Je tam nkolik problm, se ktermi si nevm rady. Hlavn pi ukonovn a zmn velikosti okna mi to pod pad. Kdybyste nkdo vdl, co s tm je, polete mi to prosm na mail. Dky.
]plasma.c[ -
]screenshoot[
]snih.c[
Kompilace
Pes standardn gcc asi takhle:
gcc source.c -Wall -laa -o output
A samozejm v kdu #include
And remember...
dT8 8Tb
dT 8 8 Tb
dT 8 8 Tb
<PROJECT><PROJECT>
dT 8 8 Tb
dT 8 8 Tb
means Ascii-art!