// Copyright 2014 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_QUADS_RENDER_PASS_ID_H_
#define CC_QUADS_RENDER_PASS_ID_H_

#include "base/basictypes.h"
#include "base/containers/hash_tables.h"
#include "cc/base/cc_export.h"

namespace cc {

class CC_EXPORT RenderPassId {
 public:
  int layer_id;
  int index;

  RenderPassId(int layer_id, int index) : layer_id(layer_id), index(index) {}
  void* AsTracingId() const;

  bool operator==(const RenderPassId& other) const {
    return layer_id == other.layer_id && index == other.index;
  }
  bool operator!=(const RenderPassId& other) const { return !(*this == other); }
  bool operator<(const RenderPassId& other) const {
    return layer_id < other.layer_id ||
           (layer_id == other.layer_id && index < other.index);
  }
};

}  // namespace cc

#endif  // CC_QUADS_RENDER_PASS_ID_H_
