You could use the helper functions that Blitz provides to convert a pixmap to a texture, returning a texture handle, or do your own direct GL calls. No idea about DX.
Look at the sourcecode for those helper functions for an idea how to do it.
You cannot use collision detection with pixmaps, I'm fairly sure it's image based. Nevertheless I would code your own collision detection which uses the pixmap, so you can read from it very quickly (compared to transferring data from the backbuffer).
Also for your update sequence, where you're uploading newly required images, considering spreading out/staggering the number of image pieces that need to be uploaded per frame, based on how many pixels the world has scrolled, so that you aren't uploading lots at a time - ie just one or two uploads per frame.
Look at the sourcecode for those helper functions for an idea how to do it.
You cannot use collision detection with pixmaps, I'm fairly sure it's image based. Nevertheless I would code your own collision detection which uses the pixmap, so you can read from it very quickly (compared to transferring data from the backbuffer).
Also for your update sequence, where you're uploading newly required images, considering spreading out/staggering the number of image pieces that need to be uploaded per frame, based on how many pixels the world has scrolled, so that you aren't uploading lots at a time - ie just one or two uploads per frame.