OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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_FRAMEBUFFER_MANAGER_H_ | 5 #ifndef GPU_COMMAND_BUFFER_SERVICE_FRAMEBUFFER_MANAGER_H_ |
6 #define GPU_COMMAND_BUFFER_SERVICE_FRAMEBUFFER_MANAGER_H_ | 6 #define GPU_COMMAND_BUFFER_SERVICE_FRAMEBUFFER_MANAGER_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 virtual ~TextureDetachObserver(); | 248 virtual ~TextureDetachObserver(); |
249 | 249 |
250 virtual void OnTextureRefDetachedFromFramebuffer(TextureRef* texture) = 0; | 250 virtual void OnTextureRefDetachedFromFramebuffer(TextureRef* texture) = 0; |
251 | 251 |
252 private: | 252 private: |
253 DISALLOW_COPY_AND_ASSIGN(TextureDetachObserver); | 253 DISALLOW_COPY_AND_ASSIGN(TextureDetachObserver); |
254 }; | 254 }; |
255 | 255 |
256 FramebufferManager(uint32 max_draw_buffers, | 256 FramebufferManager(uint32 max_draw_buffers, |
257 uint32 max_color_attachments, | 257 uint32 max_color_attachments, |
258 ContextGroup::ContextType context_type, | 258 ContextType context_type, |
259 const scoped_refptr<FramebufferCompletenessCache>& | 259 const scoped_refptr<FramebufferCompletenessCache>& |
260 framebuffer_combo_complete_cache); | 260 framebuffer_combo_complete_cache); |
261 ~FramebufferManager(); | 261 ~FramebufferManager(); |
262 | 262 |
263 // Must call before destruction. | 263 // Must call before destruction. |
264 void Destroy(bool have_context); | 264 void Destroy(bool have_context); |
265 | 265 |
266 // Creates a Framebuffer for the given framebuffer. | 266 // Creates a Framebuffer for the given framebuffer. |
267 void CreateFramebuffer(GLuint client_id, GLuint service_id); | 267 void CreateFramebuffer(GLuint client_id, GLuint service_id); |
268 | 268 |
(...skipping 26 matching lines...) Expand all Loading... |
295 } | 295 } |
296 | 296 |
297 void RemoveObserver(TextureDetachObserver* observer) { | 297 void RemoveObserver(TextureDetachObserver* observer) { |
298 texture_detach_observers_.erase( | 298 texture_detach_observers_.erase( |
299 std::remove(texture_detach_observers_.begin(), | 299 std::remove(texture_detach_observers_.begin(), |
300 texture_detach_observers_.end(), | 300 texture_detach_observers_.end(), |
301 observer), | 301 observer), |
302 texture_detach_observers_.end()); | 302 texture_detach_observers_.end()); |
303 } | 303 } |
304 | 304 |
305 ContextGroup::ContextType context_type() const { | 305 ContextType context_type() const { return context_type_; } |
306 return context_type_; | |
307 } | |
308 | 306 |
309 private: | 307 private: |
310 friend class Framebuffer; | 308 friend class Framebuffer; |
311 | 309 |
312 void StartTracking(Framebuffer* framebuffer); | 310 void StartTracking(Framebuffer* framebuffer); |
313 void StopTracking(Framebuffer* framebuffer); | 311 void StopTracking(Framebuffer* framebuffer); |
314 | 312 |
315 void OnTextureRefDetached(TextureRef* texture); | 313 void OnTextureRefDetached(TextureRef* texture); |
316 | 314 |
317 FramebufferCompletenessCache* GetFramebufferComboCompleteCache() { | 315 FramebufferCompletenessCache* GetFramebufferComboCompleteCache() { |
(...skipping 11 matching lines...) Expand all Loading... |
329 | 327 |
330 // Counts the number of Framebuffer allocated with 'this' as its manager. | 328 // Counts the number of Framebuffer allocated with 'this' as its manager. |
331 // Allows to check no Framebuffer will outlive this. | 329 // Allows to check no Framebuffer will outlive this. |
332 unsigned int framebuffer_count_; | 330 unsigned int framebuffer_count_; |
333 | 331 |
334 bool have_context_; | 332 bool have_context_; |
335 | 333 |
336 uint32 max_draw_buffers_; | 334 uint32 max_draw_buffers_; |
337 uint32 max_color_attachments_; | 335 uint32 max_color_attachments_; |
338 | 336 |
339 ContextGroup::ContextType context_type_; | 337 ContextType context_type_; |
340 | 338 |
341 typedef std::vector<TextureDetachObserver*> TextureDetachObserverVector; | 339 typedef std::vector<TextureDetachObserver*> TextureDetachObserverVector; |
342 TextureDetachObserverVector texture_detach_observers_; | 340 TextureDetachObserverVector texture_detach_observers_; |
343 | 341 |
344 scoped_refptr<FramebufferCompletenessCache> framebuffer_combo_complete_cache_; | 342 scoped_refptr<FramebufferCompletenessCache> framebuffer_combo_complete_cache_; |
345 | 343 |
346 DISALLOW_COPY_AND_ASSIGN(FramebufferManager); | 344 DISALLOW_COPY_AND_ASSIGN(FramebufferManager); |
347 }; | 345 }; |
348 | 346 |
349 } // namespace gles2 | 347 } // namespace gles2 |
350 } // namespace gpu | 348 } // namespace gpu |
351 | 349 |
352 #endif // GPU_COMMAND_BUFFER_SERVICE_FRAMEBUFFER_MANAGER_H_ | 350 #endif // GPU_COMMAND_BUFFER_SERVICE_FRAMEBUFFER_MANAGER_H_ |
OLD | NEW |