OLD | NEW |
| (Empty) |
1 // Copyright 2011 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 "config.h" | |
6 | |
7 #include "WebCompositorImpl.h" | |
8 | |
9 #include "CCLayerTreeHost.h" | |
10 #include "CCProxy.h" | |
11 #include "CCSettings.h" | |
12 #include "CCThreadImpl.h" | |
13 #include <public/Platform.h> | |
14 #include <wtf/ThreadingPrimitives.h> | |
15 | |
16 using namespace WebCore; | |
17 | |
18 namespace WebKit { | |
19 | |
20 bool WebCompositorImpl::s_initialized = false; | |
21 CCThread* WebCompositorImpl::s_mainThread = 0; | |
22 CCThread* WebCompositorImpl::s_implThread = 0; | |
23 | |
24 void WebCompositor::initialize(WebThread* implThread) | |
25 { | |
26 WebCompositorImpl::initialize(implThread); | |
27 } | |
28 | |
29 bool WebCompositor::threadingEnabled() | |
30 { | |
31 return WebCompositorImpl::threadingEnabled(); | |
32 } | |
33 | |
34 void WebCompositor::shutdown() | |
35 { | |
36 WebCompositorImpl::shutdown(); | |
37 CCSettings::reset(); | |
38 } | |
39 | |
40 void WebCompositor::setPerTilePaintingEnabled(bool enabled) | |
41 { | |
42 ASSERT(!WebCompositorImpl::initialized()); | |
43 CCSettings::setPerTilePaintingEnabled(enabled); | |
44 } | |
45 | |
46 void WebCompositor::setPartialSwapEnabled(bool enabled) | |
47 { | |
48 ASSERT(!WebCompositorImpl::initialized()); | |
49 CCSettings::setPartialSwapEnabled(enabled); | |
50 } | |
51 | |
52 void WebCompositor::setAcceleratedAnimationEnabled(bool enabled) | |
53 { | |
54 ASSERT(!WebCompositorImpl::initialized()); | |
55 CCSettings::setAcceleratedAnimationEnabled(enabled); | |
56 } | |
57 | |
58 void WebCompositorImpl::initialize(WebThread* implThread) | |
59 { | |
60 ASSERT(!s_initialized); | |
61 s_initialized = true; | |
62 | |
63 s_mainThread = CCThreadImpl::create(WebKit::Platform::current()->currentThre
ad()).leakPtr(); | |
64 CCProxy::setMainThread(s_mainThread); | |
65 if (implThread) { | |
66 s_implThread = CCThreadImpl::create(implThread).leakPtr(); | |
67 CCProxy::setImplThread(s_implThread); | |
68 } else | |
69 CCProxy::setImplThread(0); | |
70 } | |
71 | |
72 bool WebCompositorImpl::threadingEnabled() | |
73 { | |
74 return s_implThread; | |
75 } | |
76 | |
77 bool WebCompositorImpl::initialized() | |
78 { | |
79 return s_initialized; | |
80 } | |
81 | |
82 void WebCompositorImpl::shutdown() | |
83 { | |
84 ASSERT(s_initialized); | |
85 ASSERT(!CCLayerTreeHost::anyLayerTreeHostInstanceExists()); | |
86 | |
87 if (s_implThread) { | |
88 delete s_implThread; | |
89 s_implThread = 0; | |
90 } | |
91 delete s_mainThread; | |
92 s_mainThread = 0; | |
93 CCProxy::setImplThread(0); | |
94 CCProxy::setMainThread(0); | |
95 s_initialized = false; | |
96 } | |
97 | |
98 } | |
OLD | NEW |