From f536d006b17ba8699b509715aacfad62a4f4fe35 Mon Sep 17 00:00:00 2001 From: zamtmn Date: Wed, 8 Jan 2025 15:59:37 +0500 Subject: [PATCH] =?UTF-8?q?+=D0=BA=D0=BB=D1=8E=D1=87=20=D0=BA=D0=BE=D0=BC?= =?UTF-8?q?=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B8=20experimentalfeatures=20+?= =?UTF-8?q?=D0=BA=D0=BB=D1=8E=D1=87=20experimentalfeatures=20=D0=B2=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8E=20*=D1=80=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru/customization/command_line_switch.adoc | 1 + cad_source/zcad.lpi | 4 +-- cad_source/zcad/uzccommandlineparser.pas | 6 ++-- cad_source/zcad/uzcsysinfo.pas | 4 ++- cad_source/zcad/uzcsysparams.pas | 2 +- cad_source/zengine/uzesysparams.pas | 35 +++++++++++++++++++ .../openglmodern/uzglviewareaoglmodern.pas | 6 ++-- 7 files changed, 50 insertions(+), 8 deletions(-) create mode 100644 cad_source/zengine/uzesysparams.pas diff --git a/cad_source/docs/userguide/locale/ru/customization/command_line_switch.adoc b/cad_source/docs/userguide/locale/ru/customization/command_line_switch.adoc index 46d403553..1659ee981 100644 --- a/cad_source/docs/userguide/locale/ru/customization/command_line_switch.adoc +++ b/cad_source/docs/userguide/locale/ru/customization/command_line_switch.adoc @@ -15,6 +15,7 @@ производится, интерфейс остается английским | [.filepath]#noloadlayout# | Не загружать файл раскладки окон | [.filepath]#debugui# | Включить "отладочный" интерфейс - некоторые элементы интерфейса для разработчика +| [.filepath]#experimentalfeatures# | Включить "экспериментральные" фичи - то что разрабатывается на данный момент не закончено и не нужно пользователю | [.filepath]#notcheckuniqueinstance# | Не проверять повторный запуск, с данным ключом может быть запущено несколько копий программы | [.filepath]#logfile# | Принудительно задать путь к лог файлу. Требует аргумент - путь и имя файла | [.filepath]#leam# | Принудительно разрешить все модули логирования diff --git a/cad_source/zcad.lpi b/cad_source/zcad.lpi index f0c39cd6d..21892b255 100644 --- a/cad_source/zcad.lpi +++ b/cad_source/zcad.lpi @@ -312,14 +312,14 @@ - + - + diff --git a/cad_source/zcad/uzccommandlineparser.pas b/cad_source/zcad/uzccommandlineparser.pas index cfbc2e55a..c789b2eef 100644 --- a/cad_source/zcad/uzccommandlineparser.pas +++ b/cad_source/zcad/uzccommandlineparser.pas @@ -30,7 +30,8 @@ interface NOSPLASHHDL, //опция nosplash - не показывать сплэш UPDATEPOHDL, //опция updatepo - актуализация файлов локализации, необходима для команды updatepo - DEBUGUIHDL, //опция debugui - наличие отладочных элементов в интерфейсе + DEBUGUIHDL, //опция debugui - наличие отладочных элементов в интерфейсе. для разработчика + EXPERIMENTALFEATURESHDL, //опция experimentalfeatures - включение не доделаных возможностей. для разработчика NOLOADLAYOUTHDL, //опция noloadlayout - запуск без загрузки начального состояния раскладки окон LOGFILEHDL, //опция logfile - указание лог файла, требует аргумент(ы) имя файла NOTCHECKUNIQUEINSTANCEHDL,//опция noloadlayout - запуск без загрузки начального состояния раскладки окон @@ -42,7 +43,7 @@ interface LCLHDL, //опция lcl -(Log Current Level) установка текущего уровня лога, требует аргумент MaxStackFrameCountHDL, //опция MaxStackFrameCount - максимальная глубина стека для обработчика исключений RunScript, //опция runscript - запуск скрипта при старте программы, требует аргумент(ы) - MemProfiling //опция memprofiling - ранний запуск профилировщика памяти на этапе инициализации программы + MemProfiling //опция memprofiling - ранний запуск профилировщика памяти на этапе инициализации программы. для разработчика :TCLOptionHandle; implementation @@ -52,6 +53,7 @@ initialization NOSPLASHHDL:=CommandLineParser.RegisterArgument('nosplash',AT_Flag); UPDATEPOHDL:=CommandLineParser.RegisterArgument('updatepo',AT_Flag); DEBUGUIHDL:=CommandLineParser.RegisterArgument('debugui',AT_Flag); + EXPERIMENTALFEATURESHDL:=CommandLineParser.RegisterArgument('experimentalfeatures',AT_Flag); NOLOADLAYOUTHDL:=CommandLineParser.RegisterArgument('noloadlayout',AT_Flag); LOGFILEHDL:=CommandLineParser.RegisterArgument('logfile',AT_WithOperands); NOTCHECKUNIQUEINSTANCEHDL:=CommandLineParser.RegisterArgument('notcheckuniqueinstance',AT_Flag); diff --git a/cad_source/zcad/uzcsysinfo.pas b/cad_source/zcad/uzcsysinfo.pas index 2baec063a..9b2e3f235 100644 --- a/cad_source/zcad/uzcsysinfo.pas +++ b/cad_source/zcad/uzcsysinfo.pas @@ -21,7 +21,7 @@ interface uses uzbCommandLineParser,uzcCommandLineParser, - uzcsysparams,uzcsysvars, + uzeSysParams,uzcSysParams,uzcsysvars, {uzbLogTypes,}uzbLog,uzcLog, uzbPaths,uzcPathMacros,uzcFileStructure, Forms,{$IFNDEF DELPHI}LazUTF8,{$ENDIF}sysutils; @@ -102,6 +102,8 @@ procedure ProcessParamStr; ZCSysParams.notsaved.PreloadedFile:=''; //значения некоторых параметров из комстроки, если есть + if CommandLineParser.HasOption(EXPERIMENTALFEATURESHDL) then + ZESysParams.UseExperimentalFeatures:=true; if CommandLineParser.HasOption(NOSPLASHHDL) then ZCSysParams.saved.NoSplash:=true; if CommandLineParser.HasOption(MemProfiling) then diff --git a/cad_source/zcad/uzcsysparams.pas b/cad_source/zcad/uzcsysparams.pas index 8f6ca6784..5a3fdb6a4 100644 --- a/cad_source/zcad/uzcsysparams.pas +++ b/cad_source/zcad/uzcsysparams.pas @@ -54,7 +54,7 @@ TZCNotSavedParams=record Ver:TmyFileVersionInfo;(*'Version'*)(*oi_readonly*) DefaultHeight:Integer;(*'Default controls height'*)(*oi_readonly*) end; - PZCsysParam=^TZCSysParams; + PZCSysParams=^TZCSysParams; {REGISTERRECORDTYPE TZCsysParam} TZCSysParams=record saved:TZCSavedParams;(*'Saved params'*) diff --git a/cad_source/zengine/uzesysparams.pas b/cad_source/zengine/uzesysparams.pas new file mode 100644 index 000000000..cecc8b96d --- /dev/null +++ b/cad_source/zengine/uzesysparams.pas @@ -0,0 +1,35 @@ +{ +***************************************************************************** +* * +* This file is part of the ZCAD * +* * +* See the file COPYING.txt, included in this distribution, * +* for details about the copyright. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * +* * +***************************************************************************** +} +{ +@author(Andrey Zubarev ) +} + +unit uzeSysParams; +{$INCLUDE zengineconfig.inc} +interface +uses + SysUtils; +type + PZESysParams=^TZESysParams; + TZESysParams=record + UseExperimentalFeatures:Boolean; + end; +var + ZESysParams: TZESysParams; +implementation +initialization + ZESysParams.UseExperimentalFeatures:=False; +finalization +end. diff --git a/cad_source/zengine/zgl/openglmodern/uzglviewareaoglmodern.pas b/cad_source/zengine/zgl/openglmodern/uzglviewareaoglmodern.pas index 5ef7d97e0..1f2c9d6ac 100644 --- a/cad_source/zengine/zgl/openglmodern/uzglviewareaoglmodern.pas +++ b/cad_source/zengine/zgl/openglmodern/uzglviewareaoglmodern.pas @@ -23,7 +23,8 @@ interface GLext, uzglbackendmanager, uzgldrawerogl,uzglviewareaogl,uzgldraweroglmodern,gl, - gzctnrBufferAllocator; + gzctnrBufferAllocator, + uzeSysParams; const CVBOSize=256*1024*1024; type @@ -86,5 +87,6 @@ procedure TOpenGLModernViewArea.getareacaps; VBO.vboAllocator.init(CVBOSize); end; begin - RegisterBackend(TOpenGLModernViewArea,'OpenGLModern'); + if ZESysParams.UseExperimentalFeatures then + RegisterBackend(TOpenGLModernViewArea,'OpenGLModern'); end.