diff --git a/z80debug.cpp b/z80debug.cpp index fe59f05..fd1c675 100644 --- a/z80debug.cpp +++ b/z80debug.cpp @@ -153,6 +153,7 @@ namespace z80debug void stop() { + zxscreen::setTitle(" (stopped)"); pause(); is_debugging = true; show(); @@ -160,6 +161,7 @@ namespace z80debug } void cont() { + zxscreen::setTitle(""); is_debugging = is_paused = false; //hide(); refresh(); @@ -380,6 +382,14 @@ namespace z80debug ui::printtxt(strlen(console)+1,0, "\x7F", COLOR_WHITE); ui::printtxt(1,1, console_error, COLOR_RED); + if (!is_debugging) { + SDL_SetRenderDrawBlendMode(ren, SDL_BLENDMODE_BLEND); + SDL_SetRenderDrawColor(ren, 0, 0, 0, 128); + SDL_Rect rect {0,0,83*CHR_W, 34*CHR_H}; + SDL_GetWindowSize(win, &rect.w, &rect.h); + SDL_RenderFillRect(ren, &rect); + } + SDL_RenderPresent(ren); for (int i=0; i<65536; ++i) mem_modified[i] = false; diff --git a/zx_screen.cpp b/zx_screen.cpp index b1c0a58..60a6e1b 100644 --- a/zx_screen.cpp +++ b/zx_screen.cpp @@ -92,8 +92,12 @@ namespace zxscreen bool eventHandler(SDL_Event *e) { - if ((e->type==SDL_WINDOWEVENT) && (e->window.event==SDL_WINDOWEVENT_CLOSE)) { - return false; + if (e->type==SDL_WINDOWEVENT) { + if (e->window.event==SDL_WINDOWEVENT_CLOSE) { + return false; + } else if ((e->window.event==SDL_WINDOWEVENT_SHOWN) || (e->window.event==SDL_WINDOWEVENT_EXPOSED)) { + redraw(); + } } if (!z80debug::debugging()) { if (z80debug::paused()) { @@ -270,6 +274,14 @@ namespace zxscreen SDL_RenderPresent(ren); } + void setTitle(const char* title) + { + char tmp[256]; + strcpy(tmp, "ZX Spectrum Screen"); + strcat(tmp, title); + SDL_SetWindowTitle(win, tmp); + } + void setZoom(const int value) { if (value < 1) return; diff --git a/zx_screen.h b/zx_screen.h index 5b9c487..057b8b9 100644 --- a/zx_screen.h +++ b/zx_screen.h @@ -10,6 +10,7 @@ namespace zxscreen void fullrefresh(); void redraw(const bool present=true); void present(); + void setTitle(const char* title); void incZoom(); void decZoom();