I'm trying to write a series of libraries for encapsulating all of the most common uses of hardware banging on OS 3.1+. Later on I plan on writing a version of the libraries for Mesa/OpenGL and graphics cards.
My first attempt at writing a library that integrates with the Copper functionality is based on tile-scrolling algorithms.
What I need to know is: How do I write the bitplane-wraparound Copper-list functions in such a way that they will work with RethinkDisplay() in Graphics.library? I've heard that it internally uses MrgCop() to patch together all of the partial Copper lists.
My plan is as follows: I want to make a layer with 2 rectangles both pointing to the same screen memory but be located with the bottom rectangle at the bottom row of pixels in the top rectangle. This will allow me to use a Copper wraparound technique by having the last row of pixels and the first row of pixels in screen memory to be identical. When having the screen display the seam in the middle, the Copper will change the bitplane pointers all to the top of video memory.
Is what I'm trying to do even possible? The algorithm I've seen on the Aminet does it but writes custom copper lists for the whole screen instead of just using the Graphics.library functions.