Chromium Code Reviews

Side by Side Diff: webkit/common/gpu/context_provider_in_process.h

Issue 1102673007: content: Move the remaining source files of webkit/ over here. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: REBASE Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
« no previous file with comments | « webkit/common/gpu/OWNERS ('k') | webkit/common/gpu/context_provider_in_process.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2013 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 #ifndef WEBKIT_COMMON_GPU_CONTEXT_PROVIDER_IN_PROCESS_H_
6 #define WEBKIT_COMMON_GPU_CONTEXT_PROVIDER_IN_PROCESS_H_
7
8 #include <string>
9
10 #include "base/macros.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "base/synchronization/lock.h"
13 #include "base/threading/thread_checker.h"
14 #include "cc/blink/context_provider_web_context.h"
15 #include "webkit/common/gpu/webkit_gpu_export.h"
16
17 namespace blink { class WebGraphicsContext3D; }
18
19 namespace gpu_blink {
20 class WebGraphicsContext3DInProcessCommandBufferImpl;
21 }
22
23 namespace webkit {
24 namespace gpu {
25 class GrContextForWebGraphicsContext3D;
26
27 class WEBKIT_GPU_EXPORT ContextProviderInProcess
28 : NON_EXPORTED_BASE(public cc_blink::ContextProviderWebContext) {
29 public:
30 static scoped_refptr<ContextProviderInProcess> Create(
31 scoped_ptr<gpu_blink::WebGraphicsContext3DInProcessCommandBufferImpl>
32 context3d,
33 const std::string& debug_name);
34
35 // Uses default attributes for creating an offscreen context.
36 static scoped_refptr<ContextProviderInProcess> CreateOffscreen(
37 bool lose_context_when_out_of_memory);
38
39 private:
40 ContextProviderInProcess(
41 scoped_ptr<gpu_blink::WebGraphicsContext3DInProcessCommandBufferImpl>
42 context3d,
43 const std::string& debug_name);
44 ~ContextProviderInProcess() override;
45
46 // cc_blink::ContextProviderWebContext:
47 blink::WebGraphicsContext3D* WebContext3D() override;
48
49 // cc::ContextProvider:
50 bool BindToCurrentThread() override;
51 void DetachFromThread() override;
52 Capabilities ContextCapabilities() override;
53 ::gpu::gles2::GLES2Interface* ContextGL() override;
54 ::gpu::ContextSupport* ContextSupport() override;
55 class GrContext* GrContext() override;
56 void SetupLock() override;
57 base::Lock* GetLock() override;
58 bool IsContextLost() override;
59 void VerifyContexts() override;
60 void DeleteCachedResources() override;
61 bool DestroyedOnMainThread() override;
62 void SetLostContextCallback(
63 const LostContextCallback& lost_context_callback) override;
64 void SetMemoryPolicyChangedCallback(
65 const MemoryPolicyChangedCallback& memory_policy_changed_callback)
66 override;
67
68 void OnLostContext();
69 void InitializeCapabilities();
70
71 base::ThreadChecker main_thread_checker_;
72 base::ThreadChecker context_thread_checker_;
73
74 scoped_ptr<gpu_blink::WebGraphicsContext3DInProcessCommandBufferImpl>
75 context3d_;
76 scoped_ptr<GrContextForWebGraphicsContext3D> gr_context_;
77
78 LostContextCallback lost_context_callback_;
79
80 base::Lock destroyed_lock_;
81 bool destroyed_;
82
83 base::Lock context_lock_;
84 std::string debug_name_;
85 class LostContextCallbackProxy;
86 scoped_ptr<LostContextCallbackProxy> lost_context_callback_proxy_;
87
88 cc::ContextProvider::Capabilities capabilities_;
89
90 DISALLOW_COPY_AND_ASSIGN(ContextProviderInProcess);
91 };
92
93 } // namespace gpu
94 } // namespace webkit
95
96 #endif // WEBKIT_COMMON_GPU_CONTEXT_PROVIDER_IN_PROCESS_H_
OLDNEW
« no previous file with comments | « webkit/common/gpu/OWNERS ('k') | webkit/common/gpu/context_provider_in_process.cc » ('j') | no next file with comments »

Powered by Google App Engine