// Copyright 2012 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.

#ifndef CC_OUTPUT_COMPOSITOR_FRAME_H_
#define CC_OUTPUT_COMPOSITOR_FRAME_H_

#include "base/memory/scoped_ptr.h"
#include "cc/output/compositor_frame_metadata.h"
#include "cc/output/delegated_frame_data.h"
#include "cc/output/gl_frame_data.h"
#include "cc/output/software_frame_data.h"

namespace cc {

class CompositorFrame {
 public:
  CompositorFrame();
  ~CompositorFrame();

  CompositorFrameMetadata metadata;
  scoped_ptr<DelegatedFrameData> delegated_frame_data;
  scoped_ptr<GLFrameData> gl_frame_data;
  scoped_ptr<SoftwareFrameData> software_frame_data;

  void AssignTo(CompositorFrame* target);

 private:
  DISALLOW_COPY_AND_ASSIGN(CompositorFrame);
};

}  // namespace cc

#endif  // CC_OUTPUT_COMPOSITOR_FRAME_H_
