@@ -16,7 +16,7 @@ const int kPipelineDepth = 2;
1616Animator::Animator (const Engine::Config& config, Engine* engine)
1717 : config_(config),
1818 engine_ (engine),
19- outstanding_draw_requests_ (0 ),
19+ outstanding_requests_ (0 ),
2020 did_defer_frame_request_(false ),
2121 engine_requested_frame_(false ),
2222 paused_(false ),
@@ -29,13 +29,12 @@ Animator::~Animator() {
2929void Animator::RequestFrame () {
3030 if (engine_requested_frame_)
3131 return ;
32-
33- DCHECK (!did_defer_frame_request_);
34-
3532 TRACE_EVENT_ASYNC_BEGIN0 (" sky" , " Frame request pending" , this );
3633 engine_requested_frame_ = true ;
3734
38- if (outstanding_draw_requests_ >= kPipelineDepth ) {
35+ DCHECK (!did_defer_frame_request_);
36+ outstanding_requests_++;
37+ if (outstanding_requests_ >= kPipelineDepth ) {
3938 did_defer_frame_request_ = true ;
4039 return ;
4140 }
@@ -56,28 +55,29 @@ void Animator::Start() {
5655}
5756
5857void Animator::BeginFrame () {
59- if (!engine_requested_frame_)
60- return ;
61- engine_requested_frame_ = false ;
6258 TRACE_EVENT_ASYNC_END0 (" sky" , " Frame request pending" , this );
59+ DCHECK (engine_requested_frame_);
60+ engine_requested_frame_ = false ;
61+
62+ DCHECK (outstanding_requests_ > 0 );
63+ DCHECK (outstanding_requests_ <= kPipelineDepth ) << outstanding_requests_;
6364
6465 engine_->BeginFrame (base::TimeTicks::Now ());
6566 skia::RefPtr<SkPicture> picture = engine_->Paint ();
6667
67- outstanding_draw_requests_++;
6868 config_.gpu_task_runner ->PostTaskAndReply (
6969 FROM_HERE,
7070 base::Bind (&GPUDelegate::Draw, config_.gpu_delegate , picture),
7171 base::Bind (&Animator::OnFrameComplete, weak_factory_.GetWeakPtr ()));
7272}
7373
7474void Animator::OnFrameComplete () {
75- DCHECK (outstanding_draw_requests_ > 0 );
76- --outstanding_draw_requests_ ;
75+ DCHECK (outstanding_requests_ > 0 );
76+ --outstanding_requests_ ;
7777 if (paused_)
7878 return ;
7979
80- if (engine_requested_frame_ && did_defer_frame_request_) {
80+ if (did_defer_frame_request_) {
8181 did_defer_frame_request_ = false ;
8282 BeginFrame ();
8383 }
0 commit comments