compositor_frame.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
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
3// found in the LICENSE file.
4
5#ifndef CC_OUTPUT_COMPOSITOR_FRAME_H_
6#define CC_OUTPUT_COMPOSITOR_FRAME_H_
7
8#include "base/memory/scoped_ptr.h"
9#include "cc/base/cc_export.h"
10#include "cc/output/compositor_frame_metadata.h"
11#include "cc/output/delegated_frame_data.h"
12#include "cc/output/gl_frame_data.h"
13#include "cc/output/software_frame_data.h"
14
15namespace cc {
16
17class CC_EXPORT CompositorFrame {
18 public:
19  CompositorFrame();
20  ~CompositorFrame();
21
22  CompositorFrameMetadata metadata;
23  scoped_ptr<DelegatedFrameData> delegated_frame_data;
24  scoped_ptr<GLFrameData> gl_frame_data;
25  scoped_ptr<SoftwareFrameData> software_frame_data;
26
27  void AssignTo(CompositorFrame* target);
28
29 private:
30  DISALLOW_COPY_AND_ASSIGN(CompositorFrame);
31};
32
33}  // namespace cc
34
35#endif  // CC_OUTPUT_COMPOSITOR_FRAME_H_
36