{{htmlmetatags>metatag-robots=()
metatag-title=(Riferimento alle funzioni della libreria MIDRES)
metatag-keywords=(Midres,Libreria,Grafica,Commodore 64,Commodore VIC20,Commodore 16,API)
metatag-description=(Questo è l'insieme delle funzioni messe a disposizione dalla libreria. Il loro utilizzo è vincolato al caricamento della libreria midres. Alcune sono disponibili per tutte le piattaforme, altre sono disponibili solo per quelle configurazioni che dispongono di sufficiente memoria contigua.)
metatag-media-og:image=(midres02.jpg)
metatag-og:title=(Riferimento alle funzioni della libreria MIDRES)
metatag-og:description=(Questo è l'insieme delle funzioni messe a disposizione dalla libreria. Il loro utilizzo è vincolato al caricamento della libreria midres. Alcune sono disponibili per tutte le piattaforme, altre sono disponibili solo per quelle configurazioni che dispongono di sufficiente memoria contigua.)
}}
====== RIFERIMENTO ALLE FUNZIONI ======
Questo è l'insieme delle funzioni messe a disposizione dalla libreria. Il loro utilizzo è vincolato al caricamento della [[:it:midres_library|libreria midres]]. Alcune di queste funzioni sono disponibili per tutte le piattaforme (alcune richiedono l'attivazione di [[:ovl6502|overlay]]). Altre, tuttavia, sono disponibili solo per quelle configurazioni che dispongono di sufficiente memoria contigua.
===== DI SUPPORTO =====
Queste funzioni si occupano di inizializzare e deinizializzare il sottosistema grafico per le varie piattaforme. La funzione ''mr_init'' deve essere sempre chiamata, prima di ogni chiamata. La chiamata a ''mr_cleanup'' è facoltativa, e necessaria solo se si desidera lasciare il sistema "pulito" dopo l'esecuzione.
* ''mr_init'' - inizializza il sottosistema grafico
* ''mr_cleanup'' - rilascia il sottosistema grafico
===== OVERLAY =====
Queste funzioni sono necessarie solo se si desidera garantire il supporto alla [[:it:ovl6502|programmazione overlay]]. Devono essere utilizzate prima di chiamare le funzioni della libreria.
* ''mr_use_screen'' - abilita le funzioni di gestione schermo e caricamento
* ''mr_use_screen2'' - abilita le funzioni di gestione schermo e salvataggio
* ''mr_use_drawing'' - abilita le funzioni di disegno (v1.0)
* ''mr_use_drawing2'' - abilita le funzioni di disegno (v1.1)
* ''mr_use_bitblit'' - abilita le funzioni "bit blit" (v1.2)
===== GESTIONE SCHERMO =====
Queste funzioni sono necessarie per manipolare intere schermate midres. Si occupano di caricare, salvare, comprimere e decomprimere le immagini dai file verso o da determinate schermate. Consentono inoltre di indicare quale schermata deve essere visualizzata e su quale si dovrà scrivere (se l'hardware dispone di più di una schermata).
* ''mr_clear'' - cancella la schermata midres
* ''mr_show'' - mostra la schermata midres
* ''mr_enable'' - imposta la schermata midres come output
* ''mr_load'' - carica una schermata midres (solo luminanza/mixel)
* ''mr_save'' - salva una schermata midres (solo luminanza/mixel)
* ''mr_load_color'' - carica una schermata midres (solo colore)
* ''mr_save_color'' - salva una schermata midres (solo colore)
* ''mr_compress'' - comprimi una schermata midres
* ''mr_uncompress'' - decomprimi una schermata midres
* ''mr_pack'' - compatta una schermata midres
* ''mr_unpack'' - scompatta una schermata midres
\adsense\
===== DISEGNO =====
Queste funzioni si occupano di disegnare e colorare i mixel sullo schermo. La versione 1.0 è adatta per sistemi con poca memoria e per l'integrazione con altri ambienti (vedi [[:it:img2midres|img2midres utility]]). Le due versioni sono compatibili, nel senso che agiscono sugli stessi schermi e possono, quindi, essere mescolate.
==== v1.0 ====
* ''mr_psetop'' - setta/cancella/inverti un mixel alle date coordinate
* ''mr_pcolorop'' - setta il colore alle date coordinate
* ''mr_ink'' - setta il colore implicito per quello schermo
* ''mr_pset'' - setta un mixel alle date coordinate
* ''mr_pclear'' - cancella un mixel alle date coordinate
* ''mr_pinvert'' - inverti un mixel alle date coordinate
* ''mr_pcolor'' - setta un mixel alle date coordinate con un colore
* ''mr_psetc'' - setta un mixel alle date coordinate con il colore dello schermo
==== v1.1 ====
* ''mr_clear_bitmap'' - cancella la bitmap al NERO
* ''mr_clear_to_color'' - riempie la bitmap con un dato colore
* ''mr_putpixel'' - imposta un mixel al dato colore
* ''mr_getpixel'' - recupera il colore di un mixel
* ''mr_vline'' - disegna una linea verticale di un dato colore
* ''mr_hline'' - disegna una linea orizzontale di un dato colore
* ''mr_line'' - disegna una linea di un dato colore
* ''mr_triangle'' - disegna un triangolo di un dato colore
* ''mr_polygon'' - disegna un poligono di un dato colore
* ''mr_rect'' - disegna un rettangolo di un dato colore
* ''mr_circle'' - disegna un cerchio di un dato colore
===== BIT BLIT =====
Queste funzioni si occupano delle operazioni di copia di aree rettangolari di schermo della medesima dimensione. Le aree possono essere due schermi oppure un'area di memoria verso uno schermo. La copia può avvenire anche con l'applicazione di una operazione logica (AND, OR oppure XOR) ovvero con l'effetto di trasparenza (i mixel spenti sono considerati trasparenti). Queste funzioni possono essere usate per implementare una forma rudimentale di "sprite" software.
* ''mr_copy'' - copia generica di due aree (mixels e colori)
* ''mr_blit_from_screen'' - copia (blit) un'area dallo schermo alla memoria
* ''mr_blit_to_screen'' - copia (blit) un'area dalla memoria allo schermo
===== DOUBLE BUFFERING =====
Queste funzioni implementano un meccanismo di double buffering: si tratta di un modo per evitare il flickering durante le animazioni, e consiste nel disegnare su una schermata mentra l'altra viene mostrata all'utente. Le schermate sono scambiate tra loro solo quando si deve procedere ad aggiornare il frame.
* ''mr_doublebuffer_init'' - abilita il suporto per il double buffering
* ''mr_doublebuffer_switch'' - scambia la schermata visibile con quella abilitata
===== GESTIONE TILE =====
Queste funzioni si occupano di definire, disegnare e modificare i "tile".
* ''mr_tileset_visible'' - imposta il tileset visibile
* ''mr_tileset_load'' - carica un tileset
* ''mr_tileset_copy'' - copia un tileset su un altro
* ''mr_tile_redefine'' - ridefinisce un singolo tile con dati grafici
* ''mr_tile_prepare_horizontal'' - ridefinisce un insieme di tile per permettere il movimento orizzontale
* ''mr_tile_moveto_horizontal'' - disegna un tile con precisione al pixel (eventualmente) muovendolo orizzontalmente
* ''mr_tile_prepare_vertical'' - ridefinisce un insieme di tile per permettere il movimento verticale
* ''mr_tile_moveto_vertical'' - disegna un tile con precisione al pixel (eventualmente) muovendolo verticalmente
* ''mr_puttile'' - disegna un tile sullo schermo
* ''mr_cleartile'' - cancella un tile dallo schermo
* ''mr_gettile'' - recupera un tile dallo schermo