mirror of
https://github.com/st3fan/ewm.git
synced 2024-06-11 15:29:33 +00:00
Merge 07bcaecfb4
into 8a8438d0c2
This commit is contained in:
commit
df67f15d1c
18
src/scr.c
18
src/scr.c
|
@ -182,10 +182,10 @@ static uint16_t hgr_line_offsets[192] = {
|
|||
|
||||
static SDL_Color hgr_colors[16] = {
|
||||
{ 0, 0, 0, 0 }, // 0 Black
|
||||
{ 0, 0, 204, 0 }, // 1 Blue
|
||||
{ 128, 0, 128, 0 }, // 2 Purple
|
||||
{ 0, 100, 0, 0 }, // 3 Green
|
||||
{ 0, 100, 0, 0 }, // 4 Red
|
||||
{ 0, 150, 255, 0 }, // 1 Light Blue
|
||||
{ 255, 64, 255, 0 }, // 2 Purple
|
||||
{ 0, 249, 0, 0 }, // 3 Green
|
||||
{ 255, 147, 0, 0 }, // 4 Orange
|
||||
{ 255, 255, 255, 0 } // 5 White
|
||||
};
|
||||
|
||||
|
@ -227,7 +227,7 @@ inline static void scr_render_hgr_line_color(struct scr_t *scr, int line, uint16
|
|||
}
|
||||
} else {
|
||||
if (c & 0x80) {
|
||||
pixels[x] = 4; // Red
|
||||
pixels[x] = 4; // Orange
|
||||
} else {
|
||||
pixels[x] = 3; // Green
|
||||
}
|
||||
|
@ -247,6 +247,14 @@ inline static void scr_render_hgr_line_color(struct scr_t *scr, int line, uint16
|
|||
}
|
||||
}
|
||||
|
||||
// Fill black pixels with same neighbours
|
||||
|
||||
for (int i = 0; i < (280-1); i++) {
|
||||
if (pixels[i] == pixels[i+2] && pixels[i] != 0) {
|
||||
pixels[i+1] = pixels[i];
|
||||
}
|
||||
}
|
||||
|
||||
// Now draw them
|
||||
|
||||
for (x = 0; x < 280; x++) {
|
||||
|
|
|
@ -62,11 +62,24 @@ void lgr_full_refresh_test(struct scr_t *scr) {
|
|||
ewm_scr_update(scr, 0, 0);
|
||||
}
|
||||
|
||||
void hgr_full_refresh_setup(struct scr_t *scr) {
|
||||
void hgr_full_refresh_setup_monochrome(struct scr_t *scr) {
|
||||
scr->two->screen_mode = EWM_A2P_SCREEN_MODE_GRAPHICS;
|
||||
scr->two->screen_page = EWM_A2P_SCREEN_PAGE1;
|
||||
scr->two->screen_graphics_mode = EWM_A2P_SCREEN_GRAPHICS_MODE_HGR;
|
||||
scr->two->screen_graphics_style = EWM_A2P_SCREEN_GRAPHICS_STYLE_FULL;
|
||||
scr->color_scheme = EWM_SCR_COLOR_SCHEME_MONOCHROME;
|
||||
|
||||
for (uint16_t a = 0x2000; a <= 0x5fff; a++) {
|
||||
mem_set_byte(scr->two->cpu, a, rand());
|
||||
}
|
||||
}
|
||||
|
||||
void hgr_full_refresh_setup_color(struct scr_t *scr) {
|
||||
scr->two->screen_mode = EWM_A2P_SCREEN_MODE_GRAPHICS;
|
||||
scr->two->screen_page = EWM_A2P_SCREEN_PAGE1;
|
||||
scr->two->screen_graphics_mode = EWM_A2P_SCREEN_GRAPHICS_MODE_HGR;
|
||||
scr->two->screen_graphics_style = EWM_A2P_SCREEN_GRAPHICS_STYLE_FULL;
|
||||
scr->color_scheme = EWM_SCR_COLOR_SCHEME_COLOR;
|
||||
|
||||
for (uint16_t a = 0x2000; a <= 0x5fff; a++) {
|
||||
mem_set_byte(scr->two->cpu, a, rand());
|
||||
|
@ -121,7 +134,8 @@ int main() {
|
|||
|
||||
test(two->scr, "txt_full_refresh", txt_full_refresh_setup, txt_full_refresh_test);
|
||||
test(two->scr, "lgr_full_refresh", lgr_full_refresh_setup, lgr_full_refresh_test);
|
||||
test(two->scr, "hgr_full_refresh", hgr_full_refresh_setup, hgr_full_refresh_test);
|
||||
test(two->scr, "hgr_full_refresh_mono", hgr_full_refresh_setup_monochrome, hgr_full_refresh_test);
|
||||
test(two->scr, "hgr_full_refresh_color", hgr_full_refresh_setup_color, hgr_full_refresh_test);
|
||||
|
||||
// Destroy DSL things
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user