Combining the two routines is very pointless because you can achieve the same effect with calling vsync() before drawing a memory buffer to the screen.
Now, to answer your question, to combine the two properly you need three bitmaps and one bitmap pointer:
back_buffer = Memory Bitmap
page_1 = Video Bitmap
page_2 = Video Bitmap
bmp_pointer = Pointer to page_1 and page_2 (depending on the frame)
Then, in order, here's what you want to do:
0.) Initialize bmp_pointer to point to page_2 and call show_video_bitmap() on page_1.
1.) Reset and render everything to back_buffer.
2.) blit() back_buffer to bmp_pointer.
3.) Call: show_video_bitmap(bmp_pointer);
4.) If bmp_pointer = page_1, switch it to page_2, else switch it to page_1.
If any of that is out of order, or if you've mixed up what kind of bitmaps everything is, it won't work.
Also, using this method, you should never have to call the acquire and release commands since you only ever make one blit to video memory every frame.
But I still highly recommend you just double buffer with a vsync() call right before blitting the buffer to the screen, because it's simpler and achieves the exact same effect.
--- Kris Asick (Gemini)