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

Side by Side Diff: gpu/command_buffer/common/gpu_control.h

Issue 235563002: gpu: Separate GpuControlService from GpuControl (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove MailboxManager Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 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 GPU_COMMAND_BUFFER_COMMON_GPU_CONTROL_H_
6 #define GPU_COMMAND_BUFFER_COMMON_GPU_CONTROL_H_
7
8 #include <vector>
9
10 #include "base/callback.h"
11 #include "gpu/command_buffer/common/capabilities.h"
12 #include "gpu/command_buffer/common/mailbox.h"
13 #include "gpu/command_buffer/common/types.h"
14 #include "gpu/gpu_export.h"
15
16 namespace gfx {
17 class GpuMemoryBuffer;
18 }
19
20 namespace gpu {
21 struct ManagedMemoryStats;
22
23 // Common interface for GpuControl implementations.
24 class GPU_EXPORT GpuControl {
25 public:
26 GpuControl() {}
27 virtual ~GpuControl() {}
28
29 virtual Capabilities GetCapabilities() = 0;
30
31 // Create a gpu memory buffer of the given dimensions and format. Returns
32 // its ID or -1 on error.
33 virtual gfx::GpuMemoryBuffer* CreateGpuMemoryBuffer(
34 size_t width,
35 size_t height,
36 unsigned internalformat,
37 int32* id) = 0;
38
39 // Destroy a gpu memory buffer. The ID must be positive.
40 virtual void DestroyGpuMemoryBuffer(int32 id) = 0;
41
42 // Inserts a sync point, returning its ID. Sync point IDs are global and can
43 // be used for cross-context synchronization.
44 virtual uint32 InsertSyncPoint() = 0;
45
46 // Runs |callback| when a sync point is reached.
47 virtual void SignalSyncPoint(uint32 sync_point,
48 const base::Closure& callback) = 0;
49
50 // Runs |callback| when a query created via glCreateQueryEXT() has cleared
51 // passed the glEndQueryEXT() point.
52 virtual void SignalQuery(uint32 query, const base::Closure& callback) = 0;
53
54 virtual void SetSurfaceVisible(bool visible) = 0;
55
56 virtual void SendManagedMemoryStats(const ManagedMemoryStats& stats) = 0;
57
58 // Invokes the callback once the context has been flushed.
59 virtual void Echo(const base::Closure& callback) = 0;
60
61 // Attaches an external stream to the texture given by |texture_id| and
62 // returns a stream identifier.
63 virtual uint32 CreateStreamTexture(uint32 texture_id) = 0;
64
65 private:
66 DISALLOW_COPY_AND_ASSIGN(GpuControl);
67 };
68
69 } // namespace gpu
70
71 #endif // GPU_COMMAND_BUFFER_COMMON_GPU_CONTROL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698