1 // Copyright 2018 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 
5 #include "cc/layers/deadline_policy.h"
6 
7 #include <limits>
8 
9 namespace cc {
10 
11 // static
UseExistingDeadline()12 DeadlinePolicy DeadlinePolicy::UseExistingDeadline() {
13   return DeadlinePolicy(Type::kUseExistingDeadline);
14 }
15 
16 // static
UseDefaultDeadline()17 DeadlinePolicy DeadlinePolicy::UseDefaultDeadline() {
18   return DeadlinePolicy(Type::kUseDefaultDeadline);
19 }
20 
21 // static
UseSpecifiedDeadline(uint32_t deadline_in_frames)22 DeadlinePolicy DeadlinePolicy::UseSpecifiedDeadline(
23     uint32_t deadline_in_frames) {
24   return DeadlinePolicy(Type::kUseSpecifiedDeadline, deadline_in_frames);
25 }
26 
27 // static
UseInfiniteDeadline()28 DeadlinePolicy DeadlinePolicy::UseInfiniteDeadline() {
29   return DeadlinePolicy(Type::kUseInfiniteDeadline,
30                         std::numeric_limits<uint32_t>::max());
31 }
32 
DeadlinePolicy(Type policy_type,base::Optional<uint32_t> deadline_in_frames)33 DeadlinePolicy::DeadlinePolicy(Type policy_type,
34                                base::Optional<uint32_t> deadline_in_frames)
35     : policy_type_(policy_type), deadline_in_frames_(deadline_in_frames) {}
36 
37 DeadlinePolicy::DeadlinePolicy(const DeadlinePolicy& other) = default;
38 
39 }  // namespace cc
40