| 423 | } |
| 424 | |
| 425 | void UpdateSafeAreaAdjust(HContext context, SafeAreaMode mode, uint32_t window_width, uint32_t window_height, |
| 426 | int32_t inset_left, int32_t inset_top, int32_t inset_right, int32_t inset_bottom) |
| 427 | { |
| 428 | if (!context) |
| 429 | { |
| 430 | return; |
| 431 | } |
| 432 | |
| 433 | context->m_SafeAreaMode = mode; |
| 434 | context->m_WindowWidth = window_width; |
| 435 | context->m_WindowHeight = window_height; |
| 436 | context->m_WindowInsetLeft = inset_left; |
| 437 | context->m_WindowInsetTop = inset_top; |
| 438 | context->m_WindowInsetRight = inset_right; |
| 439 | context->m_WindowInsetBottom = inset_bottom; |
| 440 | |
| 441 | if (mode == SAFE_AREA_NONE) |
| 442 | { |
| 443 | SetSafeAreaAdjust(context, false, 0, 0, 0.0f, 0.0f); |
| 444 | } |
| 445 | else |
| 446 | { |
| 447 | uint32_t safe_width = 0; |
| 448 | uint32_t safe_height = 0; |
| 449 | float offset_x = 0.0f; |
| 450 | float offset_y = 0.0f; |
| 451 | ComputeSafeAreaAdjust(mode, window_width, window_height, inset_left, inset_top, inset_right, inset_bottom, |
| 452 | &safe_width, &safe_height, &offset_x, &offset_y); |
| 453 | SetSafeAreaAdjust(context, true, safe_width, safe_height, offset_x, offset_y); |
| 454 | } |
| 455 | |
| 456 | dmArray<HScene>& scenes = context->m_Scenes; |
| 457 | uint32_t scene_count = scenes.Size(); |
| 458 | for (uint32_t i = 0; i < scene_count; ++i) |
| 459 | { |
| 460 | Scene* scene = scenes[i]; |
| 461 | if (scene->m_SafeAreaModeOverride) |
| 462 | { |
| 463 | uint32_t override_width = 0; |
| 464 | uint32_t override_height = 0; |
| 465 | float override_offset_x = 0.0f; |
| 466 | float override_offset_y = 0.0f; |
| 467 | ComputeSafeAreaAdjust(scene->m_SafeAreaMode, window_width, window_height, inset_left, inset_top, inset_right, inset_bottom, |
| 468 | &override_width, &override_height, &override_offset_x, &override_offset_y); |
| 469 | SetSceneSafeAreaAdjust(scene, scene->m_SafeAreaMode != SAFE_AREA_NONE, override_width, override_height, override_offset_x, override_offset_y); |
| 470 | } |
| 471 | } |
| 472 | } |
| 473 | |
| 474 | void SetSceneSafeAreaMode(HScene scene, SafeAreaMode mode) |
| 475 | { |