16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-19 09:59:18 +02:00

loading time fix

This commit is contained in:
maj00r
2026-05-19 19:04:46 +02:00
parent df5a8a897f
commit 2dfee2a322
11 changed files with 1722 additions and 157 deletions

View File

@@ -65,6 +65,11 @@ state_serializer::deserialize_begin( std::string const &Scenariofile ) {
Global.file_binary_terrain_state = false;
WriteLog("Default SBT absent");
}
WriteLog(
std::string("Scenario parser: fast_geometry=") + (Global.ScenarioParserFastGeometry ? "on" : "off")
+ ", fast_skip=" + (Global.ScenarioParserFastSkip ? "on" : "off")
+ ", text_triangles=" + (state->scratchpad.binary.terrain ? "skipped_via_sbt" : "parsed"));
scene::Groups.create();
if( false == state->input.ok() )
@@ -160,6 +165,9 @@ state_serializer::deserialize_continue(std::shared_ptr<deserializer_state> state
Region->serialize( state->scenariofile );
}
state->parser_metrics_scope.end();
state->parser_file_cache_scope.end();
state->fileexists_cache_scope.end();
return false;
}
@@ -1128,6 +1136,12 @@ state_serializer::deserialize_sound( cParser &Input, scene::scratch_data &Scratc
void
state_serializer::skip_until( cParser &Input, std::string const &Token ) {
if (Global.ScenarioParserFastSkip)
{
Input.skipUntilKeyword(Token);
return;
}
std::string token { Input.getToken<std::string>() };
while( ( false == token.empty() )
&& ( token != Token ) ) {

View File

@@ -10,12 +10,16 @@ http://mozilla.org/MPL/2.0/.
#pragma once
#include "utilities/parser.h"
#include "utilities/utilities.h"
#include "scene/scene.h"
namespace simulation {
struct deserializer_state {
std::string scenariofile;
FileExistsCacheScope fileexists_cache_scope;
ParserFileCacheScope parser_file_cache_scope;
ParserMetricsScope parser_metrics_scope;
cParser input;
scene::scratch_data scratchpad;
using deserializefunctionbind = std::function<void()>;