Merge pull request #3116 from shun-iwasawa/g/actual_pixel_in_cleanup_preview

Enable Actual Pixel View in Cleanup Preview Mode
This commit is contained in:
Rodney 2020-02-28 20:07:23 -06:00 committed by GitHub
commit e366a9d6c1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2178,8 +2178,9 @@ void SceneViewer::zoomQt(bool forward, bool reset) {
if (reset || ((m_zoomScale3D < 500 || !forward) && if (reset || ((m_zoomScale3D < 500 || !forward) &&
(m_zoomScale3D > 0.01 || forward))) { (m_zoomScale3D > 0.01 || forward))) {
double oldZoomScale = m_zoomScale3D; double oldZoomScale = m_zoomScale3D;
m_zoomScale3D = reset ? 1 : ImageUtils::getQuantizedZoomFactor( m_zoomScale3D =
m_zoomScale3D, forward); reset ? 1
: ImageUtils::getQuantizedZoomFactor(m_zoomScale3D, forward);
m_pan3D = -(m_zoomScale3D / oldZoomScale) * -m_pan3D; m_pan3D = -(m_zoomScale3D / oldZoomScale) * -m_pan3D;
} }
@ -2209,8 +2210,9 @@ void SceneViewer::zoomQt(bool forward, bool reset) {
if (reset || ((scale2 < 100000 || !forward) && if (reset || ((scale2 < 100000 || !forward) &&
(scale2 > 0.001 * 0.05 || forward))) { (scale2 > 0.001 * 0.05 || forward))) {
double oldZoomScale = sqrt(scale2) * dpiFactor; double oldZoomScale = sqrt(scale2) * dpiFactor;
double zoomScale = reset ? 1 : ImageUtils::getQuantizedZoomFactor( double zoomScale =
oldZoomScale, forward); reset ? 1
: ImageUtils::getQuantizedZoomFactor(oldZoomScale, forward);
// threshold value -0.001 is intended to absorb the error of calculation // threshold value -0.001 is intended to absorb the error of calculation
if ((oldZoomScale - zoomScaleFittingWithScreen) * if ((oldZoomScale - zoomScaleFittingWithScreen) *
@ -2268,9 +2270,18 @@ double SceneViewer::getDpiFactor() {
// If the option "ActualPixelViewOnSceneEditingMode" is ON, // If the option "ActualPixelViewOnSceneEditingMode" is ON,
// use current level's DPI set in the level settings. // use current level's DPI set in the level settings.
else if (Preferences::instance() else if (Preferences::instance()
->isActualPixelViewOnSceneEditingModeEnabled() && ->isActualPixelViewOnSceneEditingModeEnabled()) {
!CleanupPreviewCheck::instance()->isEnabled() && if (CleanupPreviewCheck::instance()->isEnabled() ||
!CameraTestCheck::instance()->isEnabled()) { CameraTestCheck::instance()->isEnabled()) {
double cleanupCameraDpi = TApp::instance()
->getCurrentScene()
->getScene()
->getProperties()
->getCleanupParameters()
->m_camera.getDpi()
.x;
return Stage::inch / cleanupCameraDpi;
} else {
TXshSimpleLevel *sl; TXshSimpleLevel *sl;
sl = TApp::instance()->getCurrentLevel()->getSimpleLevel(); sl = TApp::instance()->getCurrentLevel()->getSimpleLevel();
if (!sl) return Stage::inch / cameraDpi; if (!sl) return Stage::inch / cameraDpi;
@ -2280,6 +2291,7 @@ double SceneViewer::getDpiFactor() {
// so that the dpi of the first frame in the level will be returned. // so that the dpi of the first frame in the level will be returned.
return Stage::inch / sl->getDpi().x; return Stage::inch / sl->getDpi().x;
} }
}
// When the scene editing mode without any option, use the camera dpi // When the scene editing mode without any option, use the camera dpi
else { else {
return Stage::inch / cameraDpi; return Stage::inch / cameraDpi;
@ -2622,8 +2634,9 @@ void SceneViewer::setActualPixelSize() {
if (m_isFlippedX) tempScale.x = -tempScale.x; if (m_isFlippedX) tempScale.x = -tempScale.x;
if (m_isFlippedY) tempScale.y = -tempScale.y; if (m_isFlippedY) tempScale.y = -tempScale.y;
for (int i = 0; i < m_viewAff.size(); ++i) for (int i = 0; i < m_viewAff.size(); ++i)
setViewMatrix(dpi == TPointD(0, 0) ? tempAff : TScale(tempScale.x / inch, setViewMatrix(dpi == TPointD(0, 0)
tempScale.y / inch), ? tempAff
: TScale(tempScale.x / inch, tempScale.y / inch),
i); i);
m_pos = QPoint(0, 0); m_pos = QPoint(0, 0);