- [NEW] Gestió dels events de cada finestra per separat
- [NEW] Symbols per a etiquetar adreces - [NEW] Mapa de memòria "tocada" - [NEW] En el mapa de memòria al passar el ratolí mostra l'adreça - [NEW] En el mapa de memòria es mostra en roig la posició del contador de programa - [NEW] Reemplaç en els opcodes de adreces conegudes per la seua etiqueta
This commit is contained in:
@@ -3,6 +3,9 @@
|
||||
#include "zx_ula.h"
|
||||
#include <SDL2/SDL.h>
|
||||
#include "zx_tape.h"
|
||||
#include "ui_window.h"
|
||||
#include "z80debug.h"
|
||||
#include "ui.h"
|
||||
|
||||
namespace zxscreen
|
||||
{
|
||||
@@ -85,8 +88,50 @@ namespace zxscreen
|
||||
//printf("COUNT: %i\n", count);
|
||||
}
|
||||
|
||||
bool eventHandler(SDL_Event *e)
|
||||
{
|
||||
if ((e->type==SDL_WINDOWEVENT) && (e->window.event==SDL_WINDOWEVENT_CLOSE)) {
|
||||
return false;
|
||||
}
|
||||
if (!z80debug::debugging()) {
|
||||
if (z80debug::paused()) {
|
||||
if (e->type == SDL_KEYDOWN) {
|
||||
if (e->key.keysym.scancode==SDL_SCANCODE_ESCAPE) {
|
||||
const uint8_t dt = z80::step();
|
||||
z80debug::cont();
|
||||
zxscreen::refresh(dt);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (e->type == SDL_KEYDOWN) {
|
||||
if (e->key.keysym.scancode==SDL_SCANCODE_ESCAPE) {
|
||||
z80debug::pause();
|
||||
ui::setrenderer(zxscreen::getrenderer());
|
||||
zxscreen::redraw();
|
||||
} else if (e->key.keysym.scancode==SDL_SCANCODE_F1) {
|
||||
zxscreen::decZoom();
|
||||
} else if (e->key.keysym.scancode==SDL_SCANCODE_F2) {
|
||||
zxscreen::incZoom();
|
||||
} else if (e->key.keysym.scancode==SDL_SCANCODE_F3) {
|
||||
zxscreen::toggleFullscreen();
|
||||
} else if (e->key.keysym.scancode==SDL_SCANCODE_F8) {
|
||||
z80debug::stop();
|
||||
zxscreen::redraw();
|
||||
} else if (e->key.keysym.scancode==SDL_SCANCODE_F12) {
|
||||
zx_tape::play();
|
||||
} else if (e->key.keysym.scancode==SDL_SCANCODE_F11) {
|
||||
zx_tape::rewind();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void reinit()
|
||||
{
|
||||
if (win) ui::window::unregisterWindow(SDL_GetWindowID(win));
|
||||
|
||||
if (tex) SDL_DestroyTexture(tex);
|
||||
if (ren) SDL_DestroyRenderer(ren);
|
||||
if (win) SDL_DestroyWindow(win);
|
||||
@@ -96,6 +141,8 @@ namespace zxscreen
|
||||
ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED);
|
||||
tex = SDL_CreateTexture(ren, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, 352, 296);
|
||||
|
||||
ui::window::registerWindow(SDL_GetWindowID(win), eventHandler);
|
||||
|
||||
if (fullscreen)
|
||||
{
|
||||
int w, h;
|
||||
|
||||
Reference in New Issue
Block a user