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

Unified Diff: android_webview/browser/shared_renderer_state.h

Issue 655813004: Part 1: Refactor Android WebView graphics code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@refactor
Patch Set: comments Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « android_webview/browser/hardware_renderer.cc ('k') | android_webview/browser/shared_renderer_state.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: android_webview/browser/shared_renderer_state.h
diff --git a/android_webview/browser/shared_renderer_state.h b/android_webview/browser/shared_renderer_state.h
index 29d05c2b18fd11b6a222ae175b0e8c0b4cdef5c4..270d3182f7fcf95c5a50f96001919cd388316a65 100644
--- a/android_webview/browser/shared_renderer_state.h
+++ b/android_webview/browser/shared_renderer_state.h
@@ -8,7 +8,7 @@
#include "android_webview/browser/parent_compositor_draw_constraints.h"
#include "base/cancelable_callback.h"
#include "base/memory/weak_ptr.h"
-#include "base/message_loop/message_loop_proxy.h"
+#include "base/single_thread_task_runner.h"
#include "base/synchronization/lock.h"
#include "cc/output/compositor_frame.h"
#include "cc/output/compositor_frame_ack.h"
@@ -21,44 +21,48 @@ namespace internal {
class RequestDrawGLTracker;
}
-class BrowserViewRendererClient;
+class BrowserViewRenderer;
class InsideHardwareReleaseReset;
// This class is used to pass data between UI thread and RenderThread.
+// TODO(hush): this class should own HardwareRenderer.
class SharedRendererState {
public:
- SharedRendererState(scoped_refptr<base::MessageLoopProxy> ui_loop,
- BrowserViewRendererClient* client);
+ SharedRendererState(
+ const scoped_refptr<base::SingleThreadTaskRunner>& ui_loop,
+ BrowserViewRenderer* browser_view_renderer);
~SharedRendererState();
void ClientRequestDrawGL();
void DidDrawGLProcess();
- void SetScrollOffset(gfx::Vector2d scroll_offset);
- gfx::Vector2d GetScrollOffset();
+ void SetScrollOffsetOnUI(gfx::Vector2d scroll_offset);
+ gfx::Vector2d GetScrollOffsetOnRT();
- bool HasCompositorFrame() const;
- void SetCompositorFrame(scoped_ptr<cc::CompositorFrame> frame,
- bool force_commit);
+ bool HasCompositorFrameOnUI() const;
+ void SetCompositorFrameOnUI(scoped_ptr<cc::CompositorFrame> frame,
+ bool force_commit);
+ // Right now this method is called on both UI and RT.
+ // TODO(hush): Make it only called from RT.
scoped_ptr<cc::CompositorFrame> PassCompositorFrame();
- bool ForceCommit() const;
+ bool ForceCommitOnRT() const;
+ // TODO(hush): this will be private after DrawGL moves to this class.
bool IsInsideHardwareRelease() const;
// Returns true if the draw constraints are updated.
- bool UpdateDrawConstraints(
+ bool UpdateDrawConstraintsOnRT(
const ParentCompositorDrawConstraints& parent_draw_constraints);
- void PostExternalDrawConstraintsToChildCompositor(
+ void PostExternalDrawConstraintsToChildCompositorOnRT(
const ParentCompositorDrawConstraints& parent_draw_constraints);
- void DidSkipCommitFrame();
+ ParentCompositorDrawConstraints GetParentDrawConstraintsOnUI() const;
- const ParentCompositorDrawConstraints ParentDrawConstraints() const;
-
- void SetForceInvalidateOnNextDrawGL(
+ void DidSkipCommitFrameOnRT();
+ void SetForceInvalidateOnNextDrawGLOnUI(
bool needs_force_invalidate_on_next_draw_gl);
- bool NeedsForceInvalidateOnNextDrawGL() const;
+ bool NeedsForceInvalidateOnNextDrawGLOnUI() const;
- void InsertReturnedResources(const cc::ReturnedResourceArray& resources);
- void SwapReturnedResources(cc::ReturnedResourceArray* resources);
+ void InsertReturnedResourcesOnRT(const cc::ReturnedResourceArray& resources);
+ void SwapReturnedResourcesOnUI(cc::ReturnedResourceArray* resources);
bool ReturnedResourcesEmpty() const;
private:
@@ -68,11 +72,11 @@ class SharedRendererState {
void ResetRequestDrawGLCallback();
void ClientRequestDrawGLOnUIThread();
void UpdateParentDrawConstraintsOnUIThread();
- void DidSkipCommitFrameOnUIThread();
+ void DidSkipCommitFrameOnUI();
void SetInsideHardwareRelease(bool inside);
- scoped_refptr<base::MessageLoopProxy> ui_loop_;
- BrowserViewRendererClient* client_on_ui_;
+ scoped_refptr<base::SingleThreadTaskRunner> ui_loop_;
+ BrowserViewRenderer* browser_view_renderer_;
base::WeakPtr<SharedRendererState> ui_thread_weak_ptr_;
base::CancelableClosure request_draw_gl_cancelable_closure_;
« no previous file with comments | « android_webview/browser/hardware_renderer.cc ('k') | android_webview/browser/shared_renderer_state.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698