Conversione di operazioni pixel

Quando si effettua la conversione del codice che prevede operazioni pixel, tenere presente quanto segue:

  • Le operazioni dei pixel logici non vengono applicate ai buffer di colore RGBA. Per altre informazioni, vedere glLogicOp.
  • In generale, IRIS GL usa il formato ABGR per pixel, mentre OpenGL usa RGBA. È possibile modificare il formato con glPixelStore.
  • Quando si esegue la conversione delle funzioni lrectwrite , prestare attenzione a dove lrectwrite sta scrivendo (ad esempio, potrebbe scrivere nel buffer di profondità).

OpenGL offre una maggiore flessibilità nelle operazioni in pixel. Nella tabella seguente sono elencate le funzioni IRIS GL per le operazioni in pixel e le funzioni OpenGL equivalenti.

Funzione IRIS GL Funzione OpenGL Significato
lrectread, rectread,readRGB
glReadPixels Legge un blocco di pixel dal framebuffer.
lrectwrite, rectwrite glDrawPixels Scrive un blocco di pixel nel framebuffer.
rectcopy glCopyPixels Copia i pixel nel framebuffer.
rectzoom glPixelZoom Specifica i fattori di zoom pixel per glDrawPixels e glCopyPixels.
cmov glRasterPos Specifica la posizione raster per le operazioni pixel.
readsource glReadBuffer Seleziona un'origine del buffer dei colori per i pixel.
pixmode glPixelStore,glPixelTransfer Imposta le modalità di archiviazione pixel. Impostare le modalità di trasferimento dei pixel.
logicop glLogicOp Specifica un'operazione logica per le scritture in pixel.
glEnable ( GL_LOGIC_OP ) Attiva le operazioni per la logica dei pixel.

Per un elenco completo delle possibili operazioni logiche, vedere glLogicOp.

Questo esempio di codice IRIS GL mostra una scrittura in pixel tipica:

unsigned long *packedRaster; 
.. 
packedRaster[k] = 0x00000000; 
.. 
lrectwrite(0, 0, xSize, ySize, packedRaster);

Il codice precedente è simile al seguente quando viene convertito in OpenGL:

glRasterPos2i( 0, 0); 
glDrawPixels( xSize + 1, ySize + 1, GL_RGBA, GL_UNSIGNED_BYTE, packedRaster);