#include "chrome/browser/vr/ui_scene.h"
#include <string>
#include <utility>
#include "base/containers/adapters.h"
#include "base/functional/bind.h"
#include "base/memory/raw_ptr.h"
#include "base/time/time.h"
#include "base/trace_event/trace_event.h"
#include "base/values.h"
#include "chrome/browser/vr/databinding/binding_base.h"
#include "chrome/browser/vr/elements/draw_phase.h"
#include "chrome/browser/vr/elements/ui_element.h"
#include "chrome/browser/vr/frame_lifecycle.h"
#include "ui/gfx/geometry/transform.h"
namespace vr {
namespace {
template <typename P, typename V>
void AddPredicatedVisibleSubTree(UiElement* root, P predicate, V* elements) { … }
template <typename P>
UiScene::Elements GetVisibleElementsWithPredicate(UiElement* root,
P predicate) { … }
template <typename P>
UiScene::MutableElements GetVisibleElementsWithPredicateMutable(UiElement* root,
P predicate) { … }
void GetAllElementsRecursive(
std::vector<raw_ptr<UiElement, VectorExperimental>>* elements,
UiElement* e) { … }
template <typename P>
UiElement* FindElement(UiElement* e, P predicate) { … }
template <typename P>
bool AnyVisibleElementSatisfiesPredicate(UiElement* root, P predicate) { … }
void InitializeElementRecursive(UiElement* e, SkiaSurfaceProvider* provider) { … }
}
void UiScene::AddUiElement(UiElementName parent,
std::unique_ptr<UiElement> element) { … }
void UiScene::AddParentUiElement(UiElementName child,
std::unique_ptr<UiElement> element) { … }
std::unique_ptr<UiElement> UiScene::RemoveUiElement(int element_id) { … }
bool UiScene::OnBeginFrame(const base::TimeTicks& current_time,
const gfx::Transform& head_pose) { … }
bool UiScene::HasDirtyTextures() const { … }
void UiScene::UpdateTextures() { … }
UiElement& UiScene::root_element() { … }
UiElement* UiScene::GetUiElementById(int element_id) const { … }
UiElement* UiScene::GetUiElementByName(UiElementName name) const { … }
std::vector<raw_ptr<UiElement, VectorExperimental>>& UiScene::GetAllElements() { … }
UiScene::MutableElements UiScene::GetVisibleElementsMutable() { … }
UiScene::Elements UiScene::GetElementsToDraw() { … }
bool UiScene::HasWebXrOverlayElementsToDraw() { … }
UiScene::Elements UiScene::GetWebVrOverlayElementsToDraw() { … }
UiScene::UiScene() { … }
UiScene::~UiScene() = default;
void UiScene::OnGlInitialized(SkiaSurfaceProvider* provider) { … }
void UiScene::AddPerFrameCallback(PerFrameCallback callback) { … }
void UiScene::InitializeElement(UiElement* element) { … }
void UiScene::RunFirstFrameForTest() { … }
}