2017-02-19 23:55:54 +00:00
|
|
|
#ifndef __VMDISPLAY_H
|
|
|
|
#define __VMDISPLAY_H
|
|
|
|
|
|
|
|
class MMU;
|
|
|
|
|
2017-02-26 16:00:41 +00:00
|
|
|
typedef struct {
|
|
|
|
uint8_t top;
|
|
|
|
uint16_t left;
|
|
|
|
uint8_t bottom;
|
|
|
|
uint16_t right;
|
|
|
|
} AiieRect;
|
|
|
|
|
2017-02-19 23:55:54 +00:00
|
|
|
class VMDisplay {
|
|
|
|
public:
|
|
|
|
VMDisplay(uint8_t *vb) { videoBuffer = vb; }
|
|
|
|
virtual ~VMDisplay() { videoBuffer = NULL; };
|
|
|
|
|
|
|
|
virtual void SetMMU(MMU *m) { mmu = m; }
|
|
|
|
|
|
|
|
virtual bool needsRedraw() = 0;
|
|
|
|
virtual void didRedraw() = 0;
|
2017-02-26 16:00:41 +00:00
|
|
|
virtual AiieRect getDirtyRect() = 0;
|
2017-02-19 23:55:54 +00:00
|
|
|
|
2017-08-30 17:28:48 +00:00
|
|
|
virtual void lockDisplay() = 0;
|
|
|
|
virtual void unlockDisplay() = 0;
|
|
|
|
|
2017-02-19 23:55:54 +00:00
|
|
|
MMU *mmu;
|
|
|
|
uint8_t *videoBuffer;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|