OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 #ifndef GPU_COMMAND_BUFFER_SERVICE_RENDERBUFFER_MANAGER_H_ | 5 #ifndef GPU_COMMAND_BUFFER_SERVICE_RENDERBUFFER_MANAGER_H_ |
6 #define GPU_COMMAND_BUFFER_SERVICE_RENDERBUFFER_MANAGER_H_ | 6 #define GPU_COMMAND_BUFFER_SERVICE_RENDERBUFFER_MANAGER_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 GLuint service_id_; | 68 GLuint service_id_; |
69 | 69 |
70 // Whether this renderbuffer has been cleared | 70 // Whether this renderbuffer has been cleared |
71 bool cleared_; | 71 bool cleared_; |
72 | 72 |
73 // Renderbuffer internalformat set through RenderbufferStorage(). | 73 // Renderbuffer internalformat set through RenderbufferStorage(). |
74 GLenum internal_format_; | 74 GLenum internal_format_; |
75 }; | 75 }; |
76 | 76 |
77 RenderbufferManager() { } | 77 RenderbufferManager() { } |
| 78 ~RenderbufferManager(); |
| 79 |
| 80 // Must call before destruction. |
| 81 void Destroy(bool have_context); |
78 | 82 |
79 // Creates a RenderbufferInfo for the given renderbuffer. | 83 // Creates a RenderbufferInfo for the given renderbuffer. |
80 void CreateRenderbufferInfo(GLuint client_id, GLuint service_id); | 84 void CreateRenderbufferInfo(GLuint client_id, GLuint service_id); |
81 | 85 |
82 // Gets the renderbuffer info for the given renderbuffer. | 86 // Gets the renderbuffer info for the given renderbuffer. |
83 RenderbufferInfo* GetRenderbufferInfo(GLuint client_id); | 87 RenderbufferInfo* GetRenderbufferInfo(GLuint client_id); |
84 | 88 |
85 // Removes a renderbuffer info for the given renderbuffer. | 89 // Removes a renderbuffer info for the given renderbuffer. |
86 void RemoveRenderbufferInfo(GLuint client_id); | 90 void RemoveRenderbufferInfo(GLuint client_id); |
87 | 91 |
88 // Gets a client id for a given service id. | 92 // Gets a client id for a given service id. |
89 bool GetClientId(GLuint service_id, GLuint* client_id) const; | 93 bool GetClientId(GLuint service_id, GLuint* client_id) const; |
90 | 94 |
91 private: | 95 private: |
92 // Info for each renderbuffer in the system. | 96 // Info for each renderbuffer in the system. |
93 // TODO(gman): Choose a faster container. | 97 // TODO(gman): Choose a faster container. |
94 typedef std::map<GLuint, RenderbufferInfo::Ref> RenderbufferInfoMap; | 98 typedef std::map<GLuint, RenderbufferInfo::Ref> RenderbufferInfoMap; |
95 RenderbufferInfoMap renderbuffer_infos_; | 99 RenderbufferInfoMap renderbuffer_infos_; |
96 | 100 |
97 DISALLOW_COPY_AND_ASSIGN(RenderbufferManager); | 101 DISALLOW_COPY_AND_ASSIGN(RenderbufferManager); |
98 }; | 102 }; |
99 | 103 |
100 } // namespace gles2 | 104 } // namespace gles2 |
101 } // namespace gpu | 105 } // namespace gpu |
102 | 106 |
103 #endif // GPU_COMMAND_BUFFER_SERVICE_RENDERBUFFER_MANAGER_H_ | 107 #endif // GPU_COMMAND_BUFFER_SERVICE_RENDERBUFFER_MANAGER_H_ |
104 | 108 |
105 | 109 |
OLD | NEW |