@Cymric
WritePixelArray() is a function provided by CyberGraphX (IIRC, it isn't provided by the OS) that takes a pointer to some chunky pixel data (in a typical ARGB32, RGB24 or 256-colour "CLUT") format and writes it to a RastPort.
The hardware pixel format of the underlying BitMap is understandably device specific, so WritePixelArray() does conversion of the data where needed. Unfortunately (as I discovered a long time ago) this function (as well as BlitBitMap between different pixel formats) are rather slow.
What kas1e is trying to do instead is to take his 32-bit source data and use it as a warp3d texture map instead.
The reason for this is that 3D hardware can generally take colour conversion in its stride, mapping a 32-bit source texture to a polygon on any supported 15/16 bit screen, dithering it, processing transparancy, shading it (in a variety of ways), scaling it, filtering all with total hardware acceleration that leaves the equivalent OS/CyberGraphX/P96 routines (where they even exist) eating dust.
Unfortunately, it seems the voodoo3000 only wants to use 16-bit texel data, so kas1e's 32-bit source data is being pre-converted by the driver.