summaryrefslogtreecommitdiffstats
path: root/components/view_manager/gles2/raster_thread_helper.cc
blob: a873f33ca9329a862bc26dab7e1520b1284c08f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "components/view_manager/gles2/raster_thread_helper.h"

#include "base/logging.h"
#include "base/threading/simple_thread.h"
#include "cc/raster/task_graph_runner.h"

namespace gles2 {

class RasterThreadHelper::RasterThread : public base::SimpleThread {
 public:
  RasterThread(cc::TaskGraphRunner* task_graph_runner)
      : base::SimpleThread("CompositorTileWorker1"),
        task_graph_runner_(task_graph_runner) {}

  // Overridden from base::SimpleThread:
  void Run() override { task_graph_runner_->Run(); }

 private:
  cc::TaskGraphRunner* task_graph_runner_;

  DISALLOW_COPY_AND_ASSIGN(RasterThread);
};

RasterThreadHelper::RasterThreadHelper()
    : task_graph_runner_(new cc::TaskGraphRunner),
      raster_thread_(new RasterThread(task_graph_runner_.get())) {
  raster_thread_->Start();
}

RasterThreadHelper::~RasterThreadHelper() {
  task_graph_runner_->Shutdown();
  raster_thread_->Join();
}

}  // namespace gles2