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

Side by Side Diff: gpu/command_buffer/service/gpu_scheduler.h

Issue 7762013: Added GPU process "echo" IPC message. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 3 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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 GPU_COMMAND_BUFFER_SERVICE_GPU_SCHEDULER_H_ 5 #ifndef GPU_COMMAND_BUFFER_SERVICE_GPU_SCHEDULER_H_
6 #define GPU_COMMAND_BUFFER_SERVICE_GPU_SCHEDULER_H_ 6 #define GPU_COMMAND_BUFFER_SERVICE_GPU_SCHEDULER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <queue> 9 #include <queue>
10 #include <vector> 10 #include <vector>
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 virtual TransportDIB::Handle SetWindowSizeForTransportDIB( 120 virtual TransportDIB::Handle SetWindowSizeForTransportDIB(
121 const gfx::Size& size); 121 const gfx::Size& size);
122 virtual void SetTransportDIBAllocAndFree( 122 virtual void SetTransportDIBAllocAndFree(
123 Callback2<size_t, TransportDIB::Handle*>::Type* allocator, 123 Callback2<size_t, TransportDIB::Handle*>::Type* allocator,
124 Callback1<TransportDIB::Id>::Type* deallocator); 124 Callback1<TransportDIB::Id>::Type* deallocator);
125 // Returns the id of the current surface that is being rendered to 125 // Returns the id of the current surface that is being rendered to
126 // (or 0 if no such surface has been created). 126 // (or 0 if no such surface has been created).
127 virtual uint64 GetSurfaceId(); 127 virtual uint64 GetSurfaceId();
128 128
129 void DidDestroySurface(); 129 void DidDestroySurface();
130
131 // Sets a callback which is called when a SwapBuffers command is processed.
132 // Must be called after Initialize().
133 // It is not defined on which thread this callback is called.
134 void SetSwapBuffersCallback(Callback0::Type* callback);
130 #endif 135 #endif
131 136
132 // Sets a callback that is called when a glResizeCHROMIUM command 137 // Sets a callback that is called when a glResizeCHROMIUM command
133 // is processed. 138 // is processed.
134 void SetResizeCallback(Callback1<gfx::Size>::Type* callback); 139 void SetResizeCallback(Callback1<gfx::Size>::Type* callback);
135 140
136 // Sets a callback which is called when a SwapBuffers command is processed.
137 // Must be called after Initialize().
138 // It is not defined on which thread this callback is called.
139 void SetSwapBuffersCallback(Callback0::Type* callback);
140
141 void SetCommandProcessedCallback(Callback0::Type* callback); 141 void SetCommandProcessedCallback(Callback0::Type* callback);
142 142
143 // Get the GLES2Decoder associated with this scheduler. 143 // Get the GLES2Decoder associated with this scheduler.
144 gles2::GLES2Decoder* decoder() const { return decoder_.get(); } 144 gles2::GLES2Decoder* decoder() const { return decoder_.get(); }
145 145
146 private: 146 private:
147 // If a group is not passed in one will be created. 147 // If a group is not passed in one will be created.
148 GpuScheduler(CommandBuffer* command_buffer, 148 GpuScheduler(CommandBuffer* command_buffer,
149 gles2::GLES2Decoder* decoder, 149 gles2::GLES2Decoder* decoder,
150 CommandParser* parser); 150 CommandParser* parser);
151 151
152 #if defined(OS_MACOSX)
152 // Called via a callback just before we are supposed to call the 153 // Called via a callback just before we are supposed to call the
153 // user's swap buffers callback. 154 // user's swap buffers callback.
154 void WillSwapBuffers(); 155 void WillSwapBuffers();
156 #endif
155 157
156 // The GpuScheduler holds a weak reference to the CommandBuffer. The 158 // The GpuScheduler holds a weak reference to the CommandBuffer. The
157 // CommandBuffer owns the GpuScheduler and holds a strong reference to it 159 // CommandBuffer owns the GpuScheduler and holds a strong reference to it
158 // through the ProcessCommands callback. 160 // through the ProcessCommands callback.
159 CommandBuffer* command_buffer_; 161 CommandBuffer* command_buffer_;
160 162
161 scoped_ptr<gles2::GLES2Decoder> decoder_; 163 scoped_ptr<gles2::GLES2Decoder> decoder_;
162 scoped_ptr<CommandParser> parser_; 164 scoped_ptr<CommandParser> parser_;
163 165
164 // Greater than zero if this is waiting to be rescheduled before continuing. 166 // Greater than zero if this is waiting to be rescheduled before continuing.
165 int unscheduled_count_; 167 int unscheduled_count_;
166 168
167 scoped_ptr<Callback0::Type> scheduled_callback_; 169 scoped_ptr<Callback0::Type> scheduled_callback_;
168 170
169 #if defined(OS_MACOSX) 171 #if defined(OS_MACOSX)
170 uint64 swap_buffers_count_; 172 uint64 swap_buffers_count_;
171 uint64 acknowledged_swap_buffers_count_; 173 uint64 acknowledged_swap_buffers_count_;
172 scoped_ptr<AcceleratedSurface> surface_; 174 scoped_ptr<AcceleratedSurface> surface_;
175 scoped_ptr<Callback0::Type> wrapped_swap_buffers_callback_;
173 #endif 176 #endif
174 177
175 ScopedRunnableMethodFactory<GpuScheduler> method_factory_; 178 ScopedRunnableMethodFactory<GpuScheduler> method_factory_;
176 scoped_ptr<Callback0::Type> wrapped_swap_buffers_callback_;
177 scoped_ptr<Callback0::Type> command_processed_callback_; 179 scoped_ptr<Callback0::Type> command_processed_callback_;
178 }; 180 };
179 181
180 } // namespace gpu 182 } // namespace gpu
181 183
182 #endif // GPU_COMMAND_BUFFER_SERVICE_GPU_SCHEDULER_H_ 184 #endif // GPU_COMMAND_BUFFER_SERVICE_GPU_SCHEDULER_H_
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.cc ('k') | gpu/command_buffer/service/gpu_scheduler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698