Operasi Porting Piksel

Saat porting kode yang melibatkan operasi piksel, ingatlah poin-poin berikut:

  • Operasi piksel logis tidak diterapkan ke buffer warna RGBA. Untuk informasi selengkapnya, lihat glLogicOp.
  • Secara umum, IRIS GL menggunakan format ABGR untuk piksel, sedangkan OpenGL menggunakan RGBA. Anda dapat mengubah format dengan glPixelStore.
  • Saat memindahkan fungsi lrectwrite , berhati-hatilah untuk mencatat di mana lrectwrite menulis (misalnya, itu bisa menulis ke buffer kedalaman).

OpenGL memberi Anda beberapa fleksibilitas tambahan dalam operasi piksel. Tabel berikut mencantumkan fungsi IRIS GL untuk operasi piksel dan fungsi OpenGL yang setara.

Fungsi IRIS GL Fungsi OpenGL Makna
lrectread, rectread,readRGB
glReadPixels Membaca blok piksel dari framebuffer.
lrectwrite, rectwrite glDrawPixels Menulis blok piksel ke framebuffer.
rectcopy glCopyPixels Menyalin piksel dalam framebuffer.
rectzoom glPixelZoom Menentukan faktor zoom piksel untuk glDrawPixels dan glCopyPixels.
cmov glRasterPos Menentukan posisi raster untuk operasi piksel.
sumber baca glReadBuffer Memilih sumber buffer warna untuk piksel.
pixmode glPixelStore,glPixelTransfer Mengatur mode penyimpanan piksel. Atur mode transfer piksel.
logicop glLogicOp Menentukan operasi logis untuk penulisan piksel.
glEnable ( GL_LOGIC_OP ) Mengaktifkan operasi logika piksel.

Untuk daftar lengkap kemungkinan operasi logis, lihat glLogicOp.

Sampel kode IRIS GL ini menunjukkan penulisan piksel yang khas:

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

Kode sebelumnya terlihat seperti ini saat diterjemahkan ke OpenGL:

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