fake_surface_observer.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // Copyright 2017 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef COMPONENTS_VIZ_TEST_FAKE_SURFACE_OBSERVER_H_
  5. #define COMPONENTS_VIZ_TEST_FAKE_SURFACE_OBSERVER_H_
  6. #include "base/containers/flat_set.h"
  7. #include "components/viz/common/frame_sinks/begin_frame_args.h"
  8. #include "components/viz/common/surfaces/surface_id.h"
  9. #include "components/viz/common/surfaces/surface_info.h"
  10. #include "components/viz/service/surfaces/surface_observer.h"
  11. namespace viz {
  12. class FakeSurfaceObserver : public SurfaceObserver {
  13. public:
  14. // If |damage_display| is true, the observer will indicate display damage when
  15. // a surface is damaged.
  16. explicit FakeSurfaceObserver(bool damage_display = true);
  17. ~FakeSurfaceObserver() override;
  18. const BeginFrameAck& last_ack() const { return last_ack_; }
  19. bool IsSurfaceDamaged(const SurfaceId& surface_id) const;
  20. bool IsSurfaceSubtreeDamaged(const SurfaceId& surface_id) const;
  21. const SurfaceId& last_created_surface_id() const {
  22. return last_created_surface_id_;
  23. }
  24. const SurfaceInfo& last_surface_info() const { return last_surface_info_; }
  25. void set_damage_display(bool damage_display) {
  26. damage_display_ = damage_display;
  27. }
  28. void Reset();
  29. private:
  30. // SurfaceObserver implementation:
  31. bool OnSurfaceDamaged(const SurfaceId& surface_id,
  32. const BeginFrameAck& ack) override;
  33. void OnFirstSurfaceActivation(const SurfaceInfo& surface_info) override;
  34. void OnSurfaceActivated(const SurfaceId& surface_id) override;
  35. void OnSurfaceDestroyed(const SurfaceId& surface_id) override {}
  36. void OnSurfaceMarkedForDestruction(const SurfaceId& surface_id) override {}
  37. void OnSurfaceDamageExpected(const SurfaceId& surface_id,
  38. const BeginFrameArgs& args) override {}
  39. bool damage_display_;
  40. BeginFrameAck last_ack_;
  41. base::flat_set<SurfaceId> damaged_surfaces_;
  42. base::flat_set<SurfaceId> surface_subtree_damaged_;
  43. SurfaceId last_created_surface_id_;
  44. SurfaceInfo last_surface_info_;
  45. };
  46. } // namespace viz
  47. #endif // COMPONENTS_VIZ_TEST_FAKE_SURFACE_OBSERVER_H_