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

Side by Side Diff: gpu/command_buffer/client/buffer_tracker.h

Issue 10440019: Add support for GL_CHROMIUM_pixel_transfer_buffer_object. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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 (c) 2012 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_CLIENT_BUFFER_TRACKER_H_
6 #define GPU_COMMAND_BUFFER_CLIENT_BUFFER_TRACKER_H_
7
8 #include <GLES2/gl2.h>
9
10 #include <queue>
11 #include "../../gpu_export.h"
12 #include "../client/hash_tables.h"
13 #include "../common/gles2_cmd_format.h"
14
15 namespace gpu {
16
17 class CommandBufferHelper;
18 class MappedMemoryManager;
19
20 namespace gles2 {
21
22 // Tracks buffer objects for client side of command buffer.
23 class GPU_EXPORT BufferTracker {
24 public:
25 class GPU_EXPORT Buffer {
26 public:
27 Buffer(GLuint id, int32 shm_id, uint32 shm_offset, void* address)
28 : id_(id),
29 shm_id_(shm_id),
30 shm_offset_(shm_offset),
31 address_(address) {
32 }
33
34 GLenum id() const {
35 return id_;
36 }
37
38 int32 shm_id() const {
39 return shm_id_;
40 }
41
42 uint32 shm_offset() const {
43 return shm_offset_;
44 }
45
46 void* address() const {
47 return address_;
48 }
49
50 private:
51 friend class BufferTracker;
52 friend class BufferTrackerTest;
53
54 GLuint id_;
55 int32 shm_id_;
56 uint32 shm_offset_;
57 void* address_;
58 };
59
60 BufferTracker(MappedMemoryManager* manager);
61 ~BufferTracker();
62
63 Buffer* CreateBuffer(GLuint id, GLsizeiptr size);
64 Buffer* GetBuffer(GLuint id);
65 void RemoveBuffer(GLuint id);
66
67 private:
68 typedef gpu::hash_map<GLuint, Buffer*> BufferMap;
69
70 MappedMemoryManager* mapped_memory_;
71 BufferMap buffers_;
72
73 DISALLOW_COPY_AND_ASSIGN(BufferTracker);
74 };
75
76 } // namespace gles2
77 } // namespace gpu
78
79 #endif // GPU_COMMAND_BUFFER_CLIENT_BUFFER_TRACKER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698