You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3dea35d
Browse filesBrowse the repository at this point in the historyBrowse files
if (std::max(mBackend->mScreenWidth, mBackend->mScreenHeight) * factor > mBackend->mMaxRenderSize) {
647
647
GPUError("Screenshot not taken: requested render size %u x %u (window x FSAA x screenshot scale) exceeds the maximum size %u x %u", mBackend->mScreenWidth * factor, mBackend->mScreenHeight * factor, mBackend->mMaxRenderSize, mBackend->mMaxRenderSize);
648
648
mCfgC.requestScreenshot = false;
649
-
mCfgC.animateScreenshot = 0;
649
+
mCfgO.animateScreenshot = 0;
650
650
}
651
651
}
652
-
constbool animateScreenshot = mCfgC.animateScreenshot && mAnimate; // Copy, the animation resets animateScreenshot in its last frame
652
+
constbool animateScreenshot = mCfgO.animateScreenshot && mAnimate; // Copy, the animation resets animateScreenshot in its last frame
653
653
constbool screenshotFrame = mCfgC.requestScreenshot || animateScreenshot; // Also for the mix pass (animateTime >= 0), which must use the same render size
voidSaveGLPos(); // Camera position to mCfgC.glPosFile
196
+
voidSaveGLPos(); // Camera position to mCfgO.glPosFile
196
197
voidLoadGLPos();
197
-
voidSaveGLAnimation(); // Animation path to mCfgC.glAnimationFile
198
+
voidSaveGLAnimation(); // Animation path to mCfgO.glAnimationFile
198
199
voidLoadGLAnimation();
199
200
voidtakeScreenshot();
200
201
voidrunAnimation(); // Starts the animation if it has enough points
@@ -207,7 +208,6 @@ class GPUDisplay : public GPUDisplayInterface
207
208
voidresetAnimation();
208
209
voidremoveAnimationPoint(int32_t i = -1); // -1: the selected one, the last one if none is selected
209
210
voidStopAnimation(); // Ends a running animation, camera and settings stay as they are; for changed settings (checkAndApplyConfigChanges), scene reset, changes of the animation points
210
-
voidsetCameraFromAnimationPoint(const animationVector& p); // Camera stored in the point, as the animation shows it there
211
211
voidselectAnimationPoint(int32_t i); // -1: none, otherwise also loads its light settings and camera
212
212
voidsetAnimationPointsFromGUI(const GPUDisplayMultiSliderValue& points); // New times from the Qt GUI: reorders the points, selection
213
213
voidupdateAnimationPointsGUI(); // Range end of the GUI multi slider: last time + animationDelay, progress 0 without animation
BeginHiddenConfig(GPUDisplayOptions, options) // Display options without command line option, saved and reset with the other settings (console saveSettings / reset)
AddVariable(rotateModel, bool, false) // Rotate the model instead of the camera, like holding RCTRL (set in the Qt GUI)
36
33
AddVariable(rotateAroundZ, bool, false) // Rotate the TPC around the beamline, like holding RALT (set in the Qt GUI)
37
34
AddVariable(filterMacroCustom, std::string, "") // Code of the custom track filter ROOT macro (trackFilter = filterMacros.size() + 1), set in the Qt GUI
38
-
AddVariable(mscreenShotName, std::string, "screenshot") // Name of screenshot and animation frame files, followed by numbers
35
+
AddVariable(mscreenShotName, std::string, "screenshot") // Name of screenshot and animation frame files, followed by numbers
39
36
AddVariable(glPosFile, std::string, "glpos.tmp") // File for saving / loading the camera position
40
37
AddVariable(glAnimationFile, std::string, "glanimation.tmp") // File for saving / loading the animation path
41
38
AddVariable(guiDarkMode, int8_t, -1) // Dark mode of the Qt GUI, -1 = not yet set: the GUI reports the system scheme when it starts
42
39
AddVariable(guiScale, float, 1.f) // Scale factor of text and elements of the Qt GUI (on top of the system scaling), Ctrl + mouse wheel / Ctrl + 0 in the GUI
43
-
AddVariable(showConsole, bool, false) // Console shown (^ key): all other keys go to the console
44
-
AddVariable(applyToAllPoints, bool, false) // A change of the animation mode is applied to all animation points
40
+
AddVariable(applyToAllPoints, bool, false) // A change of the animation mode is applied to all animation points
41
+
EndConfig()
42
+
43
+
BeginHiddenConfig(GPUDisplayControl, control) // Transient control state and actions: not saved, not reset with the other settings
44
+
AddVariable(displayControl, GPUDisplayCopyableAtomic<int32_t>, 0) // Control for next event (=1) or quit (=2)
AddVariable(showConsole, bool, false) // Console shown (^ key): all other keys go to the console
45
48
AddVariable(animationPoints, GPUDisplayMultiSliderValue, GPUDisplayMultiSliderValue()) // Times of the animation points (GPUDisplay::mAnimationVectors) and the selected one, shown in the Qt GUI
46
-
AddVariable(dummy, bool, false) // dummy value to reference for keys that do not change variables
staticconstexpr std::tuple configStructs{&GPUDisplay::mCfgL, &GPUDisplay::mCfgH, &GPUDisplay::mCfgR, &GPUDisplay::mCfgC}; // Config structs with RTTI, as members of GPUDisplay
59
+
staticconstexpr std::tuple configStructs{&GPUDisplay::mCfgL, &GPUDisplay::mCfgH, &GPUDisplay::mCfgR, &GPUDisplay::mCfgO, &GPUDisplay::mCfgC}; // Config structs with RTTI, as members of GPUDisplay
60
60
61
61
std::vector<configRTTIExt> rttiEntries; // qconfig RTTI of all options of configStructs (struct, name, type, offset, default, min / max, description, message), the index identifies an option
62
62
std::vector<configKeyCallback> configInfos; // SetInfo callback for an option, indexed like rttiEntries, called after the callback of a key bound to it
constdouble start = mConsoleTimer.IsRunning() ? std::max(0., mConfig.internal.consoleDelay - mConsoleTimer.GetCurrentElapsedTime()) : 0.; // Reverse a running animation from its current position
if (mCfgC.applyToAllPoints && oldCfgL.animationMode != mCfgL.animationMode) { // Also for keys; the animation's own changes are in mOldCfg, so this is only user input
254
+
if (mCfgO.applyToAllPoints && oldCfgL.animationMode != mCfgL.animationMode) { // Also for keys; the animation's own changes are in mOldCfg, so this is only user input
0 commit comments