fixed a bug which caused the screen to disappear on switch-to-fpp

This commit is contained in:
Zeno Rogue 2023-08-15 15:19:50 +02:00
parent 27b572a44a
commit 27bedb19ed
2 changed files with 8 additions and 5 deletions

View File

@ -1361,14 +1361,17 @@ EX shiftmatrix orthogonal_move(const shiftmatrix& t, double level) {
return shiftless(orthogonal_move(t.T, level), t.shift);
}
/** fix a 3x3 matrix into a 4x4 matrix */
EX transmatrix fix4(transmatrix t) {
/** fix a 3x3 matrix into a 4x4 matrix, in place */
EX void fix4(transmatrix& t) {
#if MAXMDIM > 3
if(ldebug) println(hlog, "fix4 performed");
for(int i=0; i<4; i++) t[3][i] = t[i][3] = i == 3;
#endif
return t;
}
/** fix a 3x3 matrix into a 4x4 matrix, as a function */
EX transmatrix fix4_f(transmatrix t) { fix4(t); return t; }
EX transmatrix xyscale(const transmatrix& t, double fac) {
transmatrix res;
for(int i=0; i<MXDIM; i++) {

View File

@ -1391,8 +1391,8 @@ EX namespace hybrid {
return PIU( currentmap->full_shvid(c1) );
}
virtual transmatrix spin_to(cell *c, int d, ld bonus) override { if(d >= c->type-2) return Id; c = get_where(c).first; return fix4( in_underlying([&] { return currentmap->spin_to(c, d, bonus); }) ); }
virtual transmatrix spin_from(cell *c, int d, ld bonus) override { if(d >= c->type-2) return Id; c = get_where(c).first; return fix4( in_underlying([&] { return currentmap->spin_from(c, d, bonus); }) ); }
virtual transmatrix spin_to(cell *c, int d, ld bonus) override { if(d >= c->type-2) return Id; c = get_where(c).first; return fix4_f( in_underlying([&] { return currentmap->spin_to(c, d, bonus); }) ); }
virtual transmatrix spin_from(cell *c, int d, ld bonus) override { if(d >= c->type-2) return Id; c = get_where(c).first; return fix4_f( in_underlying([&] { return currentmap->spin_from(c, d, bonus); }) ); }
subcellshape& get_cellshape(cell *c) override {
int id = full_shvid(c);