Condividi tramite


Supporto della grafica pseudo-vettoriale

Importante

La piattaforma di stampa moderna è il mezzo preferito di Windows per comunicare con le stampanti. Ti consigliamo di usare il driver di classe IPP di Microsoft, insieme a Print Support Apps (PSA), per personalizzare l'esperienza di stampa in Windows 10 e 11 per lo sviluppo di dispositivi per stampanti.

Per altre informazioni, vedere Print Support App v1 and v2 design guide.

I dispositivi che non supportano la grafica a vettori reali possono sfruttare il supporto fornito da Unidrv per la grafica pseudovector. Quando si usa questa funzionalità, Unidrv scarica rettangoli neri solidi e linee orizzontali e verticali direttamente in un dispositivo grafico non ettore, riducendo il sovraccarico di rendering di queste figure su una superficie raster. Ciò riduce anche le dimensioni dei dati di output, che possono migliorare la velocità effettiva della stampante per i dispositivi che non gestiscono i dati raster in modo efficiente.

Per trarre vantaggio da questa funzionalità, un minidriver per un dispositivo grafico non di filtro deve supportare solo il comando CmdRectBlackFill. Questa funzionalità è disabilitata quando la funzionalità Ottimizzazione stampa nella scheda Avanzate delle pagine delle proprietà della stampante è disattivata.

La funzionalità grafica pseudovector intercetta le chiamate a DrvBitBlt, DrvStrokePath e DrvLineTo per determinare se deve essere disegnata una linea verticale o verticale o orizzontale. Quando Unidrv riconosce la figura da disegnare come rettangolo valido (uno nero pieno, non ha alcun ritaglio complesso e non usa un ROP usando i bit di destinazione correnti), viene archiviato in una matrice di rettangoli anziché essere disegnata sulla superficie.

L'aspetto più difficile della caratteristica grafica pseudovector è evitare problemi di ordine z causati da oggetti che devono essere disegnati sopra oggetti disegnati in precedenza. Gli oggetti in alto potrebbero dover cancellare o sovrascrivere parte di un rettangolo nero. Se il rettangolo nero è già stato scaricato nel dispositivo, un oggetto disegnato in un secondo momento sulla superficie di sistema potrebbe non essere disegnato correttamente.

La soluzione a questo problema consiste nell'archiviare temporaneamente un rettangolo valido, anziché disegnarlo immediatamente sulla superficie. Quando un nuovo oggetto deve essere disegnato sulla superficie, Unidrv verifica se l'oggetto si sovrappone a qualsiasi rettangolo nero. In tal caso, la parte sovrapposta del rettangolo nero viene disegnata prima sulla superficie, prima che venga disegnato il nuovo oggetto, mantenendo così l'ordine z corretto. Il disegno del rettangolo tiene conto anche della possibilità che il nuovo oggetto da disegnare possa avere un ROP associato, incluso quello che interagisce con la destinazione.

Inoltre, è possibile che il nuovo oggetto da disegnare contenga ritagli complessi in modo che la figura risultante non sia più un rettangolo. Al termine del rendering della banda o della pagina, tutti i rettangoli neri rimanenti possono essere scaricati direttamente nel dispositivo senza causare problemi di ordine z. Unidrv mantiene un elenco di un massimo di 256 rettangoli per banda, concatenando rettangoli BitBlt laddove possibile.

Problemi di grafica pseudovector

La funzionalità grafica pseudovector può modificare l'ordinamento z in determinate situazioni, in particolare quando il testo viene scaricato direttamente nel dispositivo e gli oggetti successivi con ritagli complessi devono interagire con tale testo.