123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- /*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
- // Description : Display Settings implementation.
- #include "EditorDefs.h"
- #include "DisplaySettings.h"
- // Qt
- #include <QSettings>
- // Editor
- #include "Settings.h"
- //////////////////////////////////////////////////////////////////////////
- CDisplaySettings::CDisplaySettings()
- {
- m_flags = SETTINGS_NOLABELS | SETTINGS_NOCOLLISION;
- m_objectHideMask = 0;
- // All flags besides GI enabled by default
- m_renderFlags = RENDER_FLAG_LAST_ONE - 1;
- m_renderFlags &= ~(RENDER_FLAG_BBOX);
- m_renderFlags &= ~(RENDER_FLAG_GI);
- m_debugFlags = 0;
- m_labelsDistance = 100;
- }
- //////////////////////////////////////////////////////////////////////////
- CDisplaySettings::~CDisplaySettings()
- {
- }
- void CDisplaySettings::SaveRegistry()
- {
- SaveValue("Settings", "ObjectHideMask", m_objectHideMask);
- SaveValue("Settings", "RenderFlags", m_renderFlags);
- SaveValue("Settings", "DisplayFlags", m_flags & SETTINGS_SERIALIZABLE_FLAGS_MASK);
- SaveValue("Settings", "DebugFlags", m_debugFlags);
- SaveValue("Settings", "LabelsDistance", static_cast<int>(m_labelsDistance));
- }
- void CDisplaySettings::LoadRegistry()
- {
- LoadValue("Settings", "ObjectHideMask", m_objectHideMask);
- LoadValue("Settings", "RenderFlags", m_renderFlags);
- LoadValue("Settings", "DisplayFlags", m_flags);
- m_flags &= SETTINGS_SERIALIZABLE_FLAGS_MASK;
- LoadValue("Settings", "DebugFlags", m_debugFlags);
- int temp = static_cast<int>(m_labelsDistance);
- LoadValue("Settings", "LabelsDistance", temp);
- m_labelsDistance = static_cast<float>(temp);
- gSettings.objectHideMask = m_objectHideMask;
- }
- void CDisplaySettings::SetObjectHideMask(int hideMask)
- {
- m_objectHideMask = hideMask;
- gSettings.objectHideMask = m_objectHideMask;
- };
- //////////////////////////////////////////////////////////////////////////
- void CDisplaySettings::PostInitApply()
- {
- SetRenderFlags(m_renderFlags);
- SetDebugFlags(m_debugFlags);
- }
- //////////////////////////////////////////////////////////////////////////
- void CDisplaySettings::SetRenderFlags(int flags)
- {
- m_renderFlags = flags;
- }
- //////////////////////////////////////////////////////////////////////////
- void CDisplaySettings::SetDebugFlags(int flags)
- {
- m_debugFlags = flags;
- //
- //SetCVar( "ai_DebugDraw",m_debugFlags&DBG_AI_DEBUGDRAW );
- //SetCVarInt( "r_TexLog",(m_debugFlags&DBG_TEXTURE_MEMINFO) ? 2:0 );
- //SetCVarInt( "MemStats",(m_debugFlags&DBG_MEMSTATS) ? 1000:0 );
- //SetCVarInt( "p_draw_helpers",(m_debugFlags&DBG_PHYSICS_DEBUGDRAW) ? 5634:0 );
- //SetCVar( "r_ProfileShaders",(m_debugFlags&DBG_RENDERER_PROFILESHADERS) );
- SetCVarInt("r_MeasureOverdraw", (m_debugFlags & DBG_RENDERER_OVERDRAW) ? 1 : 0); //Eric@conffx display Overdraw in Particle editor preview window
- //SetCVarInt( "r_Stats",(m_debugFlags&DBG_RENDERER_RESOURCES) ? 4:0 );
- //SetCVarInt( "sys_enable_budgetmonitoring",(m_debugFlags&DBG_BUDGET_MONITORING) ? 4:0 );
- //SetCVarInt( "Profile",(m_debugFlags&DBG_FRAMEPROFILE) ? 1:0 );
- }
- //////////////////////////////////////////////////////////////////////////
- void CDisplaySettings::SetCVar(const char* cvar, bool value)
- {
- ICVar* var = GetIEditor()->GetSystem()->GetIConsole()->GetCVar(cvar);
- if (var)
- {
- var->Set((value) ? 1 : 0);
- }
- else
- {
- CLogFile::FormatLine("Console Variable %s not declared", cvar);
- }
- }
- //////////////////////////////////////////////////////////////////////////
- void CDisplaySettings::SetCVarInt(const char* cvar, int value)
- {
- ICVar* var = GetIEditor()->GetSystem()->GetIConsole()->GetCVar(cvar);
- if (var)
- {
- var->Set(value);
- }
- else
- {
- CLogFile::FormatLine("Console Variable %s not declared", cvar);
- }
- }
- //////////////////////////////////////////////////////////////////////////
- void CDisplaySettings::DisplayLabels(bool bEnable)
- {
- if (bEnable)
- {
- m_flags &= ~SETTINGS_NOLABELS;
- }
- else
- {
- m_flags |= SETTINGS_NOLABELS;
- }
- }
- //////////////////////////////////////////////////////////////////////////
- void CDisplaySettings::DisplayTracks(bool bEnable)
- {
- if (bEnable)
- {
- m_flags &= ~SETTINGS_HIDE_TRACKS;
- }
- else
- {
- m_flags |= SETTINGS_HIDE_TRACKS;
- }
- }
- //////////////////////////////////////////////////////////////////////////
- void CDisplaySettings::DisplayLinks(bool bEnable)
- {
- if (bEnable)
- {
- m_flags &= ~SETTINGS_HIDE_LINKS;
- }
- else
- {
- m_flags |= SETTINGS_HIDE_LINKS;
- }
- }
- //////////////////////////////////////////////////////////////////////////
- void CDisplaySettings::DisplayHelpers(bool bEnable)
- {
- if (bEnable)
- {
- m_flags &= ~SETTINGS_HIDE_HELPERS;
- }
- else
- {
- m_flags |= SETTINGS_HIDE_HELPERS;
- }
- }
- //////////////////////////////////////////////////////////////////////////
- void CDisplaySettings::DisplayDimensionFigures(bool bEnable)
- {
- if (bEnable)
- {
- m_flags |= SETTINGS_SHOW_DIMENSIONFIGURES;
- }
- else
- {
- m_flags &= ~SETTINGS_SHOW_DIMENSIONFIGURES;
- }
- }
- //////////////////////////////////////////////////////////////////////////
- void CDisplaySettings::SetHighlightBreakable(bool bHighlight)
- {
- if (bHighlight)
- {
- m_debugFlags |= DBG_HIGHLIGHT_BREAKABLE;
- }
- else
- {
- m_debugFlags &= ~DBG_HIGHLIGHT_BREAKABLE;
- }
- }
- //////////////////////////////////////////////////////////////////////////
- void CDisplaySettings::SetHighlightMissingSurfaceType(bool bHighlight)
- {
- if (bHighlight)
- {
- m_debugFlags |= DBG_HIGHLIGHT_MISSING_SURFACE_TYPE;
- }
- else
- {
- m_debugFlags &= ~DBG_HIGHLIGHT_MISSING_SURFACE_TYPE;
- }
- }
- //////////////////////////////////////////////////////////////////////////
- void CDisplaySettings::SaveValue(const char* sSection, const char* sKey, int value)
- {
- QSettings settings;
- settings.setValue(QStringLiteral("%1/%2").arg(sSection, sKey), value);
- }
- //////////////////////////////////////////////////////////////////////////
- void CDisplaySettings::LoadValue(const char* sSection, const char* sKey, int& value)
- {
- QSettings settings;
- value = settings.value(QStringLiteral("%1/%2").arg(sSection, sKey), value).toInt();
- }
- //////////////////////////////////////////////////////////////////////////
- void CDisplaySettings::LoadValue(const char* sSection, const char* sKey, bool& value)
- {
- QSettings settings;
- value = settings.value(QStringLiteral("%1/%2").arg(sSection, sKey), value).toInt();
- }
|