// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_AURA_WINDOW_OCCLUSION_CHANGE_BUILDER_H_
#define UI_AURA_WINDOW_OCCLUSION_CHANGE_BUILDER_H_

#include <memory>

#include "ui/aura/aura_export.h"
#include "ui/aura/window.h"

class SkRegion;

namespace aura {

// Interface for WindowOcclusionTracker to update window occlusion info.
class AURA_EXPORT WindowOcclusionChangeBuilder {
 public:
  virtual ~WindowOcclusionChangeBuilder() = default;

  // Add an occlusion info change for |window|.
  // Note that setting Window::OcclusionState::UNKNOWN to a window is not
  // allowed.
  virtual void Add(Window* window,
                   Window::OcclusionState occlusion_state,
                   SkRegion occluded_region) = 0;

  // Factory to create the default implementation that updates occlusion info
  // on aura::Window.
  static std::unique_ptr<WindowOcclusionChangeBuilder> Create();
};

}  // namespace aura

#endif  // UI_AURA_WINDOW_OCCLUSION_CHANGE_BUILDER_H_
