                          -- JET the NEW engine --
                       
Generellt:
Mlplattform:
        PII 300 Mhz, 32 Mb minne, 2 Mb Grafik minne.
        eller motsv (t.ex ALPHA 533 Mhz, R10000, PPC 233Mhz)

OS: Kernal SKALL vara oberoende av OS. drefter fr man bygga separata libbar
    fr varje enskild plattform. Om kernal r oberoende kommer vldigt mycket
    bli oberoende.



                     TYPES  standard TYPER som r HRT specad.
                            F typer: BYTE,WORD,DWORD,QWORD?, float,double ?
                     SYSTEM LAYER (minne / io)
                            allokering
                            filhantering (file_load, file_save, etc).
                            Se SAGA's fil-hantering.

                     PIXMAP-hanterare (INGA polyfillers)
                            endast 32 bits TRUECOLOR

PIXmappen br inte p ngot stt vara knuten till grafik hanteraren.
OM hanterings rutinerna r simpla och dumma,
tar x,y,width,height,rgba *, som argument kan man enkelt skriva egna buffert
hanterings rutiner och layer hanteringen behver inte implementeras i dom
genrella grafiska lg-niv biblioteken.

Nackdelen r att vi fr ytterligare en niv av overhead. Vilket kommer
frsmra prestandarden ytterligare. Man kan ven tnka sig att implementera
mjligheten att registrera "pixmap" swap funktioner. Som lgger in sig ver som
generiska pekare eller annat och p s stt erbjuder flexibilitet utan ondig
overhead. Detta kan dock bli alltfr komplext att implementera och mjligen fr
svrt att anvnda.




PIXMAP:
        DWORD width, height;
        DWORD minx,maxx,miny,maxy;
        DWORD FLAGS;
        SDWORD zbuffer;
        void *reserved;  // kan vara bra att ha!!!
        RGBA image;

Exempel p flaggor:
        PIXMAP_USE_ZBUFFER
        PIXMAP_LAYER_DISSOLVE
        PIXMAP_LAYER_LIGHTMAP        (anvnder bara alpha kanalen i "image")
        ...
-----------------------
System (kernal niv).

System nivn tycker jag ska vara en utkning av STDIO,STDLIB biblioteket.
Den ska inte innehlla ngra direkta features men br innehlla
ladda/spara, lsa vra typer (file_read_dword) eller motsvarande fr att
garantera low/big endian kompabilitet.
Mjlighet att "ndra" vilket interface den skall lsa ifrn vore trevligt.
D skulle man kunna koda ett "ntverks" interface eller ett virtuellt file-
system interface eller nt annat mysigt...
(default och standard interface skall dock vara hrddisk)...


Br ven innehlla memcopy funktioner samt malloc och free.
Malloc och Free br kunna kras i debug lge, dr man lgger till 1024
"nollstllda" bytes, dessa checkas sedan nr man avallokerar minnet.
En varning ges om man rrt i detta minne, eftersom man d varit utanfr sin
tilldelade area.

funktioner (xstdlib):
        xmemcpy   - vanlig memcpy
        xmemcpy2  - 16 bitars memcpy
        xmemcpy4  - 32 bitars memcpy

        xmalloc   - allokering
        xfree     - frigra minne

ven mjligheten att hmta in "minnes" status br finnas...
xstatus (&status_struc);  eller nt...


Tillggs bibliotek som br skrivas:

POLYGON - polygon rita funktioner (tpoly, poly) eller motsv.
MATH - math system funktioner (math_open, math_init) motsv.
     - matrix library
     - vector library
     - quaternions library ?

PARSEING - text parsing library.
EVAL - trd evaluerings lib.
ANIM - animations lib, innehller flertalet funktioner fr att
       generera och animera flera kanler simultant med olika metoder.
       Bla, splines, bezier, linjrt, etc...
SPLINE - spline rknings lib (inkl. bezier, linjra animationer)..
RENDRING - 3d-scenen rendrering lib. med scener/object/etc...
         - Detta lib kommer krva flertalet andra som hanterar alla
           objekt som kan ing i en scene.
         - Man kan tnka sig att det finns t.ex: render_3dstudio och
           render_lightwave samt render_own_format libbar...

VFS - Virtual filesystem lib.
PACK - Packnings lib, LZW / HUFFMAN / ??  annat ???
GUI - ??  fr att det r kul...  =)


-------------------------------------------
Frgetecken ???????

Vilken niv skall hantera "hrdvaru" nivn, och vilka funktioner skall vi
garantera existens fr ????

jag har i min spec inte tagit med ngot som hanterar hrdvara och os-specifik
hantering i kernal. r detta dumt ??  Ska det ligga ett OS-lager i HW ???

dvs, ett hrdvaru lager fr hantering av input-devices
(mus/tangentbord/joystick ?) etc..   skall vi skriva en "input" device. ??
eller nt annat ???



