You can try allocating shared memory for the pixel buffer, then generate a SDL_Surface from it by calling SDL_CreateRGBSurfaceFrom. It isn't a HW surface, but you shouldn't use HW surfaces anyway when blending. Tim