Classe: XFldObject
XFolder 0.85 ha introdotto la possibilit… di visualizzare un'immagine bitmap definita dall'utente durante l'avvio della Scrivania. Con &xwp; 0.9.0, una nuova pagina "Avviamento" Š stata inserita nel blocco impostazioni della Scrivania per configurare facilmente questa funzione.

Il logo di avvio rimane visibile fino alla completa inizializzazione di WPS. A quel punto esso sparisce senza consumare ulteriormente risorse di sistema.

La pagina "Avviamento" nel blocco impostazioni della Scrivania permette di definire la bitmap di avvio e lo stile. Altre informazioni possono essere ottenute premendo il bottone "Aiuto" sulla stessa pagina.

Ho incluso tre logo di avvio con &xwp;:

Nell'usare delle bitmap personali si tengano a mente le seguenti note:
  1. Il logo di avvio deve essere una bitmap OS/2 1.3 non compressa. Le bitmap V2.0 non verranno caricate. Ho dovuto includere un mio codice per caricare bitmap, poich‚ all'avvio della Scrivania le classi multimediali WPS non sono ancora in azione. Ô possibile usare PMView oppure le stesse classi multimedia WPS per convertire file esistenti in formato 1.3.

  2. La trasparenza viene calcolata in accordo al pixel in basso a sinistra della bitmap. Dunque tutti i pixel dello stesso colore di quello in (0, 0) saranno resi trasparenti.

  3. Ô bene prestare molta attenzione nel sostituire queste bitmap. I calcoli di trasparenza sono molto impegnativi. Se si usa una bitmap 500x500 con met… dei pixel trasparenti, il sistema pu• restare bloccato per molti minuti. Intendo blocccato perch‚ la maggior parte del tempo di calcolo Š dovuta al Presentation Manager (PM), e questo usualmente blocca l'intero sistema.

    Se va tutto male e la WPS non riparte pi—, si riavvii tenendo premuto il tasto "Maiusc" durante l'avvio della WPS. Si aprir… la finestra di dialogo "Panico" da cui si potr… disabilitare il logo di avvio.

    Dato che PM Š stato progettato solo per finestre rettangolari, il modo in cui queste finestra "sagomate" vengono realizzate consiste nell'analisi pixel per pixel della finestra, e la creazione di varie finestre di PM corrispondenti alle aree non trasparenti, rettangolari, esistenti nella bitmap.

    Per questo motivo si presti molta attenzione alla trasparenza. Pi— numerose sono le aree non rettangolari trasparenti nella bitmap, pi— finestre sar… necessario creare.

    Esempio:

             ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
             ³                    ³
             ³   11111111111111   ³
             ³   11111111111111   ³
             ³   2222      3333   ³
             ³   44444444444444   ³
             ³   44444444444444   ³
             ³                    ³
             ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
    (dove " " Š un pixel trasparente) porter… alla creazione di quattro sottofinestre (segnate come "1"-"4").

    Se si hanno trasparenze diagonali o comunque non rettangolari, una o pi— sottofinestre dovranno essere create per ogni linea della bitmap, cosa che pu• davvero impegnare pesantemente PM.

    Altro esempio:

             ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
             ³                    ³
             ³   111111111        ³
             ³    2222  333       ³
             ³     44     55      ³
             ³      666 777777    ³
             ³       8888888888   ³
             ³        9999999999  ³
             ³                    ³
             ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
    Questo crea gi… nove finestra: una per la linea superiore, due ciascuna per le linee successive e una per ognuna delle linee di base. Si immagini un'immagine con 500 linee: si dovrebbero creare almeno 500 sottofinestre.

    Chiariamo: non Š la lettura della bitmap a richiedere molto tempo di CPU, ma la creazione delle sottofinestre. Grandi bitmap non daranno problemi se ci sono poche trasparenze, oppure solo trasparenze rettangolari.

    L'ho notato nel modo peggiore quando ho accidentalmente fatto un dithering di una bitmap alla tavolozza di colori del sistema. Immediatamente sono state create migliaia di aree trasparenti e non, alternate (dato che lo sfondo che intendevo era appunto in dithering).

    La bitmap aveva circa 100 linee, e io ho ottenuto molte migliaia di finestre. Dopo un paio di ho dovuto premere Ctrl-Alt-Del.

    Si presti dunque attenzione. Si provi con bitmap piccole, osservando quanto pu• reggere il sistema. Per bitmap grandi, si provi a rendere rettangolari le aree trasparenti. Non si usi il dithering, ma solo colori solidi.