2020-11-11 21:15:27 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "Video.h"
|
|
|
|
|
2020-09-01 20:32:44 +00:00
|
|
|
// Handling of RGB videocards
|
|
|
|
|
|
|
|
enum RGB_Videocard_e
|
|
|
|
{
|
|
|
|
Video7_SL7,
|
2020-11-01 16:39:53 +00:00
|
|
|
Apple = Video7_SL7, // Apple's Extended 80-Column Text/AppleColor Adaptor Card is an alias for Video7's RGB-SL7
|
2020-09-01 20:32:44 +00:00
|
|
|
LeChatMauve_EVE,
|
|
|
|
LeChatMauve_Feline
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2019-01-09 21:29:36 +00:00
|
|
|
void UpdateHiResCell(int x, int y, uint16_t addr, bgra_t *pVideoAddress);
|
2020-09-27 13:09:02 +00:00
|
|
|
void UpdateDHiResCell(int x, int y, uint16_t addr, bgra_t* pVideoAddress, bool updateAux, bool updateMain);
|
|
|
|
void UpdateDHiResCellRGB(int x, int y, uint16_t addr, bgra_t* pVideoAddress, bool isMixMode, bool isBit7Inversed);
|
2019-02-03 16:39:27 +00:00
|
|
|
int UpdateDHiRes160Cell (int x, int y, uint16_t addr, bgra_t *pVideoAddress);
|
2019-01-09 21:29:36 +00:00
|
|
|
void UpdateLoResCell(int x, int y, uint16_t addr, bgra_t *pVideoAddress);
|
|
|
|
void UpdateDLoResCell(int x, int y, uint16_t addr, bgra_t *pVideoAddress);
|
2020-09-27 13:09:02 +00:00
|
|
|
void UpdateText40ColorCell(int x, int y, uint16_t addr, bgra_t* pVideoAddress, uint8_t bits, uint8_t character);
|
|
|
|
void UpdateText80ColorCell(int x, int y, uint16_t addr, bgra_t* pVideoAddress, uint8_t bits, uint8_t character);
|
2020-09-01 20:32:44 +00:00
|
|
|
void UpdateHiResDuochromeCell(int x, int y, uint16_t addr, bgra_t* pVideoAddress);
|
|
|
|
void UpdateDuochromeCell(int h, int w, bgra_t* pVideoAddress, uint8_t bits, uint8_t foreground, uint8_t background);
|
2020-09-27 13:09:02 +00:00
|
|
|
void UpdateHiResRGBCell(int x, int y, uint16_t addr, bgra_t* pVideoAddress);
|
2019-01-09 21:29:36 +00:00
|
|
|
|
|
|
|
const UINT kNumBaseColors = 16;
|
|
|
|
typedef bgra_t (*baseColors_t)[kNumBaseColors];
|
|
|
|
void VideoInitializeOriginal(baseColors_t pBaseNtscColors);
|
2020-09-27 13:09:02 +00:00
|
|
|
void VideoSwitchVideocardPalette(RGB_Videocard_e videocard, VideoType_e type);
|
2019-02-02 15:51:27 +00:00
|
|
|
|
|
|
|
void RGB_SetVideoMode(WORD address);
|
|
|
|
bool RGB_Is140Mode(void);
|
2019-02-03 16:39:27 +00:00
|
|
|
bool RGB_Is160Mode(void);
|
2019-02-02 15:51:27 +00:00
|
|
|
bool RGB_IsMixMode(void);
|
|
|
|
bool RGB_Is560Mode(void);
|
2019-04-06 16:31:26 +00:00
|
|
|
bool RGB_IsMixModeInvertBit7(void);
|
2019-02-02 15:51:27 +00:00
|
|
|
void RGB_ResetState(void);
|
2019-04-06 16:31:26 +00:00
|
|
|
void RGB_SetInvertBit7(bool state);
|
2019-02-02 15:51:27 +00:00
|
|
|
|
|
|
|
void RGB_SaveSnapshot(class YamlSaveHelper& yamlSaveHelper);
|
2019-04-06 14:17:18 +00:00
|
|
|
void RGB_LoadSnapshot(class YamlLoadHelper& yamlLoadHelper, UINT cardVersion);
|
2020-09-01 20:32:44 +00:00
|
|
|
|
|
|
|
RGB_Videocard_e RGB_GetVideocard(void);
|
|
|
|
void RGB_SetVideocard(RGB_Videocard_e videocard, int text_foreground = -1, int text_background = -1);
|
|
|
|
void RGB_SetRegularTextFG(int color);
|
|
|
|
void RGB_SetRegularTextBG(int color);
|
|
|
|
void RGB_EnableTextFB();
|
|
|
|
void RGB_DisableTextFB();
|
|
|
|
int RGB_IsTextFB();
|