float xmult, ymult;
bool cursor_v, cursor_scale;
int statusbar_vx, statusbar_hx;
+ RECT sr2, dr2, zr2;
struct gfx_filterdata *filterd3d;
int filterd3didx;
if (!normalrender)
return;
- //write_log (_T("%dx%d %dx%d %dx%d\n"), tin_w, tin_h, tin_w, tin_h, window_w, window_h);
-
getfilterrect2 (monid, &dr, &sr, &zr, d3d->window_w, d3d->window_h, d3d->tin_w / d3d->dmult, d3d->tin_h / d3d->dmult, d3d->dmult, &d3d->dmode, d3d->tin_w, d3d->tin_h);
if (memcmp (&sr, &sr2[monid], sizeof RECT) || memcmp (&dr, &dr2[monid], sizeof RECT) || memcmp (&zr, &zr2[monid], sizeof RECT)) {
zr2[monid] = zr;
}
+ d3d->sr2 = sr;
+ d3d->dr2 = dr;
+ d3d->zr2 = zr;
+
dw = (float)dr.right - dr.left;
dh = (float)dr.bottom - dr.top;
w = (float)sr.right - sr.left;
if (d3d->fakemode)
return false;
+ setupscenecoords(d3d, true, monid);
+
changed_prefs.leds_on_screen |= STATUSLINE_TARGET;
currprefs.leds_on_screen |= STATUSLINE_TARGET;
static void setupscenecoords(struct d3d11struct *d3d, bool normalrender, int monid)
{
RECT sr, dr, zr;
+ static RECT sr2[MAX_AMIGAMONITORS], dr2[MAX_AMIGAMONITORS], zr2[MAX_AMIGAMONITORS];
if (!normalrender)
return;
getfilterrect2(d3d->num, &dr, &sr, &zr, d3d->m_screenWidth, d3d->m_screenHeight, d3d->m_bitmapWidth / d3d->dmult, d3d->m_bitmapHeight / d3d->dmult, d3d->dmult, &d3d->dmode, d3d->m_bitmapWidth, d3d->m_bitmapHeight);
- if (!memcmp(&sr, &d3d->sr2, sizeof RECT) && !memcmp(&dr, &d3d->dr2, sizeof RECT) && !memcmp(&zr, &d3d->zr2, sizeof RECT)) {
- return;
- }
- if (1) {
+ if (memcmp(&sr, &sr2[monid], sizeof RECT) || memcmp(&dr, &dr2[monid], sizeof RECT) || memcmp(&zr, &zr2[monid], sizeof RECT)) {
write_log(_T("POS (%d %d %d %d) - (%d %d %d %d)[%d,%d] (%d %d) S=%d*%d B=%d*%d\n"),
dr.left, dr.top, dr.right, dr.bottom,
sr.left, sr.top, sr.right, sr.bottom,
zr.left, zr.top,
d3d->m_screenWidth, d3d->m_screenHeight,
d3d->m_bitmapWidth, d3d->m_bitmapHeight);
+ sr2[monid] = sr;
+ dr2[monid] = dr;
+ zr2[monid] = zr;
}
d3d->sr2 = sr;
d3d->cursor_offset_x = -zr.left;
d3d->cursor_offset_y = -zr.top;
- write_log(_T("%d %d %.f %.f\n"), d3d->xoffset, d3d->yoffset, d3d->xmult, d3d->ymult);
-
UpdateBuffers(d3d, monid);
xD3DXMatrixOrthoOffCenterLH(&d3d->m_matProj_out, 0, w + 0.05f, 0, h + 0.05f, 0.0f, 1.0f);
struct gdistruct *gdi = &gdidata[monid];
}
-static void setupscenecoords(struct gdistruct *gdi)
+static void setupscenecoords(struct gdistruct *gdi, int monid)
{
RECT sr, dr, zr;
+ static RECT sr2[MAX_AMIGAMONITORS], dr2[MAX_AMIGAMONITORS], zr2[MAX_AMIGAMONITORS];
getfilterrect2(gdi->num, &dr, &sr, &zr, gdi->wwidth, gdi->wheight, gdi->bm.width / gdi->dmult, gdi->bm.height / gdi->dmult, gdi->dmult, &gdi->dmode, gdi->bm.width, gdi->bm.height);
- if (!memcmp(&sr, &gdi->sr2, sizeof RECT) && !memcmp(&dr, &gdi->dr2, sizeof RECT) && !memcmp(&zr, &gdi->zr2, sizeof RECT)) {
- return;
- }
- if (1) {
+ if (memcmp(&sr, &sr2[monid], sizeof RECT) || memcmp(&dr, &dr2[monid], sizeof RECT) || memcmp(&zr, &zr2[monid], sizeof RECT)) {
write_log(_T("POS (%d %d %d %d) - (%d %d %d %d)[%d,%d] (%d %d) S=%d*%d B=%d*%d\n"),
dr.left, dr.top, dr.right, dr.bottom,
sr.left, sr.top, sr.right, sr.bottom,
zr.left, zr.top,
gdi->wwidth, gdi->wheight,
gdi->bm.width, gdi->bm.height);
+ sr2[monid] = sr;
+ dr2[monid] = dr;
+ zr2[monid] = zr;
}
gdi->sr2 = sr;
SetDCBrushColor(gdi->hdc, RGB(0, 0, 0));
if (allocsprite(gdi, &gdi->bm, w, h)) {
gdi->dmult = S2X_getmult(monid);
- setupscenecoords(gdi);
+ setupscenecoords(gdi, monid);
return true;
}
}
{
struct gdistruct *gdi = &gdidata[monid];
- setupscenecoords(gdi);
+ setupscenecoords(gdi, monid);
return gdi->bm.hbm != NULL;
}
#ifdef RETROPLATFORM
rp_set_hwnd(mon->hAmigaWnd);
#endif
+ target_graphics_buffer_update(monid);
}
#endif