Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(232)

Side by Side Diff: content/browser/renderer_host/display_link_mac.cc

Issue 147493011: Use base::ScopedTypeRef for CGL types (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/display_link_mac.h" 5 #include "content/browser/renderer_host/display_link_mac.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 9
10 namespace content { 10 namespace content {
11 11
12 // static 12 // static
13 scoped_refptr<DisplayLinkMac> DisplayLinkMac::Create() { 13 scoped_refptr<DisplayLinkMac> DisplayLinkMac::Create() {
14 CVReturn ret = kCVReturnSuccess; 14 CVReturn ret = kCVReturnSuccess;
15 15
16 ScopedCVDisplayLinkRef display_link;
17 ret = CVDisplayLinkCreateWithActiveCGDisplays(display_link.ptr_for_init());
18 if (ret != kCVReturnSuccess) {
19 LOG(ERROR) << "CVDisplayLinkCreateWithActiveCGDisplays failed: " << ret;
20 return NULL;
21 }
22
16 scoped_refptr<DisplayLinkMac> display_link_mac; 23 scoped_refptr<DisplayLinkMac> display_link_mac;
17 { 24 display_link_mac = new DisplayLinkMac(display_link);
18 CVDisplayLinkRef display_link = NULL;
19 ret = CVDisplayLinkCreateWithActiveCGDisplays(&display_link);
20 if (ret != kCVReturnSuccess) {
21 LOG(ERROR) << "CVDisplayLinkCreateWithActiveCGDisplays failed: " << ret;
22 return NULL;
23 }
24 display_link_mac = new DisplayLinkMac(display_link);
25 }
26 25
27 ret = CVDisplayLinkSetOutputCallback( 26 ret = CVDisplayLinkSetOutputCallback(
28 display_link_mac->display_link_, 27 display_link_mac->display_link_,
29 &DisplayLinkCallback, 28 &DisplayLinkCallback,
30 display_link_mac.get()); 29 display_link_mac.get());
31 if (ret != kCVReturnSuccess) { 30 if (ret != kCVReturnSuccess) {
32 LOG(ERROR) << "CVDisplayLinkSetOutputCallback failed: " << ret; 31 LOG(ERROR) << "CVDisplayLinkSetOutputCallback failed: " << ret;
33 return NULL; 32 return NULL;
34 } 33 }
35 34
36 return display_link_mac; 35 return display_link_mac;
37 } 36 }
38 37
39 DisplayLinkMac::DisplayLinkMac(CVDisplayLinkRef display_link) 38 DisplayLinkMac::DisplayLinkMac(ScopedCVDisplayLinkRef display_link)
40 : display_link_(display_link), 39 : display_link_(display_link),
41 stop_timer_( 40 stop_timer_(
42 FROM_HERE, base::TimeDelta::FromSeconds(1), 41 FROM_HERE, base::TimeDelta::FromSeconds(1),
43 this, &DisplayLinkMac::StopDisplayLink), 42 this, &DisplayLinkMac::StopDisplayLink),
44 timebase_and_interval_valid_(false) { 43 timebase_and_interval_valid_(false) {
45 } 44 }
46 45
47 DisplayLinkMac::~DisplayLinkMac() { 46 DisplayLinkMac::~DisplayLinkMac() {
48 if (CVDisplayLinkIsRunning(display_link_)) 47 if (CVDisplayLinkIsRunning(display_link_))
49 CVDisplayLinkStop(display_link_); 48 CVDisplayLinkStop(display_link_);
50 CVDisplayLinkRelease(display_link_);
51 } 49 }
52 50
53 bool DisplayLinkMac::GetVSyncParameters( 51 bool DisplayLinkMac::GetVSyncParameters(
54 base::TimeTicks* timebase, base::TimeDelta* interval) { 52 base::TimeTicks* timebase, base::TimeDelta* interval) {
55 StartOrContinueDisplayLink(); 53 StartOrContinueDisplayLink();
56 54
57 base::AutoLock lock(lock_); 55 base::AutoLock lock(lock_);
58 if (!timebase_and_interval_valid_) 56 if (!timebase_and_interval_valid_)
59 return false; 57 return false;
60 58
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 CVOptionFlags flags_in, 114 CVOptionFlags flags_in,
117 CVOptionFlags* flags_out, 115 CVOptionFlags* flags_out,
118 void* context) { 116 void* context) {
119 DisplayLinkMac* display_link_mac = static_cast<DisplayLinkMac*>(context); 117 DisplayLinkMac* display_link_mac = static_cast<DisplayLinkMac*>(context);
120 display_link_mac->Tick(output_time); 118 display_link_mac->Tick(output_time);
121 return kCVReturnSuccess; 119 return kCVReturnSuccess;
122 } 120 }
123 121
124 } // content 122 } // content
125 123
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698