begin_frame_args_test.cc 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. // Copyright 2014 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. #include "components/viz/test/begin_frame_args_test.h"
  5. #include <stdint.h>
  6. #include "base/time/tick_clock.h"
  7. #include "base/time/time.h"
  8. #include "components/viz/common/frame_sinks/begin_frame_args.h"
  9. namespace viz {
  10. BeginFrameArgs CreateBeginFrameArgsForTesting(
  11. BeginFrameArgs::CreationLocation location,
  12. uint64_t source_id,
  13. uint64_t sequence_number) {
  14. return CreateBeginFrameArgsForTesting(location, source_id, sequence_number,
  15. base::TimeTicks::Now());
  16. }
  17. BeginFrameArgs CreateBeginFrameArgsForTesting(
  18. BeginFrameArgs::CreationLocation location,
  19. uint64_t source_id,
  20. uint64_t sequence_number,
  21. base::TimeTicks frame_time) {
  22. return BeginFrameArgs::Create(
  23. location, source_id, sequence_number, frame_time,
  24. frame_time + BeginFrameArgs::DefaultInterval() -
  25. BeginFrameArgs::DefaultEstimatedDisplayDrawTime(
  26. BeginFrameArgs::DefaultInterval()),
  27. BeginFrameArgs::DefaultInterval(), BeginFrameArgs::NORMAL);
  28. }
  29. BeginFrameArgs CreateBeginFrameArgsForTesting(
  30. BeginFrameArgs::CreationLocation location,
  31. uint64_t source_id,
  32. uint64_t sequence_number,
  33. int64_t frame_time,
  34. int64_t deadline,
  35. int64_t interval) {
  36. return BeginFrameArgs::Create(
  37. location, source_id, sequence_number,
  38. base::TimeTicks() + base::Microseconds(frame_time),
  39. base::TimeTicks() + base::Microseconds(deadline),
  40. base::Microseconds(interval), BeginFrameArgs::NORMAL);
  41. }
  42. BeginFrameArgs CreateBeginFrameArgsForTesting(
  43. BeginFrameArgs::CreationLocation location,
  44. uint64_t source_id,
  45. uint64_t sequence_number,
  46. int64_t frame_time,
  47. int64_t deadline,
  48. int64_t interval,
  49. BeginFrameArgs::BeginFrameArgsType type) {
  50. return BeginFrameArgs::Create(
  51. location, source_id, sequence_number,
  52. base::TimeTicks() + base::Microseconds(frame_time),
  53. base::TimeTicks() + base::Microseconds(deadline),
  54. base::Microseconds(interval), type);
  55. }
  56. BeginFrameArgs CreateBeginFrameArgsForTesting(
  57. BeginFrameArgs::CreationLocation location,
  58. uint64_t source_id,
  59. uint64_t sequence_number,
  60. const base::TickClock* now_src) {
  61. base::TimeTicks now = now_src->NowTicks();
  62. return BeginFrameArgs::Create(
  63. location, source_id, sequence_number, now,
  64. now + BeginFrameArgs::DefaultInterval() -
  65. BeginFrameArgs::DefaultEstimatedDisplayDrawTime(
  66. BeginFrameArgs::DefaultInterval()),
  67. BeginFrameArgs::DefaultInterval(), BeginFrameArgs::NORMAL);
  68. }
  69. bool operator==(const BeginFrameArgs& lhs, const BeginFrameArgs& rhs) {
  70. return (lhs.type == rhs.type) && (lhs.frame_id == rhs.frame_id) &&
  71. (lhs.frame_time == rhs.frame_time) && (lhs.deadline == rhs.deadline) &&
  72. (lhs.interval == rhs.interval) &&
  73. (lhs.frames_throttled_since_last == rhs.frames_throttled_since_last);
  74. }
  75. ::std::ostream& operator<<(::std::ostream& os, const BeginFrameArgs& args) {
  76. PrintTo(args, &os);
  77. return os;
  78. }
  79. void PrintTo(const BeginFrameArgs& args, ::std::ostream* os) {
  80. *os << "BeginFrameArgs(" << BeginFrameArgs::TypeToString(args.type) << ", "
  81. << args.frame_id.source_id << ", " << args.frame_id.sequence_number
  82. << ", " << args.frame_time.since_origin().InMicroseconds() << ", "
  83. << args.deadline.since_origin().InMicroseconds() << ", "
  84. << args.interval.InMicroseconds() << "us, "
  85. << args.frames_throttled_since_last << ")";
  86. }
  87. bool operator==(const BeginFrameAck& lhs, const BeginFrameAck& rhs) {
  88. return (lhs.frame_id == rhs.frame_id) && (lhs.has_damage == rhs.has_damage);
  89. }
  90. ::std::ostream& operator<<(::std::ostream& os, const BeginFrameAck& args) {
  91. PrintTo(args, &os);
  92. return os;
  93. }
  94. void PrintTo(const BeginFrameAck& ack, ::std::ostream* os) {
  95. *os << "BeginFrameAck(" << ack.frame_id.source_id << ", "
  96. << ack.frame_id.sequence_number << ", " << ack.has_damage << ")";
  97. }
  98. } // namespace viz