Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / cc / output / gl_renderer.h
index 13a9060..a6a9b2e 100644 (file)
@@ -7,6 +7,7 @@
 
 #include "base/cancelable_callback.h"
 #include "cc/base/cc_export.h"
+#include "cc/base/scoped_ptr_deque.h"
 #include "cc/base/scoped_ptr_vector.h"
 #include "cc/output/direct_renderer.h"
 #include "cc/output/gl_renderer_draw_cache.h"
@@ -44,6 +45,8 @@ class ScopedEnsureFramebufferAllocation;
 // Class that handles drawing of composited render layers using GL.
 class CC_EXPORT GLRenderer : public DirectRenderer {
  public:
+  class ScopedUseGrContext;
+
   static scoped_ptr<GLRenderer> Create(
       RendererClient* client,
       const LayerTreeSettings* settings,
@@ -67,8 +70,6 @@ class CC_EXPORT GLRenderer : public DirectRenderer {
 
   virtual bool IsContextLost() OVERRIDE;
 
-  virtual void SetVisible(bool visible) OVERRIDE;
-
   virtual void SendManagedMemoryStats(size_t bytes_visible,
                                       size_t bytes_visible_and_nearby,
                                       size_t bytes_allocated) OVERRIDE;
@@ -86,6 +87,8 @@ class CC_EXPORT GLRenderer : public DirectRenderer {
              TextureMailboxDeleter* texture_mailbox_deleter,
              int highp_threshold_min);
 
+  virtual void DidChangeVisibility() OVERRIDE;
+
   bool IsBackbufferDiscarded() const { return is_backbuffer_discarded_; }
   void InitializeGrContext();
 
@@ -215,6 +218,8 @@ class CC_EXPORT GLRenderer : public DirectRenderer {
                       bool success);
 
   void ReinitializeGLState();
+  void RestoreGLState();
+  void RestoreFramebuffer(DrawingFrame* frame);
 
   virtual void DiscardBackbuffer() OVERRIDE;
   virtual void EnsureBackbuffer() OVERRIDE;
@@ -416,7 +421,6 @@ class CC_EXPORT GLRenderer : public DirectRenderer {
   gfx::Rect viewport_;
   bool is_backbuffer_discarded_;
   bool is_using_bind_uniform_;
-  bool visible_;
   bool is_scissor_enabled_;
   bool scissor_rect_needs_reset_;
   bool stencil_shadow_;
@@ -431,7 +435,11 @@ class CC_EXPORT GLRenderer : public DirectRenderer {
 
   scoped_ptr<ResourceProvider::ScopedWriteLockGL> current_framebuffer_lock_;
 
-  scoped_refptr<ResourceProvider::Fence> last_swap_fence_;
+  class SyncQuery;
+  ScopedPtrDeque<SyncQuery> pending_sync_queries_;
+  ScopedPtrDeque<SyncQuery> available_sync_queries_;
+  scoped_ptr<SyncQuery> current_sync_query_;
+  bool use_sync_query_;
 
   SkBitmap on_demand_tile_raster_bitmap_;
   ResourceProvider::ResourceId on_demand_tile_raster_resource_id_;