dy = (int)(y - h/2);
surface.SetForeground(ColorAlpha{alpha, white});
- surface.Stretch(bitmap, dx * SCALE, dy * SCALE, 0,0, w * SCALE, h * SCALE, bitmap.width, bitmap.height);
+ surface.Stretch(bitmap, (int)(dx * SCALE), (int)(dy * SCALE), 0,0, (int)(w * SCALE), (int)(h * SCALE), bitmap.width, bitmap.height);
x += FULL_SWITCH;
}
}
break;
+ case up:
+ {
+ if(poppingWindow) break;
+ if(sliding == 1.0 && !dockHidden)
+ {
+ Quaternion fa, ta;
+ Vector3D fp, tp;
+
+ Window window = virtualDesktop.activeChild;
+ if(window)
+ {
+ Window3D window3D = Desktop3DGetWindowHandle(window);
+
+ camera.Update();
+ fa = fromAngle = camera.cOrientation;
+ fp = fromPosition = camera.cPosition;
+
+ camera.type = lookAt;
+ camera.position = { 0,0,0 };
+ camera.orientation = Euler {};
+ lookAt.transform.position = window3D.cube.transform.position;
+ lookAt.transform.orientation = Euler {};
+ lookAt.UpdateTransform();
+
+ sliding = 0;
+ dockHidden = true;
+
+ camera.Update();
+ tp = toPosition = camera.cPosition;
+ ta = toAngle = camera.cOrientation;
+
+ camera.AdjustAngle(fromAngle);
+ camera.AdjustPosition(fromPosition);
+ }
+ }
+ if(!dockHidden) break; // Follow through to 'full screen' if dock is hiddens
+ }
case enter:
{
if(sliding < 1 || switching < 1 || entering < 1) break;
}
break;
}
+ case down:
+ case escape:
case f1:
- {
- if(dockHidden)
+ if(sliding == 1.0 && dockHidden)
{
- Window window = virtualDesktop.activeChild;
- Window3D window3D = Desktop3DGetWindowHandle(window);
+ if(sliding < 1 || switching < 1 || entering < 1) break;
+
+ fromAngle = camera.cOrientation;
+ fromPosition = camera.cPosition;
if(fullScreen)
{
- fromAngle = camera.cOrientation;
- fromPosition = camera.cPosition;
+ Window window = virtualDesktop.activeChild;
+ Window3D window3D = Desktop3DGetWindowHandle(window);
camera.type = lookAt;
camera.position = {};
- camera.orientation = Euler{};
+ camera.orientation = Euler {};
lookAt.transform.position = window3D.cube.transform.position;
- lookAt.transform.orientation = Euler { };
- lookAt.UpdateTransform();
-
- entering = 0;
-
- camera.Update();
- toPosition = camera.cPosition;
- toAngle = camera.cOrientation;
-
- camera.AdjustAngle(fromAngle);
- camera.AdjustPosition(fromPosition);
-
- // window.Deactivate();
-
entering = 0;
- fullScreen = false;
}
- }
- break;
- }
- case up:
- {
- if(poppingWindow) break;
- if(sliding == 1.0 && !dockHidden)
- {
- Quaternion fa, ta;
- Vector3D fp, tp;
-
- Window window = virtualDesktop.activeChild;
- if(window)
+ else
{
- Window3D window3D = Desktop3DGetWindowHandle(window);
-
- camera.Update();
- fa = fromAngle = camera.cOrientation;
- fp = fromPosition = camera.cPosition;
-
camera.type = lookAt;
- camera.position = { 0,0,0 };
- camera.orientation = Euler {};
- lookAt.transform.position = window3D.cube.transform.position;
- lookAt.transform.orientation = Euler {};
- lookAt.UpdateTransform();
-
+ camera.position = {0, ORBIT_HEIGHT, -2000};
+ camera.orientation = Euler { pitch = 15 };
+ lookAt.transform.position = {};
sliding = 0;
- dockHidden = true;
-
- camera.Update();
- tp = toPosition = camera.cPosition;
- ta = toAngle = camera.cOrientation;
-
- camera.AdjustAngle(fromAngle);
- camera.AdjustPosition(fromPosition);
+ dockHidden = false;
}
- }
- break;
- }
- case down:
- case escape:
- if(sliding == 1.0 && dockHidden)
- {
- if(sliding < 1 || switching < 1 || entering < 1) break;
- fromAngle = camera.cOrientation;
- fromPosition = camera.cPosition;
+ fullScreen = false;
- camera.type = lookAt;
- camera.position = {0, ORBIT_HEIGHT, -2000};
- camera.orientation = Euler { pitch = 15 };
- lookAt.transform.position = {};
lookAt.transform.orientation = Euler {};
lookAt.UpdateTransform();
- sliding = 0;
- dockHidden = false;
- fullScreen = false;
-
camera.Update();
toPosition = camera.cPosition;
toAngle = camera.cOrientation;