{{htmlmetatags>metatag-robots=()
metatag-title=(libreria MIDRES)
metatag-keywords=(C,library,Midres,Bitmaps,Commodore 64,Commodore VIC20,Commodore 16)
metatag-description=(La MIDRES library permette di realizzare rapidamente giochi per molte piattaforme a 8 bit.)
metatag-media-og:image=(::midres-logo-fb.png)
metatag-og:title=(Usare la libreria midres portabile)
metatag-og:description=(La MIDRES library permette di realizzare rapidamente giochi per molte piattaforme a 8 bit.)
}}
====== LA LIBRERIA MIDRES ======
{{ :midres-logo.png?nolink&600 |}}
La libreria MIDRES permette di creare programmi **WORA** (//Write Once Run Anywhere//) che sono [[it:midres_library:isomorphism|efficienti "by design"]] su [[https://github.com/spotlessmind1975/midres/blob/master/docs/targets.md|varie piattaforme a 8 bit]], senza la necessità di "ottimizzarli" e senza compromessi con altri kit di sviluppo.
**L'approccio isomorfico è diverso dall'astrazione.**
Si basa sulla mappatura dell'hardware sottostante senza ricorrere a librerie di terze parti e facendo corrispondere strutture complesse ed eterogenee, seppur omologhe, tra loro. Il codice scritto con questo approccio, quando funziona bene cioè quando è soddisfacente in termini di velocità di esecuzione o utilizzo delle risorse, **è già ottimizzato su qualsiasi altra piattaforma**.
===== COME USARE LA LIBRERIA =====
Per aggiungere il supporto della libreria midres, è sufficiente includere il file "midres.h" nei sorgenti. Questo file contiene tutte le definizioni e i tipi di dati richiesti per la [[:it:midres|manipolazione degli schermi]], [[:it:tiling|creare animazioni]] e così via.
#include "midres.h"
[[it:midres_library:functions|Questa pagina]] contiene un riferimento alle funzioni disponibili (è un "work in progress").
Per alcune attività è possibile sfruttare alcuni strumenti "già pronti":
* ''[[:it:img2midres|img2midres]]'' - per convertire immagini in schermate midres;
* ''[[:it:img2tile|img2tile]]'' - per convertire immagini in tile.
===== COME COMPILARE LA LIBRERIA =====
Il [[https://github.com/spotlessmind1975/midres|repository ufficiale]] contiene un [[https://github.com/spotlessmind1975/midres/blob/master/makefile|generico makefile]] costruito tramite una procedura automatica scritta in PHP (''automake.php''). E' possibile ricostruire il makefile in qualsiasi momento digitando il comando:
php automake.php
Il ''makefile'' è stato predisposto per poter compilare una specifica ''demo'', ''tutorial'' o programma (''program'') per una specifica piattaforma (''target''). L'elenco dei programmi compilabili è disponibile [[https://github.com/spotlessmind1975/midres/blob/master/docs/programs.md|su questa pagina]].
Per compilare la ''demo'' "TILE" per il Commodore 64 il comando è
make demo=TILE target=c64 all
Per compilare il ''tutorial'' "CTILE" per Atari il comando è
make demo=CTILE target=atari all
Per compilare il programma (''program'') "Air Attack!" per il Commodore 128 il comando è:
make program=airattack target=c128 clean all
===== GIOCHI =====
[[elevator|{{ :elevator_800x300.jpg?600 |Giopcp The Elevator }}]]
[[alienstorm|{{ :alienstorm_copertina_800x300.png?600 |Gioco Alien Storm}}]]
[[totto|{{ :totto_title2.jpg?600 |Totto! game}}]]
[[air_attack|{{ :air_attack_title_horizontal_winner2b.png?600 |Gioco Air Attack!}}]]
===== PROGRAMMI DIMOSTRATIVI =====
[[:it:midres_library:demos|Questa pagina]] contiene l'elenco dei programmi dimostrativi, che possono essere compilati direttamente dal sorgente della libreria.