This is using the CyberGFX API.
declarations:
Code:
#include <cybergraphics.h>
#include <inline/cybergraphics.h>
struct Library *CyberGfxBase;
UBYTE *chunkyBackBuffer // your chunky back pixel data!
Setup stuff:
Code:
CyberGfxBase = OpenLibrary ("cybergraphics.library", 0);
if (CyberGfxBase == NULL) {
error("Cannot open cybergraphics.library");
}
Update screen:
Code:
UBYTE *baseAddress;
APTR bitmapHandle;
bitmapHandle = LockBitMapTags(_hardwareScreen->ViewPort.RasInfo->BitMap,
LBMI_BASEADDRESS, (ULONG)&baseAddress,
TAG_DONE);
if (bitmapHandle) {
CopyMemQuick(chunkyBackBuffer, baseAddress, _videoMode.screenWidth * _videoMode.screenHeight);
UnLockBitMap(bitmapHandle);
}
clean up:
Code:
if (CyberGfxBase) {
CloseLibrary (CyberGfxBase);
CyberGfxBase = NULL;
}