- [NEW] Les finestres guarden la posició i el zoom
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
#include "ui_window.h"
|
||||
#include "z80debug.h"
|
||||
#include "ui.h"
|
||||
#include "file.h"
|
||||
//#include "zx_128mem.h"
|
||||
|
||||
namespace zxscreen
|
||||
@@ -51,6 +52,15 @@ namespace zxscreen
|
||||
#define SCREEN_SYNC 0xFFFF
|
||||
#define SCREEN_BORDER 0xFFFE
|
||||
|
||||
void saveWindowConfiguration()
|
||||
{
|
||||
file::setConfigValueInteger("screen_zoom", zoom);
|
||||
int x, y;
|
||||
SDL_GetWindowPosition(win, &x, &y);
|
||||
file::setConfigValueInteger("screen_x", x);
|
||||
file::setConfigValueInteger("screen_y", y);
|
||||
}
|
||||
|
||||
void create_tables()
|
||||
{
|
||||
uint32_t count = 0;
|
||||
@@ -119,7 +129,10 @@ namespace zxscreen
|
||||
//sprintf(tmp, " %ix%i", x, y);
|
||||
//setTitle(tmp);
|
||||
if (e->window.event==SDL_WINDOWEVENT_CLOSE) {
|
||||
saveWindowConfiguration();
|
||||
return false;
|
||||
} else if (e->window.event==SDL_WINDOWEVENT_FOCUS_LOST || e->window.event==SDL_WINDOWEVENT_MOVED) {
|
||||
saveWindowConfiguration();
|
||||
} else if ((e->window.event==SDL_WINDOWEVENT_SHOWN) || (e->window.event==SDL_WINDOWEVENT_EXPOSED)) {
|
||||
redraw();
|
||||
}
|
||||
@@ -160,6 +173,7 @@ namespace zxscreen
|
||||
|
||||
void reinit()
|
||||
{
|
||||
saveWindowConfiguration();
|
||||
if (win) ui::window::unregisterWindow(SDL_GetWindowID(win));
|
||||
|
||||
if (tex) SDL_DestroyTexture(tex);
|
||||
@@ -167,8 +181,12 @@ namespace zxscreen
|
||||
if (ren) SDL_DestroyRenderer(ren);
|
||||
if (win) SDL_DestroyWindow(win);
|
||||
|
||||
zoom = file::getConfigValueInteger("screen_zoom", 1);
|
||||
const int x = file::getConfigValueInteger("screen_x", SDL_WINDOWPOS_UNDEFINED);
|
||||
const int y = file::getConfigValueInteger("screen_y", SDL_WINDOWPOS_UNDEFINED);
|
||||
|
||||
const int z = fullscreen ? 1 : zoom;
|
||||
win = SDL_CreateWindow("ZX Spectrum Screen", 1216, 565, 352*z, 296*z, fullscreen?SDL_WINDOW_FULLSCREEN_DESKTOP:SDL_WINDOW_ALLOW_HIGHDPI);
|
||||
win = SDL_CreateWindow("ZX Spectrum Screen", x, y, 352*z, 296*z, fullscreen?SDL_WINDOW_FULLSCREEN_DESKTOP:SDL_WINDOW_ALLOW_HIGHDPI);
|
||||
ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED);
|
||||
tex = SDL_CreateTexture(ren, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, 352, 296);
|
||||
uitex = ui::createtexture(ren);
|
||||
|
||||
Reference in New Issue
Block a user