@@ -71,7 +71,7 @@ struct Engine::BuilderDetails {
71
71
FeatureLevel mFeatureLevel = FeatureLevel::FEATURE_LEVEL_1;
72
72
void * mSharedContext = nullptr ;
73
73
bool mPaused = false ;
74
- static Config validateConfig (const Config* pConfig ) noexcept ;
74
+ static Config validateConfig (Config config ) noexcept ;
75
75
};
76
76
77
77
Engine* FEngine::create (Engine::Builder const & builder) {
@@ -1286,7 +1286,7 @@ Engine::Builder& Engine::Builder::platform(Platform* platform) noexcept {
1286
1286
}
1287
1287
1288
1288
Engine::Builder& Engine::Builder::config (Engine::Config const * config) noexcept {
1289
- mImpl ->mConfig = BuilderDetails::validateConfig (config) ;
1289
+ mImpl ->mConfig = config ? *config : Engine::Config{} ;
1290
1290
return *this ;
1291
1291
}
1292
1292
@@ -1314,22 +1314,15 @@ void Engine::Builder::build(Invocable<void(void*)>&& callback) const {
1314
1314
#endif
1315
1315
1316
1316
Engine* Engine::Builder::build () const {
1317
+ mImpl ->mConfig = BuilderDetails::validateConfig (mImpl ->mConfig );
1317
1318
return FEngine::create (*this );
1318
1319
}
1319
1320
1320
- Engine::Config Engine::BuilderDetails::validateConfig (const Config* const pConfig ) noexcept {
1321
+ Engine::Config Engine::BuilderDetails::validateConfig (Config config ) noexcept {
1321
1322
// Rule of thumb: perRenderPassArenaMB must be roughly 1 MB larger than perFrameCommandsMB
1322
1323
constexpr uint32_t COMMAND_ARENA_OVERHEAD = 1 ;
1323
1324
constexpr uint32_t CONCURRENT_FRAME_COUNT = 3 ;
1324
1325
1325
- Config config;
1326
- if (!pConfig) {
1327
- return config;
1328
- }
1329
-
1330
- // make sure to copy all the fields
1331
- config = *pConfig;
1332
-
1333
1326
// Use at least the defaults set by the build system
1334
1327
config.minCommandBufferSizeMB = std::max (
1335
1328
config.minCommandBufferSizeMB ,
0 commit comments