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

Side by Side Diff: cc/output/output_surface.h

Issue 376683004: Pass resourceless software mode in BeginFrameArgs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comment, clang-format Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 CC_OUTPUT_OUTPUT_SURFACE_H_ 5 #ifndef CC_OUTPUT_OUTPUT_SURFACE_H_
6 #define CC_OUTPUT_OUTPUT_SURFACE_H_ 6 #define CC_OUTPUT_OUTPUT_SURFACE_H_
7 7
8 #include <deque> 8 #include <deque>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 // surface. Either of these may return a null pointer, but not both. 87 // surface. Either of these may return a null pointer, but not both.
88 // In the event of a lost context, the entire output surface should be 88 // In the event of a lost context, the entire output surface should be
89 // recreated. 89 // recreated.
90 scoped_refptr<ContextProvider> context_provider() const { 90 scoped_refptr<ContextProvider> context_provider() const {
91 return context_provider_.get(); 91 return context_provider_.get();
92 } 92 }
93 SoftwareOutputDevice* software_device() const { 93 SoftwareOutputDevice* software_device() const {
94 return software_device_.get(); 94 return software_device_.get();
95 } 95 }
96 96
97 // In the case where both the context3d and software_device are present
98 // (namely Android WebView), this is called to determine whether the software
99 // device should be used on the current frame.
100 virtual bool ForcedDrawToSoftwareDevice() const;
101
102 // Called by the compositor on the compositor thread. This is a place where 97 // Called by the compositor on the compositor thread. This is a place where
103 // thread-specific data for the output surface can be initialized, since from 98 // thread-specific data for the output surface can be initialized, since from
104 // this point on the output surface will only be used on the compositor 99 // this point on the output surface will only be used on the compositor
105 // thread. 100 // thread.
106 virtual bool BindToClient(OutputSurfaceClient* client); 101 virtual bool BindToClient(OutputSurfaceClient* client);
107 102
108 // This is called by the compositor on the compositor thread inside ReleaseGL 103 // This is called by the compositor on the compositor thread inside ReleaseGL
109 // in order to release the ContextProvider. Only used with 104 // in order to release the ContextProvider. Only used with
110 // deferred_gl_initialization capability. 105 // deferred_gl_initialization capability.
111 void ReleaseContextProvider(); 106 void ReleaseContextProvider();
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 void CommitVSyncParameters(base::TimeTicks timebase, 159 void CommitVSyncParameters(base::TimeTicks timebase,
165 base::TimeDelta interval); 160 base::TimeDelta interval);
166 161
167 void SetNeedsRedrawRect(const gfx::Rect& damage_rect); 162 void SetNeedsRedrawRect(const gfx::Rect& damage_rect);
168 void ReclaimResources(const CompositorFrameAck* ack); 163 void ReclaimResources(const CompositorFrameAck* ack);
169 void DidLoseOutputSurface(); 164 void DidLoseOutputSurface();
170 void SetExternalStencilTest(bool enabled); 165 void SetExternalStencilTest(bool enabled);
171 void SetExternalDrawConstraints(const gfx::Transform& transform, 166 void SetExternalDrawConstraints(const gfx::Transform& transform,
172 const gfx::Rect& viewport, 167 const gfx::Rect& viewport,
173 const gfx::Rect& clip, 168 const gfx::Rect& clip,
174 bool valid_for_tile_management); 169 bool resourceless_software_draw);
175 170
176 private: 171 private:
177 void SetUpContext3d(); 172 void SetUpContext3d();
178 void ResetContext3d(); 173 void ResetContext3d();
179 void SetMemoryPolicy(const ManagedMemoryPolicy& policy); 174 void SetMemoryPolicy(const ManagedMemoryPolicy& policy);
180 175
181 bool external_stencil_test_enabled_; 176 bool external_stencil_test_enabled_;
182 177
183 base::WeakPtrFactory<OutputSurface> weak_ptr_factory_; 178 base::WeakPtrFactory<OutputSurface> weak_ptr_factory_;
184 179
185 DISALLOW_COPY_AND_ASSIGN(OutputSurface); 180 DISALLOW_COPY_AND_ASSIGN(OutputSurface);
186 }; 181 };
187 182
188 } // namespace cc 183 } // namespace cc
189 184
190 #endif // CC_OUTPUT_OUTPUT_SURFACE_H_ 185 #endif // CC_OUTPUT_OUTPUT_SURFACE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698