summaryrefslogtreecommitdiffstats
path: root/android_webview/browser/shared_renderer_state.h
diff options
context:
space:
mode:
Diffstat (limited to 'android_webview/browser/shared_renderer_state.h')
-rw-r--r--android_webview/browser/shared_renderer_state.h30
1 files changed, 25 insertions, 5 deletions
diff --git a/android_webview/browser/shared_renderer_state.h b/android_webview/browser/shared_renderer_state.h
index 7959541..8350c9d 100644
--- a/android_webview/browser/shared_renderer_state.h
+++ b/android_webview/browser/shared_renderer_state.h
@@ -7,28 +7,38 @@
#include "base/message_loop/message_loop_proxy.h"
#include "base/synchronization/lock.h"
+#include "cc/output/compositor_frame.h"
+#include "cc/output/compositor_frame_ack.h"
#include "content/public/browser/android/synchronous_compositor.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/vector2d.h"
+namespace cc {
+class CompositorFrameAck;
+}
+
+namespace gpu {
+class GLInProcessContext;
+}
+
namespace android_webview {
class BrowserViewRendererClient;
// Set by BrowserViewRenderer and read by HardwareRenderer.
struct DrawGLInput {
- unsigned int frame_id;
gfx::Rect global_visible_rect;
gfx::Vector2d scroll_offset;
int width;
int height;
+ cc::CompositorFrame frame;
DrawGLInput();
+ ~DrawGLInput();
};
// Set by HardwareRenderer and read by BrowserViewRenderer.
struct DrawGLResult {
- unsigned int frame_id;
bool clip_contains_visible_rect;
DrawGLResult();
@@ -58,8 +68,8 @@ class SharedRendererState {
void SetMemoryPolicyDirty(bool is_dirty);
bool IsMemoryPolicyDirty() const;
- void SetDrawGLInput(const DrawGLInput& input);
- DrawGLInput GetDrawGLInput() const;
+ void SetDrawGLInput(scoped_ptr<DrawGLInput> input);
+ scoped_ptr<DrawGLInput> PassDrawGLInput();
// Set by UI and read by RT.
void SetHardwareAllowed(bool allowed);
@@ -69,6 +79,14 @@ class SharedRendererState {
void SetHardwareInitialized(bool initialized);
bool IsHardwareInitialized() const;
+ void SetSharedContext(gpu::GLInProcessContext* context);
+ gpu::GLInProcessContext* GetSharedContext() const;
+
+ void ReturnResources(const cc::TransferableResourceArray& input);
+ void InsertReturnedResources(const cc::ReturnedResourceArray& resources);
+ void SwapReturnedResources(cc::ReturnedResourceArray* resources);
+ bool ReturnedResourcesEmpty() const;
+
private:
void ClientRequestDrawGLOnUIThread();
@@ -85,9 +103,11 @@ class SharedRendererState {
// Set to true when SetMemoryPolicy called with a different memory policy.
// Set to false when memory policy is read and enforced to compositor.
bool memory_policy_dirty_;
- DrawGLInput draw_gl_input_;
+ scoped_ptr<DrawGLInput> draw_gl_input_;
bool hardware_allowed_;
bool hardware_initialized_;
+ gpu::GLInProcessContext* share_context_;
+ cc::ReturnedResourceArray returned_resources_;
};
} // namespace android_webview