clros ha scritto:Amiga nella gestione della grafica è stato soppiantato dai PC perchè questi permettevano di gestire le skede 24bit che vedevamo cm un miraggio e che...guarda caso AmigaOS non permetteva di gestire (causa dipendenze dirette tra chipset e graphics.library. Vero, era superveloce però...solo dal 4.0 queste dipendenze sono state eliminate mentre la concorrenza aveva già capito che era meglio mettere dei "driver" in mezzo...)
Qui ci sarebbe pure da discutere in modo approfondito sulla cosa. Non basta essere indipendenti dai chip custom se poi non si offrono nuove API. Vediamo di chiarire la cosa.
Fin quando l'era dei chip custom era dominante e non esistevano schede grafiche di alta qualità (il costo qui è proprio un discorso a parte, e importa relativamente), allora Amiga possiamo classificarla come una novità assoluta, ma questo successe giusto con l'Amiga 1000, e forse all'inizio del periodo di Amiga2000.
Dunque c'erano le qualità dei chip custom, ma AmigaOS1.0 non offriva API adeguate, e infatti tutti i software del periodo bypassavano il sistema (anche per una questione di filosofie, infatti già si era refrettari a usare le API di un OS, se poi quella versione dell'OS era buggatissima è ovvio che i programmatori non ci pensavano due volte a scendere a basso livello). AmigaOS presentava in quel periodo molte cose particolari, ma il resto finiva qui.
E' interessante notare come Grapichs contenga alcune funzioni, sicuramente introdotte da Miner e alcuni (cioè la parte di AmigaInc che vedeva la piattaforma come una console) che sarebbero state utili per sviluppare giochi per i chioschi nelle sale dei videogiochi dell'epoca. C'era stata una bella discussione tra itix e uno sviluppatore OS4 riguardo questa cosa su utilitybase, ma non riesco a trovarla (perchè era OT :D). La cosa "simpatica" è che attualmente ci sono funzioni di Graphics che non funzionano sui nuovi sistemi proprio perchè sono dipendenti dal vecchio hw Amiga, quindi dire che adesso è tutto indipendente non è completamente vero.
Cmq.
Le piattaforme concorrenti non rimasero in stasi in questo contesto, e visto che non erano legate a chip custom particolari, ma si appoggiavano a case esterne per schede grafiche (Microsoft prima, Apple invece in un primo momento lavorava in loco se non sbaglio), non fecero molta fatica ad uscire dal proprio cappello dei sottosistemi RTG (le relative case madri li svilupparono).
E' importante notare come in quel periodo l'interesse per Amiga era forte, ma già si notava come l'estrema dipendenza dai chip custom sarebbe stata un'arma a doppio taglio per questa piattaforma. Steve Jobs ad esempio fu uno dei tanti che rimase colpito da Amiga, ma affermò anche che "c'era troppo hw", nel senso che tutte quelle "innovazioni" facevano capo pesantemente all'hw, e non erano ottenute via sw.
Negli anni a venire Amiga dormiva sugli allori, la Commodore licenziava come nulla i dipendenti di ricerca e sviluppo, e i nuovi addetti dovevano studiare da zero la piattaforma e costruirci sopra nuove cose, aggiornando quelle vecchie. In una simile situazione è facile capire come venne sfruttata la modularità di AmigaOS introducendo cose come GadTools e ASL piuttosto facilmente, mentre le parti più complicate come il kernel, AmigaDOS e le librerie Layers e Graphics rimasero più o meno allo stesso modo. AmigaDOS per esempio venne in parte riscritto in assembly 68k, aggiunse nuove funzioni, ma concettualmente rimase uguale alla vecchia versione. Diciamo che nelle parti vitali del sistema le novità apportate con la 2.0 erano praticamente le funzioni varargs con supporto delle taglist, che però facevano le stesse cose delle funzioni 1.0 (e qui anche la cosa è banale, cioè se io non ho idea di dove mettere mani perchè non ho scritto io il sistema, la cosa che posso fare è scrivere nuove funzioni che chiamino all'occorrenza quelle vecchie, ma che in qualche modo mi permettano di offrire qualche novità).
Intanto i pochi produttori esterni di hw Amiga cominciarono a produrre le prime schede gfx per la piattaforma, patchando appunto le librerie Graphics e Layers. Le patch ovviamente erano incompatibili tra di loro ed era un casino. In questo contesto si affermarono ovviamente i sistemi che permettevano il supporto per le schede più performanti: le varie Cyberstorm di Phase5 prima, le varie Picasso di VillageTronic dopo. Per supportare queste due famiglie di schede, ciascuna casa patchava pesantemente Graphics e Layers, demandando alle proprie patch il compito di gestire il nuovo HW, e ovviamente per fare prima pensarono di creare ciascuna un proprio sottosistema che permettesse di aggiungere il supporto di nuove schede in modo relativamente semplice. Dunque prima Phase5 introdusse CyberGraphics, in un secondo momento VillageTronic introdusse Picasso96.
Questi sottosistemi "RTG", prodotti di terze parti prima dell'avvento di MorphOS e AmigaOS4, patchano più o meno pesantemente le librerie originali Amiga.
Quando vennero fuori prima MorphOS e poi AmigaOS4, in blocco si portarono questi sistemi di patch. Dunque anche oggi il tutto funziona nello stesso modo. Graphics di OS4 è un mero porting dell'originale Graphics di OS3.x, reso ovviamente in C e scritto in modo che possa girare anche senza chip custom, ma pur sempre lo stesso identico sistema con le stesse identiche API che c'erano su AmigaOS1.0+miglioramenti del 2.0. Stessa cosa su MorphOS. Layers dei rispettivi OS presenta giusto qualche funzione nuova (principalmente per avere i bordi arrotondati delle finestre, e per nascondere le finestre senza patchare nulla da fuori), ma sono davvero modifiche piuttosto timide.
Se pensiamo che sistemi come OS4 e MOS non abbiano attualmente dei sottosistemi seri RTG, RTA e subsystem printing, è facile giungere alla conclusione del perchè Amiga non venisse poi tanto presa in considerazione già nei suoi tempi migliori.
Adesso alle soglie del 2010, mi pare sia stato annunciato che AmigaOS4.x avrà un nuovo sottosistema grafico. Meglio tardi che mai.