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

Side by Side Diff: cc/test/layer_tree_test.h

Issue 672283003: cc: ReadyToDraw notifications. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add unit test. Created 6 years, 1 month 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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 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 CC_TEST_LAYER_TREE_TEST_H_ 5 #ifndef CC_TEST_LAYER_TREE_TEST_H_
6 #define CC_TEST_LAYER_TREE_TEST_H_ 6 #define CC_TEST_LAYER_TREE_TEST_H_
7 7
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/threading/thread.h" 9 #include "base/threading/thread.h"
10 #include "cc/animation/animation_delegate.h" 10 #include "cc/animation/animation_delegate.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 virtual void InitializedRendererOnThread(LayerTreeHostImpl* host_impl, 50 virtual void InitializedRendererOnThread(LayerTreeHostImpl* host_impl,
51 bool success) {} 51 bool success) {}
52 virtual DrawResult PrepareToDrawOnThread( 52 virtual DrawResult PrepareToDrawOnThread(
53 LayerTreeHostImpl* host_impl, 53 LayerTreeHostImpl* host_impl,
54 LayerTreeHostImpl::FrameData* frame_data, 54 LayerTreeHostImpl::FrameData* frame_data,
55 DrawResult draw_result); 55 DrawResult draw_result);
56 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) {} 56 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) {}
57 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) {} 57 virtual void SwapBuffersOnThread(LayerTreeHostImpl* host_impl, bool result) {}
58 virtual void SwapBuffersCompleteOnThread(LayerTreeHostImpl* host_impl) {} 58 virtual void SwapBuffersCompleteOnThread(LayerTreeHostImpl* host_impl) {}
59 virtual void UpdateVisibleTilesOnThread(LayerTreeHostImpl* host_impl) {} 59 virtual void UpdateVisibleTilesOnThread(LayerTreeHostImpl* host_impl) {}
60 virtual void NotifyReadyToActivateOnThread(LayerTreeHostImpl* host_impl) {}
61 virtual void NotifyReadyToDrawOnThread(LayerTreeHostImpl* host_impl) {}
60 virtual void AnimateLayers(LayerTreeHostImpl* host_impl, 62 virtual void AnimateLayers(LayerTreeHostImpl* host_impl,
61 base::TimeTicks monotonic_time) {} 63 base::TimeTicks monotonic_time) {}
62 virtual void UpdateAnimationState(LayerTreeHostImpl* host_impl, 64 virtual void UpdateAnimationState(LayerTreeHostImpl* host_impl,
63 bool has_unfinished_animation) {} 65 bool has_unfinished_animation) {}
64 virtual void WillAnimateLayers(LayerTreeHostImpl* host_impl, 66 virtual void WillAnimateLayers(LayerTreeHostImpl* host_impl,
65 base::TimeTicks monotonic_time) {} 67 base::TimeTicks monotonic_time) {}
66 virtual void ApplyViewportDeltas(const gfx::Vector2d& inner_delta, 68 virtual void ApplyViewportDeltas(const gfx::Vector2d& inner_delta,
67 const gfx::Vector2d& outer_delta, 69 const gfx::Vector2d& outer_delta,
68 float scale, 70 float scale,
69 float top_controls_delta) {} 71 float top_controls_delta) {}
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 }; 231 };
230 232
231 } // namespace cc 233 } // namespace cc
232 234
233 #define SINGLE_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ 235 #define SINGLE_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \
234 TEST_F(TEST_FIXTURE_NAME, RunSingleThread_DirectRenderer_MainThreadPaint) { \ 236 TEST_F(TEST_FIXTURE_NAME, RunSingleThread_DirectRenderer_MainThreadPaint) { \
235 RunTest(false, false, false); \ 237 RunTest(false, false, false); \
236 } \ 238 } \
237 class SingleThreadDirectNoImplNeedsSemicolon##TEST_FIXTURE_NAME {} 239 class SingleThreadDirectNoImplNeedsSemicolon##TEST_FIXTURE_NAME {}
238 240
239 #define SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ 241 #define SINGLE_THREAD_DIRECT_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME) \
danakj 2014/11/07 19:08:18 You could just override the LayerTreeSettings to e
ernstm 2014/11/08 01:57:26 We shouldn't override the settings to force imple-
240 SINGLE_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \
241 TEST_F(TEST_FIXTURE_NAME, RunSingleThread_DirectRenderer_ImplSidePaint) { \ 242 TEST_F(TEST_FIXTURE_NAME, RunSingleThread_DirectRenderer_ImplSidePaint) { \
242 RunTest(false, false, true); \ 243 RunTest(false, false, true); \
243 } \ 244 } \
244 class SingleThreadDirectNeedsSemicolon##TEST_FIXTURE_NAME {} 245 class SingleThreadDirectImplNeedsSemicolon##TEST_FIXTURE_NAME {}
246
247 #define SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \
248 SINGLE_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \
249 SINGLE_THREAD_DIRECT_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME);
245 250
246 #define SINGLE_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ 251 #define SINGLE_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \
247 TEST_F(TEST_FIXTURE_NAME, \ 252 TEST_F(TEST_FIXTURE_NAME, \
248 RunSingleThread_DelegatingRenderer_MainThreadPaint) { \ 253 RunSingleThread_DelegatingRenderer_MainThreadPaint) { \
249 RunTest(false, true, false); \ 254 RunTest(false, true, false); \
250 } \ 255 } \
251 class SingleThreadDelegatingNoImplNeedsSemicolon##TEST_FIXTURE_NAME {} 256 class SingleThreadDelegatingNoImplNeedsSemicolon##TEST_FIXTURE_NAME {}
252 257
258 #define SINGLE_THREAD_DELEGATING_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME) \
259 TEST_F(TEST_FIXTURE_NAME, \
260 RunSingleThread_DelegatingRenderer_ImplSidePaint) { \
261 RunTest(false, true, true); \
262 } \
263 class SingleThreadDelegatingImplNeedsSemicolon##TEST_FIXTURE_NAME {}
264
253 #define SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ 265 #define SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \
254 SINGLE_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ 266 SINGLE_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \
255 TEST_F(TEST_FIXTURE_NAME, \ 267 SINGLE_THREAD_DELEGATING_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME);
256 RunSingleThread_DelegatingRenderer_ImplSidePaint) { \ 268
257 RunTest(false, true, true); \ 269 #define SINGLE_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \
258 } \ 270 SINGLE_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \
259 class SingleThreadDelegatingNeedsSemicolon##TEST_FIXTURE_NAME {} 271 SINGLE_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME)
272
273 #define SINGLE_THREAD_IMPL_TEST_F(TEST_FIXTURE_NAME) \
274 SINGLE_THREAD_DIRECT_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME); \
275 SINGLE_THREAD_DELEGATING_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME)
260 276
261 #define SINGLE_THREAD_TEST_F(TEST_FIXTURE_NAME) \ 277 #define SINGLE_THREAD_TEST_F(TEST_FIXTURE_NAME) \
262 SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ 278 SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \
263 SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) 279 SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME)
264 280
265 #define SINGLE_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \
266 SINGLE_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \
267 SINGLE_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME)
268
269 #define MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ 281 #define MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \
270 TEST_F(TEST_FIXTURE_NAME, RunMultiThread_DirectRenderer_MainThreadPaint) { \ 282 TEST_F(TEST_FIXTURE_NAME, RunMultiThread_DirectRenderer_MainThreadPaint) { \
271 RunTest(true, false, false); \ 283 RunTest(true, false, false); \
272 } \ 284 } \
273 class MultiThreadDirectNoImplNeedsSemicolon##TEST_FIXTURE_NAME {} 285 class MultiThreadDirectNoImplNeedsSemicolon##TEST_FIXTURE_NAME {}
274 286
275 #define MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ 287 #define MULTI_THREAD_DIRECT_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME) \
276 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \
277 TEST_F(TEST_FIXTURE_NAME, RunMultiThread_DirectRenderer_ImplSidePaint) { \ 288 TEST_F(TEST_FIXTURE_NAME, RunMultiThread_DirectRenderer_ImplSidePaint) { \
278 RunTest(true, false, true); \ 289 RunTest(true, false, true); \
279 } \ 290 } \
280 class MultiThreadDirectNeedsSemicolon##TEST_FIXTURE_NAME {} 291 class MultiThreadDirectImplNeedsSemicolon##TEST_FIXTURE_NAME {}
292
293 #define MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \
294 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \
295 MULTI_THREAD_DIRECT_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME);
281 296
282 #define MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ 297 #define MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \
283 TEST_F(TEST_FIXTURE_NAME, \ 298 TEST_F(TEST_FIXTURE_NAME, \
284 RunMultiThread_DelegatingRenderer_MainThreadPaint) { \ 299 RunMultiThread_DelegatingRenderer_MainThreadPaint) { \
285 RunTest(true, true, false); \ 300 RunTest(true, true, false); \
286 } \ 301 } \
287 class MultiThreadDelegatingNoImplNeedsSemicolon##TEST_FIXTURE_NAME {} 302 class MultiThreadDelegatingNoImplNeedsSemicolon##TEST_FIXTURE_NAME {}
288 303
289 #define MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ 304 #define MULTI_THREAD_DELEGATING_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME) \
290 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \
291 TEST_F(TEST_FIXTURE_NAME, RunMultiThread_DelegatingRenderer_ImplSidePaint) { \ 305 TEST_F(TEST_FIXTURE_NAME, RunMultiThread_DelegatingRenderer_ImplSidePaint) { \
292 RunTest(true, true, true); \ 306 RunTest(true, true, true); \
293 } \ 307 } \
294 class MultiThreadDelegatingNeedsSemicolon##TEST_FIXTURE_NAME {} 308 class MultiThreadDelegatingImplNeedsSemicolon##TEST_FIXTURE_NAME {}
309
310 #define MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \
311 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \
312 MULTI_THREAD_DELEGATING_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME);
295 313
296 #define MULTI_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ 314 #define MULTI_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \
297 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ 315 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \
298 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) 316 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME)
299 317
318 #define MULTI_THREAD_IMPL_TEST_F(TEST_FIXTURE_NAME) \
319 MULTI_THREAD_DIRECT_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME); \
320 MULTI_THREAD_DELEGATING_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME)
321
300 #define MULTI_THREAD_TEST_F(TEST_FIXTURE_NAME) \ 322 #define MULTI_THREAD_TEST_F(TEST_FIXTURE_NAME) \
301 MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ 323 MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \
302 MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) 324 MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME)
303 325
304 #define SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F( \ 326 #define SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F( \
305 TEST_FIXTURE_NAME) \ 327 TEST_FIXTURE_NAME) \
306 SINGLE_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ 328 SINGLE_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \
307 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) 329 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME)
308 330
331 #define SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME) \
332 SINGLE_THREAD_DIRECT_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME); \
333 MULTI_THREAD_DIRECT_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME)
334
309 #define SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ 335 #define SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) \
310 SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ 336 SINGLE_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \
311 MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME) 337 MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME)
312 338
313 #define SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F( \ 339 #define SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F( \
314 TEST_FIXTURE_NAME) \ 340 TEST_FIXTURE_NAME) \
315 SINGLE_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ 341 SINGLE_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \
316 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) 342 MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME)
317 343
344 #define SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_IMPL_TEST_F( \
345 TEST_FIXTURE_NAME) \
346 SINGLE_THREAD_DELEGATING_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME); \
347 MULTI_THREAD_DELEGATING_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME)
348
318 #define SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \ 349 #define SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) \
319 SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ 350 SINGLE_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME); \
320 MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) 351 MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME)
321 352
322 #define SINGLE_AND_MULTI_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \ 353 #define SINGLE_AND_MULTI_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME) \
323 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ 354 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \
324 SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME) 355 SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_NOIMPL_TEST_F(TEST_FIXTURE_NAME)
325 356
357 #define SINGLE_AND_MULTI_THREAD_IMPL_TEST_F(TEST_FIXTURE_NAME) \
358 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME); \
359 SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_IMPL_TEST_F(TEST_FIXTURE_NAME)
360
326 #define SINGLE_AND_MULTI_THREAD_TEST_F(TEST_FIXTURE_NAME) \ 361 #define SINGLE_AND_MULTI_THREAD_TEST_F(TEST_FIXTURE_NAME) \
327 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \ 362 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(TEST_FIXTURE_NAME); \
328 SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME) 363 SINGLE_AND_MULTI_THREAD_DELEGATING_RENDERER_TEST_F(TEST_FIXTURE_NAME)
329 364
330 // Some tests want to control when notify ready for activation occurs, 365 // Some tests want to control when notify ready for activation occurs,
331 // but this is not supported in the single-threaded case. 366 // but this is not supported in the single-threaded case.
332 #define SINGLE_AND_MULTI_THREAD_BLOCKNOTIFY_TEST_F(TEST_FIXTURE_NAME) \ 367 #define SINGLE_AND_MULTI_THREAD_BLOCKNOTIFY_TEST_F(TEST_FIXTURE_NAME) \
333 SINGLE_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \ 368 SINGLE_THREAD_NOIMPL_TEST_F(TEST_FIXTURE_NAME); \
334 MULTI_THREAD_TEST_F(TEST_FIXTURE_NAME) 369 MULTI_THREAD_TEST_F(TEST_FIXTURE_NAME)
335 370
336 #endif // CC_TEST_LAYER_TREE_TEST_H_ 371 #endif // CC_TEST_LAYER_TREE_TEST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698