The portion of the bitmap showing within a SuperBitMap window is controlled by the application. Initially, the window shows the bitmap starting from its origin (0,0) and clipped to fit within the window layer. The visible portion of the bitmap can be scrolled around within the window using the layers library ScrollLayer() function: void ScrollLayer(LONG unused, struct Layer *layer, LONG dx, LONG dy) Pass this function a pointer to the window's layer in layer and the scroll offsets in dx and dy. (A pointer to the window's layer can be obtained from Window.RPort->Layer.) When rendering operations are performed in a SuperBitMap window, any rendering that falls outside window boundaries is done in the application's bitmap. Rendering that falls within window bounds is done in the screen's bitmap. Before performing an operation such as a save on the application bitmap, the graphics library function SyncSBitMap() should be called: void SyncSBitMap(struct Layer *layer) Pass this function a pointer to the window's layer. SyncSBitMap() copies the window contents to the corresponding part of the application bitmap, bringing it up to date. (If no rendering operations have been performed this call is not necessary.) Similarly, after making any changes to the application bitmap such as loading a new one, the window's layer should be locked and the CopySBitMap() function should be called. void CopySBitMap(struct Layer *) This function copies the new information in the appropriate area of the underlying bitmap to the window's layer. For more information about bitmaps and layers, see the "Graphics Primitives" and "Layers Library" chapters of this manual. Also see the <graphics/clip.h>, <graphics/gfx.h>, <graphics/layers.h>, graphics library and layers library sections of the Amiga ROM Kernel Reference Manual: Includes and Autodocs.