Can't see anything bad, perhaps the problem lies elsewhere, what exactly goes wrong? Pointers are simply variables which hold memory addresses, from what you posted you can remove all you're pointer operations at all, and for stuff that wants a pointer to the beginning of texture data like gluBuild2DMipmaps simply do @FTextures[LayerNumber].Raw[0,0] (@ before a variable gets it's addres).