Skip to content

Commit fa0e20a

Browse files
committed
always validate Engine::config
1 parent 5959383 commit fa0e20a

File tree

1 file changed

+4
-11
lines changed

1 file changed

+4
-11
lines changed

filament/src/details/Engine.cpp

+4-11
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ struct Engine::BuilderDetails {
7171
FeatureLevel mFeatureLevel = FeatureLevel::FEATURE_LEVEL_1;
7272
void* mSharedContext = nullptr;
7373
bool mPaused = false;
74-
static Config validateConfig(const Config* pConfig) noexcept;
74+
static Config validateConfig(Config config) noexcept;
7575
};
7676

7777
Engine* FEngine::create(Engine::Builder const& builder) {
@@ -1286,7 +1286,7 @@ Engine::Builder& Engine::Builder::platform(Platform* platform) noexcept {
12861286
}
12871287

12881288
Engine::Builder& Engine::Builder::config(Engine::Config const* config) noexcept {
1289-
mImpl->mConfig = BuilderDetails::validateConfig(config);
1289+
mImpl->mConfig = config ? *config : Engine::Config{};
12901290
return *this;
12911291
}
12921292

@@ -1314,22 +1314,15 @@ void Engine::Builder::build(Invocable<void(void*)>&& callback) const {
13141314
#endif
13151315

13161316
Engine* Engine::Builder::build() const {
1317+
mImpl->mConfig = BuilderDetails::validateConfig(mImpl->mConfig);
13171318
return FEngine::create(*this);
13181319
}
13191320

1320-
Engine::Config Engine::BuilderDetails::validateConfig(const Config* const pConfig) noexcept {
1321+
Engine::Config Engine::BuilderDetails::validateConfig(Config config) noexcept {
13211322
// Rule of thumb: perRenderPassArenaMB must be roughly 1 MB larger than perFrameCommandsMB
13221323
constexpr uint32_t COMMAND_ARENA_OVERHEAD = 1;
13231324
constexpr uint32_t CONCURRENT_FRAME_COUNT = 3;
13241325

1325-
Config config;
1326-
if (!pConfig) {
1327-
return config;
1328-
}
1329-
1330-
// make sure to copy all the fields
1331-
config = *pConfig;
1332-
13331326
// Use at least the defaults set by the build system
13341327
config.minCommandBufferSizeMB = std::max(
13351328
config.minCommandBufferSizeMB,

0 commit comments

Comments
 (0)