{{htmlmetatags>metatag-robots=() metatag-title=(I vantaggi dell'isomorfismo (e di usare la libreria MIDRES)) metatag-keywords=(Optimization,MIDRES,design,isomorphis) metatag-description=(Come evitare di introdurre un layer di astrazione su macchine a 8 bit e come evitare di scrivere tanti programmi quante sono le piattaforme.) metatag-media-og:image=(::midres-logo-fb.png) metatag-og:title=(I vantaggi dell'isomorfismo (e di usare la libreria MIDRES)) metatag-og:description=(Come evitare di introdurre un layer di astrazione su macchine a 8 bit e come evitare di scrivere tanti programmi quante sono le piattaforme.) }} ====== I VANTAGGI DELL'ISOMORFISMO ====== Per esempio, molti dev-kit forniscono funzionalità molto avanzate "nascondendo" i dettagli, come ad esempio il funzionamento dei tile. Nella realtà, però, **tutti i computer (che la [[:midres_library|libreria MIDRES]] supporta) dispongono dei tile**: solo che sono implementati in modo (a volte profondamente) diverso da caso a caso. {{ :midres2.png?nolink&600 |}} Detto in altri termini, poiché i programmi che adottano altri dev-kit girano anche dove il concetto di "tile" non c'è, questo implica che **il programmatore non può scrivere direttamente logiche che trattino i tile per quello che sono**, quindi con un codice C "vicino" alla macchina. Questo non implica che, di per sé, il risultato sarà inefficiente. Almeno, non è detto che lo sia in senso assoluto. Sicuramente **non potrà essere efficiente su tutti i target come lo è quello che si ottiene adottando la [[:midres_library|libreria MIDRES]]**. {{ :img2tile-snapshot.png?nolink&600 |}} Questo perché il programmatore che adotta la [[:midres_library|libreria MIDRES]] può godere di alcuni vantaggi sull'hardware, legati esclusivamente al fatto che è isomorfa. Nella [[:midres_library|libreria MIDRES]] le tile sono una risorsa sotto il controllo completo del programmatore e non della libreria: la libreria non ha bisogno di mapparle nello stesso modo, e il gioco può quindi disporre di tutte le tile possibili per quell'hardware (256, 128, 64, a seconda), anche in copie molteplici. E' così perché, se ci provasse, sarebbe una astrazione e si ricade sempre al ricondurre l'implementazione specifica a un computer astratto, in questo caso dotato sempre della stessa mappatura tiles, e non sarebbe isomorfa. {{ :demo_tiles.png?nolink&600 |}} La libreria offre inoltre delle funzioni per definire e manipolare le tile e garantisce che, al momento in cui saranno compilate, diventeranno "automagicamente" delle letture / scritture dirette in video ram e negli spazi opportuni di sistema. Questo in virtù del fatto che è isomorfa ed è per questo anche il client entra in gioco con una libreria isomorfa e che, una volta che si sarà realizzato un software sufficientemente valido ed efficiente, lo sarà dovunque lo si ricompilerà. Vai alla pagina [[:it:midres_library:isomorphism:other|ALTRE CARATTERISTICHE DELLA LIBRERIA MIDRES]] [[:it:midres_library:isomorphism|{{ :midres-logo.png?nolink&600 |}}]]