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

Side by Side Diff: android_webview/browser/shared_renderer_state.h

Issue 599633004: Android WebView: fix missing an invalidate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2125
Patch Set: 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 ANDROID_WEBVIEW_BROWSER_SHARED_RENDERER_STATE_H_ 5 #ifndef ANDROID_WEBVIEW_BROWSER_SHARED_RENDERER_STATE_H_
6 #define ANDROID_WEBVIEW_BROWSER_SHARED_RENDERER_STATE_H_ 6 #define ANDROID_WEBVIEW_BROWSER_SHARED_RENDERER_STATE_H_
7 7
8 #include "android_webview/browser/parent_compositor_draw_constraints.h" 8 #include "android_webview/browser/parent_compositor_draw_constraints.h"
9 #include "base/cancelable_callback.h" 9 #include "base/cancelable_callback.h"
10 #include "base/memory/weak_ptr.h" 10 #include "base/memory/weak_ptr.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 BrowserViewRendererClient* client); 50 BrowserViewRendererClient* client);
51 ~SharedRendererState(); 51 ~SharedRendererState();
52 52
53 void ClientRequestDrawGL(); 53 void ClientRequestDrawGL();
54 void DidDrawGLProcess(); 54 void DidDrawGLProcess();
55 55
56 void SetDrawGLInput(scoped_ptr<DrawGLInput> input); 56 void SetDrawGLInput(scoped_ptr<DrawGLInput> input);
57 scoped_ptr<DrawGLInput> PassDrawGLInput(); 57 scoped_ptr<DrawGLInput> PassDrawGLInput();
58 58
59 bool IsInsideHardwareRelease() const; 59 bool IsInsideHardwareRelease() const;
60 void UpdateDrawConstraints( 60 // Returns true if the draw constraints are updated.
61 bool UpdateDrawConstraints(
61 const ParentCompositorDrawConstraints& parent_draw_constraints); 62 const ParentCompositorDrawConstraints& parent_draw_constraints);
62 void PostExternalDrawConstraintsToChildCompositor( 63 void PostExternalDrawConstraintsToChildCompositor(
63 const ParentCompositorDrawConstraints& parent_draw_constraints); 64 const ParentCompositorDrawConstraints& parent_draw_constraints);
64 65
65 const ParentCompositorDrawConstraints ParentDrawConstraints() const; 66 const ParentCompositorDrawConstraints ParentDrawConstraints() const;
66 67
67 void SetSharedContext(gpu::GLInProcessContext* context); 68 void SetSharedContext(gpu::GLInProcessContext* context);
68 gpu::GLInProcessContext* GetSharedContext() const; 69 gpu::GLInProcessContext* GetSharedContext() const;
69 70
71 void SetForceInvalidateOnNextDrawGL(
72 bool needs_force_invalidate_on_next_draw_gl);
73 bool NeedsForceInvalidateOnNextDrawGL() const;
74
70 void InsertReturnedResources(const cc::ReturnedResourceArray& resources); 75 void InsertReturnedResources(const cc::ReturnedResourceArray& resources);
71 void SwapReturnedResources(cc::ReturnedResourceArray* resources); 76 void SwapReturnedResources(cc::ReturnedResourceArray* resources);
72 bool ReturnedResourcesEmpty() const; 77 bool ReturnedResourcesEmpty() const;
73 78
74 private: 79 private:
75 friend class InsideHardwareReleaseReset; 80 friend class InsideHardwareReleaseReset;
76 friend class internal::RequestDrawGLTracker; 81 friend class internal::RequestDrawGLTracker;
77 82
78 void ResetRequestDrawGLCallback(); 83 void ResetRequestDrawGLCallback();
79 void ClientRequestDrawGLOnUIThread(); 84 void ClientRequestDrawGLOnUIThread();
80 void UpdateParentDrawConstraintsOnUIThread(); 85 void UpdateParentDrawConstraintsOnUIThread();
81 void SetInsideHardwareRelease(bool inside); 86 void SetInsideHardwareRelease(bool inside);
82 87
83 scoped_refptr<base::MessageLoopProxy> ui_loop_; 88 scoped_refptr<base::MessageLoopProxy> ui_loop_;
84 BrowserViewRendererClient* client_on_ui_; 89 BrowserViewRendererClient* client_on_ui_;
85 base::WeakPtrFactory<SharedRendererState> weak_factory_on_ui_thread_; 90 base::WeakPtrFactory<SharedRendererState> weak_factory_on_ui_thread_;
86 base::WeakPtr<SharedRendererState> ui_thread_weak_ptr_; 91 base::WeakPtr<SharedRendererState> ui_thread_weak_ptr_;
87 base::CancelableClosure request_draw_gl_cancelable_closure_; 92 base::CancelableClosure request_draw_gl_cancelable_closure_;
88 93
89 // Accessed by both UI and RT thread. 94 // Accessed by both UI and RT thread.
90 mutable base::Lock lock_; 95 mutable base::Lock lock_;
91 scoped_ptr<DrawGLInput> draw_gl_input_; 96 scoped_ptr<DrawGLInput> draw_gl_input_;
92 bool inside_hardware_release_; 97 bool inside_hardware_release_;
98 bool needs_force_invalidate_on_next_draw_gl_;
93 ParentCompositorDrawConstraints parent_draw_constraints_; 99 ParentCompositorDrawConstraints parent_draw_constraints_;
94 gpu::GLInProcessContext* share_context_; 100 gpu::GLInProcessContext* share_context_;
95 cc::ReturnedResourceArray returned_resources_; 101 cc::ReturnedResourceArray returned_resources_;
96 base::Closure request_draw_gl_closure_; 102 base::Closure request_draw_gl_closure_;
97 103
98 DISALLOW_COPY_AND_ASSIGN(SharedRendererState); 104 DISALLOW_COPY_AND_ASSIGN(SharedRendererState);
99 }; 105 };
100 106
101 class InsideHardwareReleaseReset { 107 class InsideHardwareReleaseReset {
102 public: 108 public:
103 explicit InsideHardwareReleaseReset( 109 explicit InsideHardwareReleaseReset(
104 SharedRendererState* shared_renderer_state); 110 SharedRendererState* shared_renderer_state);
105 ~InsideHardwareReleaseReset(); 111 ~InsideHardwareReleaseReset();
106 112
107 private: 113 private:
108 SharedRendererState* shared_renderer_state_; 114 SharedRendererState* shared_renderer_state_;
109 115
110 DISALLOW_COPY_AND_ASSIGN(InsideHardwareReleaseReset); 116 DISALLOW_COPY_AND_ASSIGN(InsideHardwareReleaseReset);
111 }; 117 };
112 118
113 } // namespace android_webview 119 } // namespace android_webview
114 120
115 #endif // ANDROID_WEBVIEW_BROWSER_SHARED_RENDERER_STATE_H_ 121 #endif // ANDROID_WEBVIEW_BROWSER_SHARED_RENDERER_STATE_H_
OLDNEW
« 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