OK, I've done as suggested.
However although it is smoother, it is just as slow as it was before. Even though the Amiga shouldn't be having to redraw the display every time I change a pixel (since I'm now using an offscreen bitmap).
The draws are taking about 5 seconds per frame in 16-colour OCS 320x256 mode (in cycle-exact mode). I'm not using scrolling or anything. It needs to be fast in cycle-exact mode so it is fast on real Amigas, and so UAE users don't have to fool around with their settings just to run my emulator.
Obviously it must be possible to do fast smooth graphics under OCS, as all the vintage Amiga games (eg. Hybris, Shadow of the Beast, etc.) do it, but I'm mystified as to how they can run perfectly under UAE at A500 speed but my emulator is crawling at fastest possible speed!?
Code sample from the emulator can be posted on request.