// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: LayerScopePacket.proto

#ifndef PROTOBUF_LayerScopePacket_2eproto__INCLUDED
#define PROTOBUF_LayerScopePacket_2eproto__INCLUDED

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 2006000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 2006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/message_lite.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
// @@protoc_insertion_point(includes)

namespace mozilla {
namespace layers {
namespace layerscope {

// Internal implementation detail -- do not call these.
void  protobuf_AddDesc_LayerScopePacket_2eproto();
void protobuf_AssignDesc_LayerScopePacket_2eproto();
void protobuf_ShutdownFile_LayerScopePacket_2eproto();

class FramePacket;
class ColorPacket;
class TexturePacket;
class LayersPacket;
class LayersPacket_Layer;
class LayersPacket_Layer_Size;
class LayersPacket_Layer_Rect;
class LayersPacket_Layer_Region;
class LayersPacket_Layer_Matrix;
class LayersPacket_Layer_Shadow;
class MetaPacket;
class DrawPacket;
class DrawPacket_Rect;
class Packet;
class CommandPacket;

enum LayersPacket_Layer_LayerType {
  LayersPacket_Layer_LayerType_UnknownLayer = 0,
  LayersPacket_Layer_LayerType_LayerManager = 1,
  LayersPacket_Layer_LayerType_ContainerLayer = 2,
  LayersPacket_Layer_LayerType_PaintedLayer = 3,
  LayersPacket_Layer_LayerType_CanvasLayer = 4,
  LayersPacket_Layer_LayerType_ImageLayer = 5,
  LayersPacket_Layer_LayerType_ColorLayer = 6,
  LayersPacket_Layer_LayerType_RefLayer = 7,
  LayersPacket_Layer_LayerType_ReadbackLayer = 8
};
bool LayersPacket_Layer_LayerType_IsValid(int value);
const LayersPacket_Layer_LayerType LayersPacket_Layer_LayerType_LayerType_MIN = LayersPacket_Layer_LayerType_UnknownLayer;
const LayersPacket_Layer_LayerType LayersPacket_Layer_LayerType_LayerType_MAX = LayersPacket_Layer_LayerType_ReadbackLayer;
const int LayersPacket_Layer_LayerType_LayerType_ARRAYSIZE = LayersPacket_Layer_LayerType_LayerType_MAX + 1;

enum LayersPacket_Layer_ScrollingDirect {
  LayersPacket_Layer_ScrollingDirect_VERTICAL = 1,
  LayersPacket_Layer_ScrollingDirect_HORIZONTAL = 2
};
bool LayersPacket_Layer_ScrollingDirect_IsValid(int value);
const LayersPacket_Layer_ScrollingDirect LayersPacket_Layer_ScrollingDirect_ScrollingDirect_MIN = LayersPacket_Layer_ScrollingDirect_VERTICAL;
const LayersPacket_Layer_ScrollingDirect LayersPacket_Layer_ScrollingDirect_ScrollingDirect_MAX = LayersPacket_Layer_ScrollingDirect_HORIZONTAL;
const int LayersPacket_Layer_ScrollingDirect_ScrollingDirect_ARRAYSIZE = LayersPacket_Layer_ScrollingDirect_ScrollingDirect_MAX + 1;

enum LayersPacket_Layer_Filter {
  LayersPacket_Layer_Filter_FILTER_FAST = 0,
  LayersPacket_Layer_Filter_FILTER_GOOD = 1,
  LayersPacket_Layer_Filter_FILTER_BEST = 2,
  LayersPacket_Layer_Filter_FILTER_NEAREST = 3,
  LayersPacket_Layer_Filter_FILTER_BILINEAR = 4,
  LayersPacket_Layer_Filter_FILTER_GAUSSIAN = 5,
  LayersPacket_Layer_Filter_FILTER_SENTINEL = 6
};
bool LayersPacket_Layer_Filter_IsValid(int value);
const LayersPacket_Layer_Filter LayersPacket_Layer_Filter_Filter_MIN = LayersPacket_Layer_Filter_FILTER_FAST;
const LayersPacket_Layer_Filter LayersPacket_Layer_Filter_Filter_MAX = LayersPacket_Layer_Filter_FILTER_SENTINEL;
const int LayersPacket_Layer_Filter_Filter_ARRAYSIZE = LayersPacket_Layer_Filter_Filter_MAX + 1;

enum Packet_DataType {
  Packet_DataType_FRAMESTART = 1,
  Packet_DataType_FRAMEEND = 2,
  Packet_DataType_COLOR = 3,
  Packet_DataType_TEXTURE = 4,
  Packet_DataType_LAYERS = 5,
  Packet_DataType_META = 6,
  Packet_DataType_DRAW = 7
};
bool Packet_DataType_IsValid(int value);
const Packet_DataType Packet_DataType_DataType_MIN = Packet_DataType_FRAMESTART;
const Packet_DataType Packet_DataType_DataType_MAX = Packet_DataType_DRAW;
const int Packet_DataType_DataType_ARRAYSIZE = Packet_DataType_DataType_MAX + 1;

enum CommandPacket_CmdType {
  CommandPacket_CmdType_NO_OP = 0,
  CommandPacket_CmdType_LAYERS_TREE = 1,
  CommandPacket_CmdType_LAYERS_BUFFER = 2
};
bool CommandPacket_CmdType_IsValid(int value);
const CommandPacket_CmdType CommandPacket_CmdType_CmdType_MIN = CommandPacket_CmdType_NO_OP;
const CommandPacket_CmdType CommandPacket_CmdType_CmdType_MAX = CommandPacket_CmdType_LAYERS_BUFFER;
const int CommandPacket_CmdType_CmdType_ARRAYSIZE = CommandPacket_CmdType_CmdType_MAX + 1;

// ===================================================================

class FramePacket : public ::google::protobuf::MessageLite {
 public:
  FramePacket();
  virtual ~FramePacket();

  FramePacket(const FramePacket& from);

  inline FramePacket& operator=(const FramePacket& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::std::string& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::std::string* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const FramePacket& default_instance();

  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  // Returns the internal default instance pointer. This function can
  // return NULL thus should not be used by the user. This is intended
  // for Protobuf internal code. Please use default_instance() declared
  // above instead.
  static inline const FramePacket* internal_default_instance() {
    return default_instance_;
  }
  #endif

  void Swap(FramePacket* other);

  // implements Message ----------------------------------------------

  FramePacket* New() const;
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
  void CopyFrom(const FramePacket& from);
  void MergeFrom(const FramePacket& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  void DiscardUnknownFields();
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::std::string GetTypeName() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional uint64 value = 1;
  inline bool has_value() const;
  inline void clear_value();
  static const int kValueFieldNumber = 1;
  inline ::google::protobuf::uint64 value() const;
  inline void set_value(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:mozilla.layers.layerscope.FramePacket)
 private:
  inline void set_has_value();
  inline void clear_has_value();

  ::std::string _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 value_;
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto_impl();
  #else
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto();
  #endif
  friend void protobuf_AssignDesc_LayerScopePacket_2eproto();
  friend void protobuf_ShutdownFile_LayerScopePacket_2eproto();

  void InitAsDefaultInstance();
  static FramePacket* default_instance_;
};
// -------------------------------------------------------------------

class ColorPacket : public ::google::protobuf::MessageLite {
 public:
  ColorPacket();
  virtual ~ColorPacket();

  ColorPacket(const ColorPacket& from);

  inline ColorPacket& operator=(const ColorPacket& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::std::string& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::std::string* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ColorPacket& default_instance();

  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  // Returns the internal default instance pointer. This function can
  // return NULL thus should not be used by the user. This is intended
  // for Protobuf internal code. Please use default_instance() declared
  // above instead.
  static inline const ColorPacket* internal_default_instance() {
    return default_instance_;
  }
  #endif

  void Swap(ColorPacket* other);

  // implements Message ----------------------------------------------

  ColorPacket* New() const;
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
  void CopyFrom(const ColorPacket& from);
  void MergeFrom(const ColorPacket& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  void DiscardUnknownFields();
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::std::string GetTypeName() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required uint64 layerref = 1;
  inline bool has_layerref() const;
  inline void clear_layerref();
  static const int kLayerrefFieldNumber = 1;
  inline ::google::protobuf::uint64 layerref() const;
  inline void set_layerref(::google::protobuf::uint64 value);

  // optional uint32 width = 2;
  inline bool has_width() const;
  inline void clear_width();
  static const int kWidthFieldNumber = 2;
  inline ::google::protobuf::uint32 width() const;
  inline void set_width(::google::protobuf::uint32 value);

  // optional uint32 height = 3;
  inline bool has_height() const;
  inline void clear_height();
  static const int kHeightFieldNumber = 3;
  inline ::google::protobuf::uint32 height() const;
  inline void set_height(::google::protobuf::uint32 value);

  // optional uint32 color = 4;
  inline bool has_color() const;
  inline void clear_color();
  static const int kColorFieldNumber = 4;
  inline ::google::protobuf::uint32 color() const;
  inline void set_color(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:mozilla.layers.layerscope.ColorPacket)
 private:
  inline void set_has_layerref();
  inline void clear_has_layerref();
  inline void set_has_width();
  inline void clear_has_width();
  inline void set_has_height();
  inline void clear_has_height();
  inline void set_has_color();
  inline void clear_has_color();

  ::std::string _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 layerref_;
  ::google::protobuf::uint32 width_;
  ::google::protobuf::uint32 height_;
  ::google::protobuf::uint32 color_;
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto_impl();
  #else
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto();
  #endif
  friend void protobuf_AssignDesc_LayerScopePacket_2eproto();
  friend void protobuf_ShutdownFile_LayerScopePacket_2eproto();

  void InitAsDefaultInstance();
  static ColorPacket* default_instance_;
};
// -------------------------------------------------------------------

class TexturePacket : public ::google::protobuf::MessageLite {
 public:
  TexturePacket();
  virtual ~TexturePacket();

  TexturePacket(const TexturePacket& from);

  inline TexturePacket& operator=(const TexturePacket& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::std::string& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::std::string* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const TexturePacket& default_instance();

  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  // Returns the internal default instance pointer. This function can
  // return NULL thus should not be used by the user. This is intended
  // for Protobuf internal code. Please use default_instance() declared
  // above instead.
  static inline const TexturePacket* internal_default_instance() {
    return default_instance_;
  }
  #endif

  void Swap(TexturePacket* other);

  // implements Message ----------------------------------------------

  TexturePacket* New() const;
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
  void CopyFrom(const TexturePacket& from);
  void MergeFrom(const TexturePacket& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  void DiscardUnknownFields();
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::std::string GetTypeName() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required uint64 layerref = 1;
  inline bool has_layerref() const;
  inline void clear_layerref();
  static const int kLayerrefFieldNumber = 1;
  inline ::google::protobuf::uint64 layerref() const;
  inline void set_layerref(::google::protobuf::uint64 value);

  // optional uint32 width = 2;
  inline bool has_width() const;
  inline void clear_width();
  static const int kWidthFieldNumber = 2;
  inline ::google::protobuf::uint32 width() const;
  inline void set_width(::google::protobuf::uint32 value);

  // optional uint32 height = 3;
  inline bool has_height() const;
  inline void clear_height();
  static const int kHeightFieldNumber = 3;
  inline ::google::protobuf::uint32 height() const;
  inline void set_height(::google::protobuf::uint32 value);

  // optional uint32 stride = 4;
  inline bool has_stride() const;
  inline void clear_stride();
  static const int kStrideFieldNumber = 4;
  inline ::google::protobuf::uint32 stride() const;
  inline void set_stride(::google::protobuf::uint32 value);

  // optional uint32 name = 5;
  inline bool has_name() const;
  inline void clear_name();
  static const int kNameFieldNumber = 5;
  inline ::google::protobuf::uint32 name() const;
  inline void set_name(::google::protobuf::uint32 value);

  // optional uint32 target = 6;
  inline bool has_target() const;
  inline void clear_target();
  static const int kTargetFieldNumber = 6;
  inline ::google::protobuf::uint32 target() const;
  inline void set_target(::google::protobuf::uint32 value);

  // optional uint32 dataformat = 7;
  inline bool has_dataformat() const;
  inline void clear_dataformat();
  static const int kDataformatFieldNumber = 7;
  inline ::google::protobuf::uint32 dataformat() const;
  inline void set_dataformat(::google::protobuf::uint32 value);

  // optional uint64 glcontext = 8;
  inline bool has_glcontext() const;
  inline void clear_glcontext();
  static const int kGlcontextFieldNumber = 8;
  inline ::google::protobuf::uint64 glcontext() const;
  inline void set_glcontext(::google::protobuf::uint64 value);

  // optional bytes data = 9;
  inline bool has_data() const;
  inline void clear_data();
  static const int kDataFieldNumber = 9;
  inline const ::std::string& data() const;
  inline void set_data(const ::std::string& value);
  inline void set_data(const char* value);
  inline void set_data(const void* value, size_t size);
  inline ::std::string* mutable_data();
  inline ::std::string* release_data();
  inline void set_allocated_data(::std::string* data);

  // @@protoc_insertion_point(class_scope:mozilla.layers.layerscope.TexturePacket)
 private:
  inline void set_has_layerref();
  inline void clear_has_layerref();
  inline void set_has_width();
  inline void clear_has_width();
  inline void set_has_height();
  inline void clear_has_height();
  inline void set_has_stride();
  inline void clear_has_stride();
  inline void set_has_name();
  inline void clear_has_name();
  inline void set_has_target();
  inline void clear_has_target();
  inline void set_has_dataformat();
  inline void clear_has_dataformat();
  inline void set_has_glcontext();
  inline void clear_has_glcontext();
  inline void set_has_data();
  inline void clear_has_data();

  ::std::string _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 layerref_;
  ::google::protobuf::uint32 width_;
  ::google::protobuf::uint32 height_;
  ::google::protobuf::uint32 stride_;
  ::google::protobuf::uint32 name_;
  ::google::protobuf::uint32 target_;
  ::google::protobuf::uint32 dataformat_;
  ::google::protobuf::uint64 glcontext_;
  ::std::string* data_;
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto_impl();
  #else
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto();
  #endif
  friend void protobuf_AssignDesc_LayerScopePacket_2eproto();
  friend void protobuf_ShutdownFile_LayerScopePacket_2eproto();

  void InitAsDefaultInstance();
  static TexturePacket* default_instance_;
};
// -------------------------------------------------------------------

class LayersPacket_Layer_Size : public ::google::protobuf::MessageLite {
 public:
  LayersPacket_Layer_Size();
  virtual ~LayersPacket_Layer_Size();

  LayersPacket_Layer_Size(const LayersPacket_Layer_Size& from);

  inline LayersPacket_Layer_Size& operator=(const LayersPacket_Layer_Size& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::std::string& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::std::string* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const LayersPacket_Layer_Size& default_instance();

  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  // Returns the internal default instance pointer. This function can
  // return NULL thus should not be used by the user. This is intended
  // for Protobuf internal code. Please use default_instance() declared
  // above instead.
  static inline const LayersPacket_Layer_Size* internal_default_instance() {
    return default_instance_;
  }
  #endif

  void Swap(LayersPacket_Layer_Size* other);

  // implements Message ----------------------------------------------

  LayersPacket_Layer_Size* New() const;
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
  void CopyFrom(const LayersPacket_Layer_Size& from);
  void MergeFrom(const LayersPacket_Layer_Size& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  void DiscardUnknownFields();
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::std::string GetTypeName() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int32 w = 1;
  inline bool has_w() const;
  inline void clear_w();
  static const int kWFieldNumber = 1;
  inline ::google::protobuf::int32 w() const;
  inline void set_w(::google::protobuf::int32 value);

  // optional int32 h = 2;
  inline bool has_h() const;
  inline void clear_h();
  static const int kHFieldNumber = 2;
  inline ::google::protobuf::int32 h() const;
  inline void set_h(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:mozilla.layers.layerscope.LayersPacket.Layer.Size)
 private:
  inline void set_has_w();
  inline void clear_has_w();
  inline void set_has_h();
  inline void clear_has_h();

  ::std::string _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::int32 w_;
  ::google::protobuf::int32 h_;
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto_impl();
  #else
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto();
  #endif
  friend void protobuf_AssignDesc_LayerScopePacket_2eproto();
  friend void protobuf_ShutdownFile_LayerScopePacket_2eproto();

  void InitAsDefaultInstance();
  static LayersPacket_Layer_Size* default_instance_;
};
// -------------------------------------------------------------------

class LayersPacket_Layer_Rect : public ::google::protobuf::MessageLite {
 public:
  LayersPacket_Layer_Rect();
  virtual ~LayersPacket_Layer_Rect();

  LayersPacket_Layer_Rect(const LayersPacket_Layer_Rect& from);

  inline LayersPacket_Layer_Rect& operator=(const LayersPacket_Layer_Rect& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::std::string& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::std::string* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const LayersPacket_Layer_Rect& default_instance();

  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  // Returns the internal default instance pointer. This function can
  // return NULL thus should not be used by the user. This is intended
  // for Protobuf internal code. Please use default_instance() declared
  // above instead.
  static inline const LayersPacket_Layer_Rect* internal_default_instance() {
    return default_instance_;
  }
  #endif

  void Swap(LayersPacket_Layer_Rect* other);

  // implements Message ----------------------------------------------

  LayersPacket_Layer_Rect* New() const;
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
  void CopyFrom(const LayersPacket_Layer_Rect& from);
  void MergeFrom(const LayersPacket_Layer_Rect& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  void DiscardUnknownFields();
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::std::string GetTypeName() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int32 x = 1;
  inline bool has_x() const;
  inline void clear_x();
  static const int kXFieldNumber = 1;
  inline ::google::protobuf::int32 x() const;
  inline void set_x(::google::protobuf::int32 value);

  // optional int32 y = 2;
  inline bool has_y() const;
  inline void clear_y();
  static const int kYFieldNumber = 2;
  inline ::google::protobuf::int32 y() const;
  inline void set_y(::google::protobuf::int32 value);

  // optional int32 w = 3;
  inline bool has_w() const;
  inline void clear_w();
  static const int kWFieldNumber = 3;
  inline ::google::protobuf::int32 w() const;
  inline void set_w(::google::protobuf::int32 value);

  // optional int32 h = 4;
  inline bool has_h() const;
  inline void clear_h();
  static const int kHFieldNumber = 4;
  inline ::google::protobuf::int32 h() const;
  inline void set_h(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:mozilla.layers.layerscope.LayersPacket.Layer.Rect)
 private:
  inline void set_has_x();
  inline void clear_has_x();
  inline void set_has_y();
  inline void clear_has_y();
  inline void set_has_w();
  inline void clear_has_w();
  inline void set_has_h();
  inline void clear_has_h();

  ::std::string _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::int32 x_;
  ::google::protobuf::int32 y_;
  ::google::protobuf::int32 w_;
  ::google::protobuf::int32 h_;
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto_impl();
  #else
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto();
  #endif
  friend void protobuf_AssignDesc_LayerScopePacket_2eproto();
  friend void protobuf_ShutdownFile_LayerScopePacket_2eproto();

  void InitAsDefaultInstance();
  static LayersPacket_Layer_Rect* default_instance_;
};
// -------------------------------------------------------------------

class LayersPacket_Layer_Region : public ::google::protobuf::MessageLite {
 public:
  LayersPacket_Layer_Region();
  virtual ~LayersPacket_Layer_Region();

  LayersPacket_Layer_Region(const LayersPacket_Layer_Region& from);

  inline LayersPacket_Layer_Region& operator=(const LayersPacket_Layer_Region& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::std::string& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::std::string* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const LayersPacket_Layer_Region& default_instance();

  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  // Returns the internal default instance pointer. This function can
  // return NULL thus should not be used by the user. This is intended
  // for Protobuf internal code. Please use default_instance() declared
  // above instead.
  static inline const LayersPacket_Layer_Region* internal_default_instance() {
    return default_instance_;
  }
  #endif

  void Swap(LayersPacket_Layer_Region* other);

  // implements Message ----------------------------------------------

  LayersPacket_Layer_Region* New() const;
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
  void CopyFrom(const LayersPacket_Layer_Region& from);
  void MergeFrom(const LayersPacket_Layer_Region& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  void DiscardUnknownFields();
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::std::string GetTypeName() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated .mozilla.layers.layerscope.LayersPacket.Layer.Rect r = 1;
  inline int r_size() const;
  inline void clear_r();
  static const int kRFieldNumber = 1;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Rect& r(int index) const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* mutable_r(int index);
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* add_r();
  inline const ::google::protobuf::RepeatedPtrField< ::mozilla::layers::layerscope::LayersPacket_Layer_Rect >&
      r() const;
  inline ::google::protobuf::RepeatedPtrField< ::mozilla::layers::layerscope::LayersPacket_Layer_Rect >*
      mutable_r();

  // @@protoc_insertion_point(class_scope:mozilla.layers.layerscope.LayersPacket.Layer.Region)
 private:

  ::std::string _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::mozilla::layers::layerscope::LayersPacket_Layer_Rect > r_;
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto_impl();
  #else
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto();
  #endif
  friend void protobuf_AssignDesc_LayerScopePacket_2eproto();
  friend void protobuf_ShutdownFile_LayerScopePacket_2eproto();

  void InitAsDefaultInstance();
  static LayersPacket_Layer_Region* default_instance_;
};
// -------------------------------------------------------------------

class LayersPacket_Layer_Matrix : public ::google::protobuf::MessageLite {
 public:
  LayersPacket_Layer_Matrix();
  virtual ~LayersPacket_Layer_Matrix();

  LayersPacket_Layer_Matrix(const LayersPacket_Layer_Matrix& from);

  inline LayersPacket_Layer_Matrix& operator=(const LayersPacket_Layer_Matrix& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::std::string& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::std::string* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const LayersPacket_Layer_Matrix& default_instance();

  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  // Returns the internal default instance pointer. This function can
  // return NULL thus should not be used by the user. This is intended
  // for Protobuf internal code. Please use default_instance() declared
  // above instead.
  static inline const LayersPacket_Layer_Matrix* internal_default_instance() {
    return default_instance_;
  }
  #endif

  void Swap(LayersPacket_Layer_Matrix* other);

  // implements Message ----------------------------------------------

  LayersPacket_Layer_Matrix* New() const;
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
  void CopyFrom(const LayersPacket_Layer_Matrix& from);
  void MergeFrom(const LayersPacket_Layer_Matrix& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  void DiscardUnknownFields();
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::std::string GetTypeName() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional bool is2D = 1;
  inline bool has_is2d() const;
  inline void clear_is2d();
  static const int kIs2DFieldNumber = 1;
  inline bool is2d() const;
  inline void set_is2d(bool value);

  // optional bool isId = 2;
  inline bool has_isid() const;
  inline void clear_isid();
  static const int kIsIdFieldNumber = 2;
  inline bool isid() const;
  inline void set_isid(bool value);

  // repeated float m = 3;
  inline int m_size() const;
  inline void clear_m();
  static const int kMFieldNumber = 3;
  inline float m(int index) const;
  inline void set_m(int index, float value);
  inline void add_m(float value);
  inline const ::google::protobuf::RepeatedField< float >&
      m() const;
  inline ::google::protobuf::RepeatedField< float >*
      mutable_m();

  // @@protoc_insertion_point(class_scope:mozilla.layers.layerscope.LayersPacket.Layer.Matrix)
 private:
  inline void set_has_is2d();
  inline void clear_has_is2d();
  inline void set_has_isid();
  inline void clear_has_isid();

  ::std::string _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedField< float > m_;
  bool is2d_;
  bool isid_;
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto_impl();
  #else
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto();
  #endif
  friend void protobuf_AssignDesc_LayerScopePacket_2eproto();
  friend void protobuf_ShutdownFile_LayerScopePacket_2eproto();

  void InitAsDefaultInstance();
  static LayersPacket_Layer_Matrix* default_instance_;
};
// -------------------------------------------------------------------

class LayersPacket_Layer_Shadow : public ::google::protobuf::MessageLite {
 public:
  LayersPacket_Layer_Shadow();
  virtual ~LayersPacket_Layer_Shadow();

  LayersPacket_Layer_Shadow(const LayersPacket_Layer_Shadow& from);

  inline LayersPacket_Layer_Shadow& operator=(const LayersPacket_Layer_Shadow& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::std::string& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::std::string* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const LayersPacket_Layer_Shadow& default_instance();

  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  // Returns the internal default instance pointer. This function can
  // return NULL thus should not be used by the user. This is intended
  // for Protobuf internal code. Please use default_instance() declared
  // above instead.
  static inline const LayersPacket_Layer_Shadow* internal_default_instance() {
    return default_instance_;
  }
  #endif

  void Swap(LayersPacket_Layer_Shadow* other);

  // implements Message ----------------------------------------------

  LayersPacket_Layer_Shadow* New() const;
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
  void CopyFrom(const LayersPacket_Layer_Shadow& from);
  void MergeFrom(const LayersPacket_Layer_Shadow& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  void DiscardUnknownFields();
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::std::string GetTypeName() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.Rect clip = 1;
  inline bool has_clip() const;
  inline void clear_clip();
  static const int kClipFieldNumber = 1;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Rect& clip() const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* mutable_clip();
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* release_clip();
  inline void set_allocated_clip(::mozilla::layers::layerscope::LayersPacket_Layer_Rect* clip);

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.Matrix transform = 2;
  inline bool has_transform() const;
  inline void clear_transform();
  static const int kTransformFieldNumber = 2;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix& transform() const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* mutable_transform();
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* release_transform();
  inline void set_allocated_transform(::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* transform);

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.Region vRegion = 3;
  inline bool has_vregion() const;
  inline void clear_vregion();
  static const int kVRegionFieldNumber = 3;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& vregion() const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* mutable_vregion();
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* release_vregion();
  inline void set_allocated_vregion(::mozilla::layers::layerscope::LayersPacket_Layer_Region* vregion);

  // @@protoc_insertion_point(class_scope:mozilla.layers.layerscope.LayersPacket.Layer.Shadow)
 private:
  inline void set_has_clip();
  inline void clear_has_clip();
  inline void set_has_transform();
  inline void clear_has_transform();
  inline void set_has_vregion();
  inline void clear_has_vregion();

  ::std::string _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* clip_;
  ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* transform_;
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* vregion_;
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto_impl();
  #else
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto();
  #endif
  friend void protobuf_AssignDesc_LayerScopePacket_2eproto();
  friend void protobuf_ShutdownFile_LayerScopePacket_2eproto();

  void InitAsDefaultInstance();
  static LayersPacket_Layer_Shadow* default_instance_;
};
// -------------------------------------------------------------------

class LayersPacket_Layer : public ::google::protobuf::MessageLite {
 public:
  LayersPacket_Layer();
  virtual ~LayersPacket_Layer();

  LayersPacket_Layer(const LayersPacket_Layer& from);

  inline LayersPacket_Layer& operator=(const LayersPacket_Layer& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::std::string& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::std::string* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const LayersPacket_Layer& default_instance();

  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  // Returns the internal default instance pointer. This function can
  // return NULL thus should not be used by the user. This is intended
  // for Protobuf internal code. Please use default_instance() declared
  // above instead.
  static inline const LayersPacket_Layer* internal_default_instance() {
    return default_instance_;
  }
  #endif

  void Swap(LayersPacket_Layer* other);

  // implements Message ----------------------------------------------

  LayersPacket_Layer* New() const;
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
  void CopyFrom(const LayersPacket_Layer& from);
  void MergeFrom(const LayersPacket_Layer& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  void DiscardUnknownFields();
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::std::string GetTypeName() const;

  // nested types ----------------------------------------------------

  typedef LayersPacket_Layer_Size Size;
  typedef LayersPacket_Layer_Rect Rect;
  typedef LayersPacket_Layer_Region Region;
  typedef LayersPacket_Layer_Matrix Matrix;
  typedef LayersPacket_Layer_Shadow Shadow;

  typedef LayersPacket_Layer_LayerType LayerType;
  static const LayerType UnknownLayer = LayersPacket_Layer_LayerType_UnknownLayer;
  static const LayerType LayerManager = LayersPacket_Layer_LayerType_LayerManager;
  static const LayerType ContainerLayer = LayersPacket_Layer_LayerType_ContainerLayer;
  static const LayerType PaintedLayer = LayersPacket_Layer_LayerType_PaintedLayer;
  static const LayerType CanvasLayer = LayersPacket_Layer_LayerType_CanvasLayer;
  static const LayerType ImageLayer = LayersPacket_Layer_LayerType_ImageLayer;
  static const LayerType ColorLayer = LayersPacket_Layer_LayerType_ColorLayer;
  static const LayerType RefLayer = LayersPacket_Layer_LayerType_RefLayer;
  static const LayerType ReadbackLayer = LayersPacket_Layer_LayerType_ReadbackLayer;
  static inline bool LayerType_IsValid(int value) {
    return LayersPacket_Layer_LayerType_IsValid(value);
  }
  static const LayerType LayerType_MIN =
    LayersPacket_Layer_LayerType_LayerType_MIN;
  static const LayerType LayerType_MAX =
    LayersPacket_Layer_LayerType_LayerType_MAX;
  static const int LayerType_ARRAYSIZE =
    LayersPacket_Layer_LayerType_LayerType_ARRAYSIZE;

  typedef LayersPacket_Layer_ScrollingDirect ScrollingDirect;
  static const ScrollingDirect VERTICAL = LayersPacket_Layer_ScrollingDirect_VERTICAL;
  static const ScrollingDirect HORIZONTAL = LayersPacket_Layer_ScrollingDirect_HORIZONTAL;
  static inline bool ScrollingDirect_IsValid(int value) {
    return LayersPacket_Layer_ScrollingDirect_IsValid(value);
  }
  static const ScrollingDirect ScrollingDirect_MIN =
    LayersPacket_Layer_ScrollingDirect_ScrollingDirect_MIN;
  static const ScrollingDirect ScrollingDirect_MAX =
    LayersPacket_Layer_ScrollingDirect_ScrollingDirect_MAX;
  static const int ScrollingDirect_ARRAYSIZE =
    LayersPacket_Layer_ScrollingDirect_ScrollingDirect_ARRAYSIZE;

  typedef LayersPacket_Layer_Filter Filter;
  static const Filter FILTER_FAST = LayersPacket_Layer_Filter_FILTER_FAST;
  static const Filter FILTER_GOOD = LayersPacket_Layer_Filter_FILTER_GOOD;
  static const Filter FILTER_BEST = LayersPacket_Layer_Filter_FILTER_BEST;
  static const Filter FILTER_NEAREST = LayersPacket_Layer_Filter_FILTER_NEAREST;
  static const Filter FILTER_BILINEAR = LayersPacket_Layer_Filter_FILTER_BILINEAR;
  static const Filter FILTER_GAUSSIAN = LayersPacket_Layer_Filter_FILTER_GAUSSIAN;
  static const Filter FILTER_SENTINEL = LayersPacket_Layer_Filter_FILTER_SENTINEL;
  static inline bool Filter_IsValid(int value) {
    return LayersPacket_Layer_Filter_IsValid(value);
  }
  static const Filter Filter_MIN =
    LayersPacket_Layer_Filter_Filter_MIN;
  static const Filter Filter_MAX =
    LayersPacket_Layer_Filter_Filter_MAX;
  static const int Filter_ARRAYSIZE =
    LayersPacket_Layer_Filter_Filter_ARRAYSIZE;

  // accessors -------------------------------------------------------

  // required .mozilla.layers.layerscope.LayersPacket.Layer.LayerType type = 1;
  inline bool has_type() const;
  inline void clear_type();
  static const int kTypeFieldNumber = 1;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_LayerType type() const;
  inline void set_type(::mozilla::layers::layerscope::LayersPacket_Layer_LayerType value);

  // required uint64 ptr = 2;
  inline bool has_ptr() const;
  inline void clear_ptr();
  static const int kPtrFieldNumber = 2;
  inline ::google::protobuf::uint64 ptr() const;
  inline void set_ptr(::google::protobuf::uint64 value);

  // required uint64 parentPtr = 3;
  inline bool has_parentptr() const;
  inline void clear_parentptr();
  static const int kParentPtrFieldNumber = 3;
  inline ::google::protobuf::uint64 parentptr() const;
  inline void set_parentptr(::google::protobuf::uint64 value);

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.Rect clip = 10;
  inline bool has_clip() const;
  inline void clear_clip();
  static const int kClipFieldNumber = 10;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Rect& clip() const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* mutable_clip();
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* release_clip();
  inline void set_allocated_clip(::mozilla::layers::layerscope::LayersPacket_Layer_Rect* clip);

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.Matrix transform = 11;
  inline bool has_transform() const;
  inline void clear_transform();
  static const int kTransformFieldNumber = 11;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix& transform() const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* mutable_transform();
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* release_transform();
  inline void set_allocated_transform(::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* transform);

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.Region vRegion = 12;
  inline bool has_vregion() const;
  inline void clear_vregion();
  static const int kVRegionFieldNumber = 12;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& vregion() const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* mutable_vregion();
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* release_vregion();
  inline void set_allocated_vregion(::mozilla::layers::layerscope::LayersPacket_Layer_Region* vregion);

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.Shadow shadow = 13;
  inline bool has_shadow() const;
  inline void clear_shadow();
  static const int kShadowFieldNumber = 13;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Shadow& shadow() const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Shadow* mutable_shadow();
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Shadow* release_shadow();
  inline void set_allocated_shadow(::mozilla::layers::layerscope::LayersPacket_Layer_Shadow* shadow);

  // optional float opacity = 14;
  inline bool has_opacity() const;
  inline void clear_opacity();
  static const int kOpacityFieldNumber = 14;
  inline float opacity() const;
  inline void set_opacity(float value);

  // optional bool cOpaque = 15;
  inline bool has_copaque() const;
  inline void clear_copaque();
  static const int kCOpaqueFieldNumber = 15;
  inline bool copaque() const;
  inline void set_copaque(bool value);

  // optional bool cAlpha = 16;
  inline bool has_calpha() const;
  inline void clear_calpha();
  static const int kCAlphaFieldNumber = 16;
  inline bool calpha() const;
  inline void set_calpha(bool value);

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.ScrollingDirect direct = 17;
  inline bool has_direct() const;
  inline void clear_direct();
  static const int kDirectFieldNumber = 17;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_ScrollingDirect direct() const;
  inline void set_direct(::mozilla::layers::layerscope::LayersPacket_Layer_ScrollingDirect value);

  // optional uint64 barID = 18;
  inline bool has_barid() const;
  inline void clear_barid();
  static const int kBarIDFieldNumber = 18;
  inline ::google::protobuf::uint64 barid() const;
  inline void set_barid(::google::protobuf::uint64 value);

  // optional uint64 mask = 19;
  inline bool has_mask() const;
  inline void clear_mask();
  static const int kMaskFieldNumber = 19;
  inline ::google::protobuf::uint64 mask() const;
  inline void set_mask(::google::protobuf::uint64 value);

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.Region hitRegion = 20;
  inline bool has_hitregion() const;
  inline void clear_hitregion();
  static const int kHitRegionFieldNumber = 20;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& hitregion() const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* mutable_hitregion();
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* release_hitregion();
  inline void set_allocated_hitregion(::mozilla::layers::layerscope::LayersPacket_Layer_Region* hitregion);

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.Region dispatchRegion = 21;
  inline bool has_dispatchregion() const;
  inline void clear_dispatchregion();
  static const int kDispatchRegionFieldNumber = 21;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& dispatchregion() const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* mutable_dispatchregion();
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* release_dispatchregion();
  inline void set_allocated_dispatchregion(::mozilla::layers::layerscope::LayersPacket_Layer_Region* dispatchregion);

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.Region noActionRegion = 22;
  inline bool has_noactionregion() const;
  inline void clear_noactionregion();
  static const int kNoActionRegionFieldNumber = 22;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& noactionregion() const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* mutable_noactionregion();
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* release_noactionregion();
  inline void set_allocated_noactionregion(::mozilla::layers::layerscope::LayersPacket_Layer_Region* noactionregion);

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.Region hPanRegion = 23;
  inline bool has_hpanregion() const;
  inline void clear_hpanregion();
  static const int kHPanRegionFieldNumber = 23;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& hpanregion() const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* mutable_hpanregion();
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* release_hpanregion();
  inline void set_allocated_hpanregion(::mozilla::layers::layerscope::LayersPacket_Layer_Region* hpanregion);

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.Region vPanRegion = 24;
  inline bool has_vpanregion() const;
  inline void clear_vpanregion();
  static const int kVPanRegionFieldNumber = 24;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& vpanregion() const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* mutable_vpanregion();
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* release_vpanregion();
  inline void set_allocated_vpanregion(::mozilla::layers::layerscope::LayersPacket_Layer_Region* vpanregion);

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.Region valid = 100;
  inline bool has_valid() const;
  inline void clear_valid();
  static const int kValidFieldNumber = 100;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& valid() const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* mutable_valid();
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* release_valid();
  inline void set_allocated_valid(::mozilla::layers::layerscope::LayersPacket_Layer_Region* valid);

  // optional uint32 color = 101;
  inline bool has_color() const;
  inline void clear_color();
  static const int kColorFieldNumber = 101;
  inline ::google::protobuf::uint32 color() const;
  inline void set_color(::google::protobuf::uint32 value);

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.Filter filter = 102;
  inline bool has_filter() const;
  inline void clear_filter();
  static const int kFilterFieldNumber = 102;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Filter filter() const;
  inline void set_filter(::mozilla::layers::layerscope::LayersPacket_Layer_Filter value);

  // optional uint64 refID = 103;
  inline bool has_refid() const;
  inline void clear_refid();
  static const int kRefIDFieldNumber = 103;
  inline ::google::protobuf::uint64 refid() const;
  inline void set_refid(::google::protobuf::uint64 value);

  // optional .mozilla.layers.layerscope.LayersPacket.Layer.Size size = 104;
  inline bool has_size() const;
  inline void clear_size();
  static const int kSizeFieldNumber = 104;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Size& size() const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Size* mutable_size();
  inline ::mozilla::layers::layerscope::LayersPacket_Layer_Size* release_size();
  inline void set_allocated_size(::mozilla::layers::layerscope::LayersPacket_Layer_Size* size);

  // @@protoc_insertion_point(class_scope:mozilla.layers.layerscope.LayersPacket.Layer)
 private:
  inline void set_has_type();
  inline void clear_has_type();
  inline void set_has_ptr();
  inline void clear_has_ptr();
  inline void set_has_parentptr();
  inline void clear_has_parentptr();
  inline void set_has_clip();
  inline void clear_has_clip();
  inline void set_has_transform();
  inline void clear_has_transform();
  inline void set_has_vregion();
  inline void clear_has_vregion();
  inline void set_has_shadow();
  inline void clear_has_shadow();
  inline void set_has_opacity();
  inline void clear_has_opacity();
  inline void set_has_copaque();
  inline void clear_has_copaque();
  inline void set_has_calpha();
  inline void clear_has_calpha();
  inline void set_has_direct();
  inline void clear_has_direct();
  inline void set_has_barid();
  inline void clear_has_barid();
  inline void set_has_mask();
  inline void clear_has_mask();
  inline void set_has_hitregion();
  inline void clear_has_hitregion();
  inline void set_has_dispatchregion();
  inline void clear_has_dispatchregion();
  inline void set_has_noactionregion();
  inline void clear_has_noactionregion();
  inline void set_has_hpanregion();
  inline void clear_has_hpanregion();
  inline void set_has_vpanregion();
  inline void clear_has_vpanregion();
  inline void set_has_valid();
  inline void clear_has_valid();
  inline void set_has_color();
  inline void clear_has_color();
  inline void set_has_filter();
  inline void clear_has_filter();
  inline void set_has_refid();
  inline void clear_has_refid();
  inline void set_has_size();
  inline void clear_has_size();

  ::std::string _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 ptr_;
  ::google::protobuf::uint64 parentptr_;
  ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* clip_;
  int type_;
  float opacity_;
  ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* transform_;
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* vregion_;
  ::mozilla::layers::layerscope::LayersPacket_Layer_Shadow* shadow_;
  bool copaque_;
  bool calpha_;
  int direct_;
  ::google::protobuf::uint64 barid_;
  ::google::protobuf::uint64 mask_;
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* hitregion_;
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* dispatchregion_;
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* noactionregion_;
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* hpanregion_;
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* vpanregion_;
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* valid_;
  ::google::protobuf::uint32 color_;
  int filter_;
  ::google::protobuf::uint64 refid_;
  ::mozilla::layers::layerscope::LayersPacket_Layer_Size* size_;
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto_impl();
  #else
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto();
  #endif
  friend void protobuf_AssignDesc_LayerScopePacket_2eproto();
  friend void protobuf_ShutdownFile_LayerScopePacket_2eproto();

  void InitAsDefaultInstance();
  static LayersPacket_Layer* default_instance_;
};
// -------------------------------------------------------------------

class LayersPacket : public ::google::protobuf::MessageLite {
 public:
  LayersPacket();
  virtual ~LayersPacket();

  LayersPacket(const LayersPacket& from);

  inline LayersPacket& operator=(const LayersPacket& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::std::string& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::std::string* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const LayersPacket& default_instance();

  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  // Returns the internal default instance pointer. This function can
  // return NULL thus should not be used by the user. This is intended
  // for Protobuf internal code. Please use default_instance() declared
  // above instead.
  static inline const LayersPacket* internal_default_instance() {
    return default_instance_;
  }
  #endif

  void Swap(LayersPacket* other);

  // implements Message ----------------------------------------------

  LayersPacket* New() const;
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
  void CopyFrom(const LayersPacket& from);
  void MergeFrom(const LayersPacket& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  void DiscardUnknownFields();
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::std::string GetTypeName() const;

  // nested types ----------------------------------------------------

  typedef LayersPacket_Layer Layer;

  // accessors -------------------------------------------------------

  // repeated .mozilla.layers.layerscope.LayersPacket.Layer layer = 1;
  inline int layer_size() const;
  inline void clear_layer();
  static const int kLayerFieldNumber = 1;
  inline const ::mozilla::layers::layerscope::LayersPacket_Layer& layer(int index) const;
  inline ::mozilla::layers::layerscope::LayersPacket_Layer* mutable_layer(int index);
  inline ::mozilla::layers::layerscope::LayersPacket_Layer* add_layer();
  inline const ::google::protobuf::RepeatedPtrField< ::mozilla::layers::layerscope::LayersPacket_Layer >&
      layer() const;
  inline ::google::protobuf::RepeatedPtrField< ::mozilla::layers::layerscope::LayersPacket_Layer >*
      mutable_layer();

  // @@protoc_insertion_point(class_scope:mozilla.layers.layerscope.LayersPacket)
 private:

  ::std::string _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::mozilla::layers::layerscope::LayersPacket_Layer > layer_;
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto_impl();
  #else
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto();
  #endif
  friend void protobuf_AssignDesc_LayerScopePacket_2eproto();
  friend void protobuf_ShutdownFile_LayerScopePacket_2eproto();

  void InitAsDefaultInstance();
  static LayersPacket* default_instance_;
};
// -------------------------------------------------------------------

class MetaPacket : public ::google::protobuf::MessageLite {
 public:
  MetaPacket();
  virtual ~MetaPacket();

  MetaPacket(const MetaPacket& from);

  inline MetaPacket& operator=(const MetaPacket& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::std::string& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::std::string* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const MetaPacket& default_instance();

  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  // Returns the internal default instance pointer. This function can
  // return NULL thus should not be used by the user. This is intended
  // for Protobuf internal code. Please use default_instance() declared
  // above instead.
  static inline const MetaPacket* internal_default_instance() {
    return default_instance_;
  }
  #endif

  void Swap(MetaPacket* other);

  // implements Message ----------------------------------------------

  MetaPacket* New() const;
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
  void CopyFrom(const MetaPacket& from);
  void MergeFrom(const MetaPacket& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  void DiscardUnknownFields();
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::std::string GetTypeName() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional bool composedByHwc = 1;
  inline bool has_composedbyhwc() const;
  inline void clear_composedbyhwc();
  static const int kComposedByHwcFieldNumber = 1;
  inline bool composedbyhwc() const;
  inline void set_composedbyhwc(bool value);

  // @@protoc_insertion_point(class_scope:mozilla.layers.layerscope.MetaPacket)
 private:
  inline void set_has_composedbyhwc();
  inline void clear_has_composedbyhwc();

  ::std::string _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  bool composedbyhwc_;
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto_impl();
  #else
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto();
  #endif
  friend void protobuf_AssignDesc_LayerScopePacket_2eproto();
  friend void protobuf_ShutdownFile_LayerScopePacket_2eproto();

  void InitAsDefaultInstance();
  static MetaPacket* default_instance_;
};
// -------------------------------------------------------------------

class DrawPacket_Rect : public ::google::protobuf::MessageLite {
 public:
  DrawPacket_Rect();
  virtual ~DrawPacket_Rect();

  DrawPacket_Rect(const DrawPacket_Rect& from);

  inline DrawPacket_Rect& operator=(const DrawPacket_Rect& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::std::string& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::std::string* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const DrawPacket_Rect& default_instance();

  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  // Returns the internal default instance pointer. This function can
  // return NULL thus should not be used by the user. This is intended
  // for Protobuf internal code. Please use default_instance() declared
  // above instead.
  static inline const DrawPacket_Rect* internal_default_instance() {
    return default_instance_;
  }
  #endif

  void Swap(DrawPacket_Rect* other);

  // implements Message ----------------------------------------------

  DrawPacket_Rect* New() const;
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
  void CopyFrom(const DrawPacket_Rect& from);
  void MergeFrom(const DrawPacket_Rect& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  void DiscardUnknownFields();
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::std::string GetTypeName() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required float x = 1;
  inline bool has_x() const;
  inline void clear_x();
  static const int kXFieldNumber = 1;
  inline float x() const;
  inline void set_x(float value);

  // required float y = 2;
  inline bool has_y() const;
  inline void clear_y();
  static const int kYFieldNumber = 2;
  inline float y() const;
  inline void set_y(float value);

  // required float w = 3;
  inline bool has_w() const;
  inline void clear_w();
  static const int kWFieldNumber = 3;
  inline float w() const;
  inline void set_w(float value);

  // required float h = 4;
  inline bool has_h() const;
  inline void clear_h();
  static const int kHFieldNumber = 4;
  inline float h() const;
  inline void set_h(float value);

  // @@protoc_insertion_point(class_scope:mozilla.layers.layerscope.DrawPacket.Rect)
 private:
  inline void set_has_x();
  inline void clear_has_x();
  inline void set_has_y();
  inline void clear_has_y();
  inline void set_has_w();
  inline void clear_has_w();
  inline void set_has_h();
  inline void clear_has_h();

  ::std::string _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  float x_;
  float y_;
  float w_;
  float h_;
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto_impl();
  #else
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto();
  #endif
  friend void protobuf_AssignDesc_LayerScopePacket_2eproto();
  friend void protobuf_ShutdownFile_LayerScopePacket_2eproto();

  void InitAsDefaultInstance();
  static DrawPacket_Rect* default_instance_;
};
// -------------------------------------------------------------------

class DrawPacket : public ::google::protobuf::MessageLite {
 public:
  DrawPacket();
  virtual ~DrawPacket();

  DrawPacket(const DrawPacket& from);

  inline DrawPacket& operator=(const DrawPacket& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::std::string& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::std::string* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const DrawPacket& default_instance();

  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  // Returns the internal default instance pointer. This function can
  // return NULL thus should not be used by the user. This is intended
  // for Protobuf internal code. Please use default_instance() declared
  // above instead.
  static inline const DrawPacket* internal_default_instance() {
    return default_instance_;
  }
  #endif

  void Swap(DrawPacket* other);

  // implements Message ----------------------------------------------

  DrawPacket* New() const;
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
  void CopyFrom(const DrawPacket& from);
  void MergeFrom(const DrawPacket& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  void DiscardUnknownFields();
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::std::string GetTypeName() const;

  // nested types ----------------------------------------------------

  typedef DrawPacket_Rect Rect;

  // accessors -------------------------------------------------------

  // required float offsetX = 1;
  inline bool has_offsetx() const;
  inline void clear_offsetx();
  static const int kOffsetXFieldNumber = 1;
  inline float offsetx() const;
  inline void set_offsetx(float value);

  // required float offsetY = 2;
  inline bool has_offsety() const;
  inline void clear_offsety();
  static const int kOffsetYFieldNumber = 2;
  inline float offsety() const;
  inline void set_offsety(float value);

  // repeated float mvMatrix = 3;
  inline int mvmatrix_size() const;
  inline void clear_mvmatrix();
  static const int kMvMatrixFieldNumber = 3;
  inline float mvmatrix(int index) const;
  inline void set_mvmatrix(int index, float value);
  inline void add_mvmatrix(float value);
  inline const ::google::protobuf::RepeatedField< float >&
      mvmatrix() const;
  inline ::google::protobuf::RepeatedField< float >*
      mutable_mvmatrix();

  // required uint32 totalRects = 4;
  inline bool has_totalrects() const;
  inline void clear_totalrects();
  static const int kTotalRectsFieldNumber = 4;
  inline ::google::protobuf::uint32 totalrects() const;
  inline void set_totalrects(::google::protobuf::uint32 value);

  // repeated .mozilla.layers.layerscope.DrawPacket.Rect layerRect = 5;
  inline int layerrect_size() const;
  inline void clear_layerrect();
  static const int kLayerRectFieldNumber = 5;
  inline const ::mozilla::layers::layerscope::DrawPacket_Rect& layerrect(int index) const;
  inline ::mozilla::layers::layerscope::DrawPacket_Rect* mutable_layerrect(int index);
  inline ::mozilla::layers::layerscope::DrawPacket_Rect* add_layerrect();
  inline const ::google::protobuf::RepeatedPtrField< ::mozilla::layers::layerscope::DrawPacket_Rect >&
      layerrect() const;
  inline ::google::protobuf::RepeatedPtrField< ::mozilla::layers::layerscope::DrawPacket_Rect >*
      mutable_layerrect();

  // required uint64 layerref = 6;
  inline bool has_layerref() const;
  inline void clear_layerref();
  static const int kLayerrefFieldNumber = 6;
  inline ::google::protobuf::uint64 layerref() const;
  inline void set_layerref(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:mozilla.layers.layerscope.DrawPacket)
 private:
  inline void set_has_offsetx();
  inline void clear_has_offsetx();
  inline void set_has_offsety();
  inline void clear_has_offsety();
  inline void set_has_totalrects();
  inline void clear_has_totalrects();
  inline void set_has_layerref();
  inline void clear_has_layerref();

  ::std::string _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  float offsetx_;
  float offsety_;
  ::google::protobuf::RepeatedField< float > mvmatrix_;
  ::google::protobuf::RepeatedPtrField< ::mozilla::layers::layerscope::DrawPacket_Rect > layerrect_;
  ::google::protobuf::uint64 layerref_;
  ::google::protobuf::uint32 totalrects_;
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto_impl();
  #else
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto();
  #endif
  friend void protobuf_AssignDesc_LayerScopePacket_2eproto();
  friend void protobuf_ShutdownFile_LayerScopePacket_2eproto();

  void InitAsDefaultInstance();
  static DrawPacket* default_instance_;
};
// -------------------------------------------------------------------

class Packet : public ::google::protobuf::MessageLite {
 public:
  Packet();
  virtual ~Packet();

  Packet(const Packet& from);

  inline Packet& operator=(const Packet& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::std::string& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::std::string* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const Packet& default_instance();

  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  // Returns the internal default instance pointer. This function can
  // return NULL thus should not be used by the user. This is intended
  // for Protobuf internal code. Please use default_instance() declared
  // above instead.
  static inline const Packet* internal_default_instance() {
    return default_instance_;
  }
  #endif

  void Swap(Packet* other);

  // implements Message ----------------------------------------------

  Packet* New() const;
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
  void CopyFrom(const Packet& from);
  void MergeFrom(const Packet& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  void DiscardUnknownFields();
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::std::string GetTypeName() const;

  // nested types ----------------------------------------------------

  typedef Packet_DataType DataType;
  static const DataType FRAMESTART = Packet_DataType_FRAMESTART;
  static const DataType FRAMEEND = Packet_DataType_FRAMEEND;
  static const DataType COLOR = Packet_DataType_COLOR;
  static const DataType TEXTURE = Packet_DataType_TEXTURE;
  static const DataType LAYERS = Packet_DataType_LAYERS;
  static const DataType META = Packet_DataType_META;
  static const DataType DRAW = Packet_DataType_DRAW;
  static inline bool DataType_IsValid(int value) {
    return Packet_DataType_IsValid(value);
  }
  static const DataType DataType_MIN =
    Packet_DataType_DataType_MIN;
  static const DataType DataType_MAX =
    Packet_DataType_DataType_MAX;
  static const int DataType_ARRAYSIZE =
    Packet_DataType_DataType_ARRAYSIZE;

  // accessors -------------------------------------------------------

  // required .mozilla.layers.layerscope.Packet.DataType type = 1;
  inline bool has_type() const;
  inline void clear_type();
  static const int kTypeFieldNumber = 1;
  inline ::mozilla::layers::layerscope::Packet_DataType type() const;
  inline void set_type(::mozilla::layers::layerscope::Packet_DataType value);

  // optional .mozilla.layers.layerscope.FramePacket frame = 2;
  inline bool has_frame() const;
  inline void clear_frame();
  static const int kFrameFieldNumber = 2;
  inline const ::mozilla::layers::layerscope::FramePacket& frame() const;
  inline ::mozilla::layers::layerscope::FramePacket* mutable_frame();
  inline ::mozilla::layers::layerscope::FramePacket* release_frame();
  inline void set_allocated_frame(::mozilla::layers::layerscope::FramePacket* frame);

  // optional .mozilla.layers.layerscope.ColorPacket color = 3;
  inline bool has_color() const;
  inline void clear_color();
  static const int kColorFieldNumber = 3;
  inline const ::mozilla::layers::layerscope::ColorPacket& color() const;
  inline ::mozilla::layers::layerscope::ColorPacket* mutable_color();
  inline ::mozilla::layers::layerscope::ColorPacket* release_color();
  inline void set_allocated_color(::mozilla::layers::layerscope::ColorPacket* color);

  // optional .mozilla.layers.layerscope.TexturePacket texture = 4;
  inline bool has_texture() const;
  inline void clear_texture();
  static const int kTextureFieldNumber = 4;
  inline const ::mozilla::layers::layerscope::TexturePacket& texture() const;
  inline ::mozilla::layers::layerscope::TexturePacket* mutable_texture();
  inline ::mozilla::layers::layerscope::TexturePacket* release_texture();
  inline void set_allocated_texture(::mozilla::layers::layerscope::TexturePacket* texture);

  // optional .mozilla.layers.layerscope.LayersPacket layers = 5;
  inline bool has_layers() const;
  inline void clear_layers();
  static const int kLayersFieldNumber = 5;
  inline const ::mozilla::layers::layerscope::LayersPacket& layers() const;
  inline ::mozilla::layers::layerscope::LayersPacket* mutable_layers();
  inline ::mozilla::layers::layerscope::LayersPacket* release_layers();
  inline void set_allocated_layers(::mozilla::layers::layerscope::LayersPacket* layers);

  // optional .mozilla.layers.layerscope.MetaPacket meta = 6;
  inline bool has_meta() const;
  inline void clear_meta();
  static const int kMetaFieldNumber = 6;
  inline const ::mozilla::layers::layerscope::MetaPacket& meta() const;
  inline ::mozilla::layers::layerscope::MetaPacket* mutable_meta();
  inline ::mozilla::layers::layerscope::MetaPacket* release_meta();
  inline void set_allocated_meta(::mozilla::layers::layerscope::MetaPacket* meta);

  // optional .mozilla.layers.layerscope.DrawPacket draw = 7;
  inline bool has_draw() const;
  inline void clear_draw();
  static const int kDrawFieldNumber = 7;
  inline const ::mozilla::layers::layerscope::DrawPacket& draw() const;
  inline ::mozilla::layers::layerscope::DrawPacket* mutable_draw();
  inline ::mozilla::layers::layerscope::DrawPacket* release_draw();
  inline void set_allocated_draw(::mozilla::layers::layerscope::DrawPacket* draw);

  // @@protoc_insertion_point(class_scope:mozilla.layers.layerscope.Packet)
 private:
  inline void set_has_type();
  inline void clear_has_type();
  inline void set_has_frame();
  inline void clear_has_frame();
  inline void set_has_color();
  inline void clear_has_color();
  inline void set_has_texture();
  inline void clear_has_texture();
  inline void set_has_layers();
  inline void clear_has_layers();
  inline void set_has_meta();
  inline void clear_has_meta();
  inline void set_has_draw();
  inline void clear_has_draw();

  ::std::string _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::mozilla::layers::layerscope::FramePacket* frame_;
  ::mozilla::layers::layerscope::ColorPacket* color_;
  ::mozilla::layers::layerscope::TexturePacket* texture_;
  ::mozilla::layers::layerscope::LayersPacket* layers_;
  ::mozilla::layers::layerscope::MetaPacket* meta_;
  ::mozilla::layers::layerscope::DrawPacket* draw_;
  int type_;
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto_impl();
  #else
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto();
  #endif
  friend void protobuf_AssignDesc_LayerScopePacket_2eproto();
  friend void protobuf_ShutdownFile_LayerScopePacket_2eproto();

  void InitAsDefaultInstance();
  static Packet* default_instance_;
};
// -------------------------------------------------------------------

class CommandPacket : public ::google::protobuf::MessageLite {
 public:
  CommandPacket();
  virtual ~CommandPacket();

  CommandPacket(const CommandPacket& from);

  inline CommandPacket& operator=(const CommandPacket& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::std::string& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::std::string* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const CommandPacket& default_instance();

  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  // Returns the internal default instance pointer. This function can
  // return NULL thus should not be used by the user. This is intended
  // for Protobuf internal code. Please use default_instance() declared
  // above instead.
  static inline const CommandPacket* internal_default_instance() {
    return default_instance_;
  }
  #endif

  void Swap(CommandPacket* other);

  // implements Message ----------------------------------------------

  CommandPacket* New() const;
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from);
  void CopyFrom(const CommandPacket& from);
  void MergeFrom(const CommandPacket& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  void DiscardUnknownFields();
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::std::string GetTypeName() const;

  // nested types ----------------------------------------------------

  typedef CommandPacket_CmdType CmdType;
  static const CmdType NO_OP = CommandPacket_CmdType_NO_OP;
  static const CmdType LAYERS_TREE = CommandPacket_CmdType_LAYERS_TREE;
  static const CmdType LAYERS_BUFFER = CommandPacket_CmdType_LAYERS_BUFFER;
  static inline bool CmdType_IsValid(int value) {
    return CommandPacket_CmdType_IsValid(value);
  }
  static const CmdType CmdType_MIN =
    CommandPacket_CmdType_CmdType_MIN;
  static const CmdType CmdType_MAX =
    CommandPacket_CmdType_CmdType_MAX;
  static const int CmdType_ARRAYSIZE =
    CommandPacket_CmdType_CmdType_ARRAYSIZE;

  // accessors -------------------------------------------------------

  // required .mozilla.layers.layerscope.CommandPacket.CmdType type = 1;
  inline bool has_type() const;
  inline void clear_type();
  static const int kTypeFieldNumber = 1;
  inline ::mozilla::layers::layerscope::CommandPacket_CmdType type() const;
  inline void set_type(::mozilla::layers::layerscope::CommandPacket_CmdType value);

  // optional bool value = 2;
  inline bool has_value() const;
  inline void clear_value();
  static const int kValueFieldNumber = 2;
  inline bool value() const;
  inline void set_value(bool value);

  // @@protoc_insertion_point(class_scope:mozilla.layers.layerscope.CommandPacket)
 private:
  inline void set_has_type();
  inline void clear_has_type();
  inline void set_has_value();
  inline void clear_has_value();

  ::std::string _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  int type_;
  bool value_;
  #ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto_impl();
  #else
  friend void  protobuf_AddDesc_LayerScopePacket_2eproto();
  #endif
  friend void protobuf_AssignDesc_LayerScopePacket_2eproto();
  friend void protobuf_ShutdownFile_LayerScopePacket_2eproto();

  void InitAsDefaultInstance();
  static CommandPacket* default_instance_;
};
// ===================================================================


// ===================================================================

// FramePacket

// optional uint64 value = 1;
inline bool FramePacket::has_value() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void FramePacket::set_has_value() {
  _has_bits_[0] |= 0x00000001u;
}
inline void FramePacket::clear_has_value() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void FramePacket::clear_value() {
  value_ = GOOGLE_ULONGLONG(0);
  clear_has_value();
}
inline ::google::protobuf::uint64 FramePacket::value() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.FramePacket.value)
  return value_;
}
inline void FramePacket::set_value(::google::protobuf::uint64 value) {
  set_has_value();
  value_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.FramePacket.value)
}

// -------------------------------------------------------------------

// ColorPacket

// required uint64 layerref = 1;
inline bool ColorPacket::has_layerref() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ColorPacket::set_has_layerref() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ColorPacket::clear_has_layerref() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ColorPacket::clear_layerref() {
  layerref_ = GOOGLE_ULONGLONG(0);
  clear_has_layerref();
}
inline ::google::protobuf::uint64 ColorPacket::layerref() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.ColorPacket.layerref)
  return layerref_;
}
inline void ColorPacket::set_layerref(::google::protobuf::uint64 value) {
  set_has_layerref();
  layerref_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.ColorPacket.layerref)
}

// optional uint32 width = 2;
inline bool ColorPacket::has_width() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ColorPacket::set_has_width() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ColorPacket::clear_has_width() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ColorPacket::clear_width() {
  width_ = 0u;
  clear_has_width();
}
inline ::google::protobuf::uint32 ColorPacket::width() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.ColorPacket.width)
  return width_;
}
inline void ColorPacket::set_width(::google::protobuf::uint32 value) {
  set_has_width();
  width_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.ColorPacket.width)
}

// optional uint32 height = 3;
inline bool ColorPacket::has_height() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ColorPacket::set_has_height() {
  _has_bits_[0] |= 0x00000004u;
}
inline void ColorPacket::clear_has_height() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void ColorPacket::clear_height() {
  height_ = 0u;
  clear_has_height();
}
inline ::google::protobuf::uint32 ColorPacket::height() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.ColorPacket.height)
  return height_;
}
inline void ColorPacket::set_height(::google::protobuf::uint32 value) {
  set_has_height();
  height_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.ColorPacket.height)
}

// optional uint32 color = 4;
inline bool ColorPacket::has_color() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void ColorPacket::set_has_color() {
  _has_bits_[0] |= 0x00000008u;
}
inline void ColorPacket::clear_has_color() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void ColorPacket::clear_color() {
  color_ = 0u;
  clear_has_color();
}
inline ::google::protobuf::uint32 ColorPacket::color() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.ColorPacket.color)
  return color_;
}
inline void ColorPacket::set_color(::google::protobuf::uint32 value) {
  set_has_color();
  color_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.ColorPacket.color)
}

// -------------------------------------------------------------------

// TexturePacket

// required uint64 layerref = 1;
inline bool TexturePacket::has_layerref() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TexturePacket::set_has_layerref() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TexturePacket::clear_has_layerref() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TexturePacket::clear_layerref() {
  layerref_ = GOOGLE_ULONGLONG(0);
  clear_has_layerref();
}
inline ::google::protobuf::uint64 TexturePacket::layerref() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.TexturePacket.layerref)
  return layerref_;
}
inline void TexturePacket::set_layerref(::google::protobuf::uint64 value) {
  set_has_layerref();
  layerref_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.TexturePacket.layerref)
}

// optional uint32 width = 2;
inline bool TexturePacket::has_width() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TexturePacket::set_has_width() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TexturePacket::clear_has_width() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TexturePacket::clear_width() {
  width_ = 0u;
  clear_has_width();
}
inline ::google::protobuf::uint32 TexturePacket::width() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.TexturePacket.width)
  return width_;
}
inline void TexturePacket::set_width(::google::protobuf::uint32 value) {
  set_has_width();
  width_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.TexturePacket.width)
}

// optional uint32 height = 3;
inline bool TexturePacket::has_height() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void TexturePacket::set_has_height() {
  _has_bits_[0] |= 0x00000004u;
}
inline void TexturePacket::clear_has_height() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void TexturePacket::clear_height() {
  height_ = 0u;
  clear_has_height();
}
inline ::google::protobuf::uint32 TexturePacket::height() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.TexturePacket.height)
  return height_;
}
inline void TexturePacket::set_height(::google::protobuf::uint32 value) {
  set_has_height();
  height_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.TexturePacket.height)
}

// optional uint32 stride = 4;
inline bool TexturePacket::has_stride() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void TexturePacket::set_has_stride() {
  _has_bits_[0] |= 0x00000008u;
}
inline void TexturePacket::clear_has_stride() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void TexturePacket::clear_stride() {
  stride_ = 0u;
  clear_has_stride();
}
inline ::google::protobuf::uint32 TexturePacket::stride() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.TexturePacket.stride)
  return stride_;
}
inline void TexturePacket::set_stride(::google::protobuf::uint32 value) {
  set_has_stride();
  stride_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.TexturePacket.stride)
}

// optional uint32 name = 5;
inline bool TexturePacket::has_name() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void TexturePacket::set_has_name() {
  _has_bits_[0] |= 0x00000010u;
}
inline void TexturePacket::clear_has_name() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void TexturePacket::clear_name() {
  name_ = 0u;
  clear_has_name();
}
inline ::google::protobuf::uint32 TexturePacket::name() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.TexturePacket.name)
  return name_;
}
inline void TexturePacket::set_name(::google::protobuf::uint32 value) {
  set_has_name();
  name_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.TexturePacket.name)
}

// optional uint32 target = 6;
inline bool TexturePacket::has_target() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void TexturePacket::set_has_target() {
  _has_bits_[0] |= 0x00000020u;
}
inline void TexturePacket::clear_has_target() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void TexturePacket::clear_target() {
  target_ = 0u;
  clear_has_target();
}
inline ::google::protobuf::uint32 TexturePacket::target() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.TexturePacket.target)
  return target_;
}
inline void TexturePacket::set_target(::google::protobuf::uint32 value) {
  set_has_target();
  target_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.TexturePacket.target)
}

// optional uint32 dataformat = 7;
inline bool TexturePacket::has_dataformat() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void TexturePacket::set_has_dataformat() {
  _has_bits_[0] |= 0x00000040u;
}
inline void TexturePacket::clear_has_dataformat() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void TexturePacket::clear_dataformat() {
  dataformat_ = 0u;
  clear_has_dataformat();
}
inline ::google::protobuf::uint32 TexturePacket::dataformat() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.TexturePacket.dataformat)
  return dataformat_;
}
inline void TexturePacket::set_dataformat(::google::protobuf::uint32 value) {
  set_has_dataformat();
  dataformat_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.TexturePacket.dataformat)
}

// optional uint64 glcontext = 8;
inline bool TexturePacket::has_glcontext() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void TexturePacket::set_has_glcontext() {
  _has_bits_[0] |= 0x00000080u;
}
inline void TexturePacket::clear_has_glcontext() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void TexturePacket::clear_glcontext() {
  glcontext_ = GOOGLE_ULONGLONG(0);
  clear_has_glcontext();
}
inline ::google::protobuf::uint64 TexturePacket::glcontext() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.TexturePacket.glcontext)
  return glcontext_;
}
inline void TexturePacket::set_glcontext(::google::protobuf::uint64 value) {
  set_has_glcontext();
  glcontext_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.TexturePacket.glcontext)
}

// optional bytes data = 9;
inline bool TexturePacket::has_data() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void TexturePacket::set_has_data() {
  _has_bits_[0] |= 0x00000100u;
}
inline void TexturePacket::clear_has_data() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void TexturePacket::clear_data() {
  if (data_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    data_->clear();
  }
  clear_has_data();
}
inline const ::std::string& TexturePacket::data() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.TexturePacket.data)
  return *data_;
}
inline void TexturePacket::set_data(const ::std::string& value) {
  set_has_data();
  if (data_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    data_ = new ::std::string;
  }
  data_->assign(value);
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.TexturePacket.data)
}
inline void TexturePacket::set_data(const char* value) {
  set_has_data();
  if (data_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    data_ = new ::std::string;
  }
  data_->assign(value);
  // @@protoc_insertion_point(field_set_char:mozilla.layers.layerscope.TexturePacket.data)
}
inline void TexturePacket::set_data(const void* value, size_t size) {
  set_has_data();
  if (data_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    data_ = new ::std::string;
  }
  data_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:mozilla.layers.layerscope.TexturePacket.data)
}
inline ::std::string* TexturePacket::mutable_data() {
  set_has_data();
  if (data_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    data_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.TexturePacket.data)
  return data_;
}
inline ::std::string* TexturePacket::release_data() {
  clear_has_data();
  if (data_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = data_;
    data_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void TexturePacket::set_allocated_data(::std::string* data) {
  if (data_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete data_;
  }
  if (data) {
    set_has_data();
    data_ = data;
  } else {
    clear_has_data();
    data_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.TexturePacket.data)
}

// -------------------------------------------------------------------

// LayersPacket_Layer_Size

// optional int32 w = 1;
inline bool LayersPacket_Layer_Size::has_w() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void LayersPacket_Layer_Size::set_has_w() {
  _has_bits_[0] |= 0x00000001u;
}
inline void LayersPacket_Layer_Size::clear_has_w() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void LayersPacket_Layer_Size::clear_w() {
  w_ = 0;
  clear_has_w();
}
inline ::google::protobuf::int32 LayersPacket_Layer_Size::w() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.Size.w)
  return w_;
}
inline void LayersPacket_Layer_Size::set_w(::google::protobuf::int32 value) {
  set_has_w();
  w_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.Size.w)
}

// optional int32 h = 2;
inline bool LayersPacket_Layer_Size::has_h() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void LayersPacket_Layer_Size::set_has_h() {
  _has_bits_[0] |= 0x00000002u;
}
inline void LayersPacket_Layer_Size::clear_has_h() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void LayersPacket_Layer_Size::clear_h() {
  h_ = 0;
  clear_has_h();
}
inline ::google::protobuf::int32 LayersPacket_Layer_Size::h() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.Size.h)
  return h_;
}
inline void LayersPacket_Layer_Size::set_h(::google::protobuf::int32 value) {
  set_has_h();
  h_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.Size.h)
}

// -------------------------------------------------------------------

// LayersPacket_Layer_Rect

// optional int32 x = 1;
inline bool LayersPacket_Layer_Rect::has_x() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void LayersPacket_Layer_Rect::set_has_x() {
  _has_bits_[0] |= 0x00000001u;
}
inline void LayersPacket_Layer_Rect::clear_has_x() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void LayersPacket_Layer_Rect::clear_x() {
  x_ = 0;
  clear_has_x();
}
inline ::google::protobuf::int32 LayersPacket_Layer_Rect::x() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.Rect.x)
  return x_;
}
inline void LayersPacket_Layer_Rect::set_x(::google::protobuf::int32 value) {
  set_has_x();
  x_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.Rect.x)
}

// optional int32 y = 2;
inline bool LayersPacket_Layer_Rect::has_y() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void LayersPacket_Layer_Rect::set_has_y() {
  _has_bits_[0] |= 0x00000002u;
}
inline void LayersPacket_Layer_Rect::clear_has_y() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void LayersPacket_Layer_Rect::clear_y() {
  y_ = 0;
  clear_has_y();
}
inline ::google::protobuf::int32 LayersPacket_Layer_Rect::y() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.Rect.y)
  return y_;
}
inline void LayersPacket_Layer_Rect::set_y(::google::protobuf::int32 value) {
  set_has_y();
  y_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.Rect.y)
}

// optional int32 w = 3;
inline bool LayersPacket_Layer_Rect::has_w() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void LayersPacket_Layer_Rect::set_has_w() {
  _has_bits_[0] |= 0x00000004u;
}
inline void LayersPacket_Layer_Rect::clear_has_w() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void LayersPacket_Layer_Rect::clear_w() {
  w_ = 0;
  clear_has_w();
}
inline ::google::protobuf::int32 LayersPacket_Layer_Rect::w() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.Rect.w)
  return w_;
}
inline void LayersPacket_Layer_Rect::set_w(::google::protobuf::int32 value) {
  set_has_w();
  w_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.Rect.w)
}

// optional int32 h = 4;
inline bool LayersPacket_Layer_Rect::has_h() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void LayersPacket_Layer_Rect::set_has_h() {
  _has_bits_[0] |= 0x00000008u;
}
inline void LayersPacket_Layer_Rect::clear_has_h() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void LayersPacket_Layer_Rect::clear_h() {
  h_ = 0;
  clear_has_h();
}
inline ::google::protobuf::int32 LayersPacket_Layer_Rect::h() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.Rect.h)
  return h_;
}
inline void LayersPacket_Layer_Rect::set_h(::google::protobuf::int32 value) {
  set_has_h();
  h_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.Rect.h)
}

// -------------------------------------------------------------------

// LayersPacket_Layer_Region

// repeated .mozilla.layers.layerscope.LayersPacket.Layer.Rect r = 1;
inline int LayersPacket_Layer_Region::r_size() const {
  return r_.size();
}
inline void LayersPacket_Layer_Region::clear_r() {
  r_.Clear();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Rect& LayersPacket_Layer_Region::r(int index) const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.Region.r)
  return r_.Get(index);
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* LayersPacket_Layer_Region::mutable_r(int index) {
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.Layer.Region.r)
  return r_.Mutable(index);
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* LayersPacket_Layer_Region::add_r() {
  // @@protoc_insertion_point(field_add:mozilla.layers.layerscope.LayersPacket.Layer.Region.r)
  return r_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::mozilla::layers::layerscope::LayersPacket_Layer_Rect >&
LayersPacket_Layer_Region::r() const {
  // @@protoc_insertion_point(field_list:mozilla.layers.layerscope.LayersPacket.Layer.Region.r)
  return r_;
}
inline ::google::protobuf::RepeatedPtrField< ::mozilla::layers::layerscope::LayersPacket_Layer_Rect >*
LayersPacket_Layer_Region::mutable_r() {
  // @@protoc_insertion_point(field_mutable_list:mozilla.layers.layerscope.LayersPacket.Layer.Region.r)
  return &r_;
}

// -------------------------------------------------------------------

// LayersPacket_Layer_Matrix

// optional bool is2D = 1;
inline bool LayersPacket_Layer_Matrix::has_is2d() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void LayersPacket_Layer_Matrix::set_has_is2d() {
  _has_bits_[0] |= 0x00000001u;
}
inline void LayersPacket_Layer_Matrix::clear_has_is2d() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void LayersPacket_Layer_Matrix::clear_is2d() {
  is2d_ = false;
  clear_has_is2d();
}
inline bool LayersPacket_Layer_Matrix::is2d() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.Matrix.is2D)
  return is2d_;
}
inline void LayersPacket_Layer_Matrix::set_is2d(bool value) {
  set_has_is2d();
  is2d_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.Matrix.is2D)
}

// optional bool isId = 2;
inline bool LayersPacket_Layer_Matrix::has_isid() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void LayersPacket_Layer_Matrix::set_has_isid() {
  _has_bits_[0] |= 0x00000002u;
}
inline void LayersPacket_Layer_Matrix::clear_has_isid() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void LayersPacket_Layer_Matrix::clear_isid() {
  isid_ = false;
  clear_has_isid();
}
inline bool LayersPacket_Layer_Matrix::isid() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.Matrix.isId)
  return isid_;
}
inline void LayersPacket_Layer_Matrix::set_isid(bool value) {
  set_has_isid();
  isid_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.Matrix.isId)
}

// repeated float m = 3;
inline int LayersPacket_Layer_Matrix::m_size() const {
  return m_.size();
}
inline void LayersPacket_Layer_Matrix::clear_m() {
  m_.Clear();
}
inline float LayersPacket_Layer_Matrix::m(int index) const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.Matrix.m)
  return m_.Get(index);
}
inline void LayersPacket_Layer_Matrix::set_m(int index, float value) {
  m_.Set(index, value);
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.Matrix.m)
}
inline void LayersPacket_Layer_Matrix::add_m(float value) {
  m_.Add(value);
  // @@protoc_insertion_point(field_add:mozilla.layers.layerscope.LayersPacket.Layer.Matrix.m)
}
inline const ::google::protobuf::RepeatedField< float >&
LayersPacket_Layer_Matrix::m() const {
  // @@protoc_insertion_point(field_list:mozilla.layers.layerscope.LayersPacket.Layer.Matrix.m)
  return m_;
}
inline ::google::protobuf::RepeatedField< float >*
LayersPacket_Layer_Matrix::mutable_m() {
  // @@protoc_insertion_point(field_mutable_list:mozilla.layers.layerscope.LayersPacket.Layer.Matrix.m)
  return &m_;
}

// -------------------------------------------------------------------

// LayersPacket_Layer_Shadow

// optional .mozilla.layers.layerscope.LayersPacket.Layer.Rect clip = 1;
inline bool LayersPacket_Layer_Shadow::has_clip() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void LayersPacket_Layer_Shadow::set_has_clip() {
  _has_bits_[0] |= 0x00000001u;
}
inline void LayersPacket_Layer_Shadow::clear_has_clip() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void LayersPacket_Layer_Shadow::clear_clip() {
  if (clip_ != NULL) clip_->::mozilla::layers::layerscope::LayersPacket_Layer_Rect::Clear();
  clear_has_clip();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Rect& LayersPacket_Layer_Shadow::clip() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.Shadow.clip)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return clip_ != NULL ? *clip_ : *default_instance().clip_;
#else
  return clip_ != NULL ? *clip_ : *default_instance_->clip_;
#endif
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* LayersPacket_Layer_Shadow::mutable_clip() {
  set_has_clip();
  if (clip_ == NULL) clip_ = new ::mozilla::layers::layerscope::LayersPacket_Layer_Rect;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.Layer.Shadow.clip)
  return clip_;
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* LayersPacket_Layer_Shadow::release_clip() {
  clear_has_clip();
  ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* temp = clip_;
  clip_ = NULL;
  return temp;
}
inline void LayersPacket_Layer_Shadow::set_allocated_clip(::mozilla::layers::layerscope::LayersPacket_Layer_Rect* clip) {
  delete clip_;
  clip_ = clip;
  if (clip) {
    set_has_clip();
  } else {
    clear_has_clip();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.LayersPacket.Layer.Shadow.clip)
}

// optional .mozilla.layers.layerscope.LayersPacket.Layer.Matrix transform = 2;
inline bool LayersPacket_Layer_Shadow::has_transform() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void LayersPacket_Layer_Shadow::set_has_transform() {
  _has_bits_[0] |= 0x00000002u;
}
inline void LayersPacket_Layer_Shadow::clear_has_transform() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void LayersPacket_Layer_Shadow::clear_transform() {
  if (transform_ != NULL) transform_->::mozilla::layers::layerscope::LayersPacket_Layer_Matrix::Clear();
  clear_has_transform();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix& LayersPacket_Layer_Shadow::transform() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.Shadow.transform)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return transform_ != NULL ? *transform_ : *default_instance().transform_;
#else
  return transform_ != NULL ? *transform_ : *default_instance_->transform_;
#endif
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* LayersPacket_Layer_Shadow::mutable_transform() {
  set_has_transform();
  if (transform_ == NULL) transform_ = new ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.Layer.Shadow.transform)
  return transform_;
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* LayersPacket_Layer_Shadow::release_transform() {
  clear_has_transform();
  ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* temp = transform_;
  transform_ = NULL;
  return temp;
}
inline void LayersPacket_Layer_Shadow::set_allocated_transform(::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* transform) {
  delete transform_;
  transform_ = transform;
  if (transform) {
    set_has_transform();
  } else {
    clear_has_transform();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.LayersPacket.Layer.Shadow.transform)
}

// optional .mozilla.layers.layerscope.LayersPacket.Layer.Region vRegion = 3;
inline bool LayersPacket_Layer_Shadow::has_vregion() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void LayersPacket_Layer_Shadow::set_has_vregion() {
  _has_bits_[0] |= 0x00000004u;
}
inline void LayersPacket_Layer_Shadow::clear_has_vregion() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void LayersPacket_Layer_Shadow::clear_vregion() {
  if (vregion_ != NULL) vregion_->::mozilla::layers::layerscope::LayersPacket_Layer_Region::Clear();
  clear_has_vregion();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& LayersPacket_Layer_Shadow::vregion() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.Shadow.vRegion)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return vregion_ != NULL ? *vregion_ : *default_instance().vregion_;
#else
  return vregion_ != NULL ? *vregion_ : *default_instance_->vregion_;
#endif
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer_Shadow::mutable_vregion() {
  set_has_vregion();
  if (vregion_ == NULL) vregion_ = new ::mozilla::layers::layerscope::LayersPacket_Layer_Region;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.Layer.Shadow.vRegion)
  return vregion_;
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer_Shadow::release_vregion() {
  clear_has_vregion();
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* temp = vregion_;
  vregion_ = NULL;
  return temp;
}
inline void LayersPacket_Layer_Shadow::set_allocated_vregion(::mozilla::layers::layerscope::LayersPacket_Layer_Region* vregion) {
  delete vregion_;
  vregion_ = vregion;
  if (vregion) {
    set_has_vregion();
  } else {
    clear_has_vregion();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.LayersPacket.Layer.Shadow.vRegion)
}

// -------------------------------------------------------------------

// LayersPacket_Layer

// required .mozilla.layers.layerscope.LayersPacket.Layer.LayerType type = 1;
inline bool LayersPacket_Layer::has_type() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void LayersPacket_Layer::set_has_type() {
  _has_bits_[0] |= 0x00000001u;
}
inline void LayersPacket_Layer::clear_has_type() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void LayersPacket_Layer::clear_type() {
  type_ = 0;
  clear_has_type();
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_LayerType LayersPacket_Layer::type() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.type)
  return static_cast< ::mozilla::layers::layerscope::LayersPacket_Layer_LayerType >(type_);
}
inline void LayersPacket_Layer::set_type(::mozilla::layers::layerscope::LayersPacket_Layer_LayerType value) {
  assert(::mozilla::layers::layerscope::LayersPacket_Layer_LayerType_IsValid(value));
  set_has_type();
  type_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.type)
}

// required uint64 ptr = 2;
inline bool LayersPacket_Layer::has_ptr() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void LayersPacket_Layer::set_has_ptr() {
  _has_bits_[0] |= 0x00000002u;
}
inline void LayersPacket_Layer::clear_has_ptr() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void LayersPacket_Layer::clear_ptr() {
  ptr_ = GOOGLE_ULONGLONG(0);
  clear_has_ptr();
}
inline ::google::protobuf::uint64 LayersPacket_Layer::ptr() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.ptr)
  return ptr_;
}
inline void LayersPacket_Layer::set_ptr(::google::protobuf::uint64 value) {
  set_has_ptr();
  ptr_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.ptr)
}

// required uint64 parentPtr = 3;
inline bool LayersPacket_Layer::has_parentptr() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void LayersPacket_Layer::set_has_parentptr() {
  _has_bits_[0] |= 0x00000004u;
}
inline void LayersPacket_Layer::clear_has_parentptr() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void LayersPacket_Layer::clear_parentptr() {
  parentptr_ = GOOGLE_ULONGLONG(0);
  clear_has_parentptr();
}
inline ::google::protobuf::uint64 LayersPacket_Layer::parentptr() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.parentPtr)
  return parentptr_;
}
inline void LayersPacket_Layer::set_parentptr(::google::protobuf::uint64 value) {
  set_has_parentptr();
  parentptr_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.parentPtr)
}

// optional .mozilla.layers.layerscope.LayersPacket.Layer.Rect clip = 10;
inline bool LayersPacket_Layer::has_clip() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void LayersPacket_Layer::set_has_clip() {
  _has_bits_[0] |= 0x00000008u;
}
inline void LayersPacket_Layer::clear_has_clip() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void LayersPacket_Layer::clear_clip() {
  if (clip_ != NULL) clip_->::mozilla::layers::layerscope::LayersPacket_Layer_Rect::Clear();
  clear_has_clip();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Rect& LayersPacket_Layer::clip() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.clip)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return clip_ != NULL ? *clip_ : *default_instance().clip_;
#else
  return clip_ != NULL ? *clip_ : *default_instance_->clip_;
#endif
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* LayersPacket_Layer::mutable_clip() {
  set_has_clip();
  if (clip_ == NULL) clip_ = new ::mozilla::layers::layerscope::LayersPacket_Layer_Rect;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.Layer.clip)
  return clip_;
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* LayersPacket_Layer::release_clip() {
  clear_has_clip();
  ::mozilla::layers::layerscope::LayersPacket_Layer_Rect* temp = clip_;
  clip_ = NULL;
  return temp;
}
inline void LayersPacket_Layer::set_allocated_clip(::mozilla::layers::layerscope::LayersPacket_Layer_Rect* clip) {
  delete clip_;
  clip_ = clip;
  if (clip) {
    set_has_clip();
  } else {
    clear_has_clip();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.LayersPacket.Layer.clip)
}

// optional .mozilla.layers.layerscope.LayersPacket.Layer.Matrix transform = 11;
inline bool LayersPacket_Layer::has_transform() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void LayersPacket_Layer::set_has_transform() {
  _has_bits_[0] |= 0x00000010u;
}
inline void LayersPacket_Layer::clear_has_transform() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void LayersPacket_Layer::clear_transform() {
  if (transform_ != NULL) transform_->::mozilla::layers::layerscope::LayersPacket_Layer_Matrix::Clear();
  clear_has_transform();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix& LayersPacket_Layer::transform() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.transform)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return transform_ != NULL ? *transform_ : *default_instance().transform_;
#else
  return transform_ != NULL ? *transform_ : *default_instance_->transform_;
#endif
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* LayersPacket_Layer::mutable_transform() {
  set_has_transform();
  if (transform_ == NULL) transform_ = new ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.Layer.transform)
  return transform_;
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* LayersPacket_Layer::release_transform() {
  clear_has_transform();
  ::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* temp = transform_;
  transform_ = NULL;
  return temp;
}
inline void LayersPacket_Layer::set_allocated_transform(::mozilla::layers::layerscope::LayersPacket_Layer_Matrix* transform) {
  delete transform_;
  transform_ = transform;
  if (transform) {
    set_has_transform();
  } else {
    clear_has_transform();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.LayersPacket.Layer.transform)
}

// optional .mozilla.layers.layerscope.LayersPacket.Layer.Region vRegion = 12;
inline bool LayersPacket_Layer::has_vregion() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void LayersPacket_Layer::set_has_vregion() {
  _has_bits_[0] |= 0x00000020u;
}
inline void LayersPacket_Layer::clear_has_vregion() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void LayersPacket_Layer::clear_vregion() {
  if (vregion_ != NULL) vregion_->::mozilla::layers::layerscope::LayersPacket_Layer_Region::Clear();
  clear_has_vregion();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& LayersPacket_Layer::vregion() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.vRegion)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return vregion_ != NULL ? *vregion_ : *default_instance().vregion_;
#else
  return vregion_ != NULL ? *vregion_ : *default_instance_->vregion_;
#endif
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer::mutable_vregion() {
  set_has_vregion();
  if (vregion_ == NULL) vregion_ = new ::mozilla::layers::layerscope::LayersPacket_Layer_Region;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.Layer.vRegion)
  return vregion_;
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer::release_vregion() {
  clear_has_vregion();
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* temp = vregion_;
  vregion_ = NULL;
  return temp;
}
inline void LayersPacket_Layer::set_allocated_vregion(::mozilla::layers::layerscope::LayersPacket_Layer_Region* vregion) {
  delete vregion_;
  vregion_ = vregion;
  if (vregion) {
    set_has_vregion();
  } else {
    clear_has_vregion();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.LayersPacket.Layer.vRegion)
}

// optional .mozilla.layers.layerscope.LayersPacket.Layer.Shadow shadow = 13;
inline bool LayersPacket_Layer::has_shadow() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void LayersPacket_Layer::set_has_shadow() {
  _has_bits_[0] |= 0x00000040u;
}
inline void LayersPacket_Layer::clear_has_shadow() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void LayersPacket_Layer::clear_shadow() {
  if (shadow_ != NULL) shadow_->::mozilla::layers::layerscope::LayersPacket_Layer_Shadow::Clear();
  clear_has_shadow();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Shadow& LayersPacket_Layer::shadow() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.shadow)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return shadow_ != NULL ? *shadow_ : *default_instance().shadow_;
#else
  return shadow_ != NULL ? *shadow_ : *default_instance_->shadow_;
#endif
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Shadow* LayersPacket_Layer::mutable_shadow() {
  set_has_shadow();
  if (shadow_ == NULL) shadow_ = new ::mozilla::layers::layerscope::LayersPacket_Layer_Shadow;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.Layer.shadow)
  return shadow_;
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Shadow* LayersPacket_Layer::release_shadow() {
  clear_has_shadow();
  ::mozilla::layers::layerscope::LayersPacket_Layer_Shadow* temp = shadow_;
  shadow_ = NULL;
  return temp;
}
inline void LayersPacket_Layer::set_allocated_shadow(::mozilla::layers::layerscope::LayersPacket_Layer_Shadow* shadow) {
  delete shadow_;
  shadow_ = shadow;
  if (shadow) {
    set_has_shadow();
  } else {
    clear_has_shadow();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.LayersPacket.Layer.shadow)
}

// optional float opacity = 14;
inline bool LayersPacket_Layer::has_opacity() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void LayersPacket_Layer::set_has_opacity() {
  _has_bits_[0] |= 0x00000080u;
}
inline void LayersPacket_Layer::clear_has_opacity() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void LayersPacket_Layer::clear_opacity() {
  opacity_ = 0;
  clear_has_opacity();
}
inline float LayersPacket_Layer::opacity() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.opacity)
  return opacity_;
}
inline void LayersPacket_Layer::set_opacity(float value) {
  set_has_opacity();
  opacity_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.opacity)
}

// optional bool cOpaque = 15;
inline bool LayersPacket_Layer::has_copaque() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void LayersPacket_Layer::set_has_copaque() {
  _has_bits_[0] |= 0x00000100u;
}
inline void LayersPacket_Layer::clear_has_copaque() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void LayersPacket_Layer::clear_copaque() {
  copaque_ = false;
  clear_has_copaque();
}
inline bool LayersPacket_Layer::copaque() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.cOpaque)
  return copaque_;
}
inline void LayersPacket_Layer::set_copaque(bool value) {
  set_has_copaque();
  copaque_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.cOpaque)
}

// optional bool cAlpha = 16;
inline bool LayersPacket_Layer::has_calpha() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void LayersPacket_Layer::set_has_calpha() {
  _has_bits_[0] |= 0x00000200u;
}
inline void LayersPacket_Layer::clear_has_calpha() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void LayersPacket_Layer::clear_calpha() {
  calpha_ = false;
  clear_has_calpha();
}
inline bool LayersPacket_Layer::calpha() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.cAlpha)
  return calpha_;
}
inline void LayersPacket_Layer::set_calpha(bool value) {
  set_has_calpha();
  calpha_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.cAlpha)
}

// optional .mozilla.layers.layerscope.LayersPacket.Layer.ScrollingDirect direct = 17;
inline bool LayersPacket_Layer::has_direct() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void LayersPacket_Layer::set_has_direct() {
  _has_bits_[0] |= 0x00000400u;
}
inline void LayersPacket_Layer::clear_has_direct() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void LayersPacket_Layer::clear_direct() {
  direct_ = 1;
  clear_has_direct();
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_ScrollingDirect LayersPacket_Layer::direct() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.direct)
  return static_cast< ::mozilla::layers::layerscope::LayersPacket_Layer_ScrollingDirect >(direct_);
}
inline void LayersPacket_Layer::set_direct(::mozilla::layers::layerscope::LayersPacket_Layer_ScrollingDirect value) {
  assert(::mozilla::layers::layerscope::LayersPacket_Layer_ScrollingDirect_IsValid(value));
  set_has_direct();
  direct_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.direct)
}

// optional uint64 barID = 18;
inline bool LayersPacket_Layer::has_barid() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void LayersPacket_Layer::set_has_barid() {
  _has_bits_[0] |= 0x00000800u;
}
inline void LayersPacket_Layer::clear_has_barid() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void LayersPacket_Layer::clear_barid() {
  barid_ = GOOGLE_ULONGLONG(0);
  clear_has_barid();
}
inline ::google::protobuf::uint64 LayersPacket_Layer::barid() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.barID)
  return barid_;
}
inline void LayersPacket_Layer::set_barid(::google::protobuf::uint64 value) {
  set_has_barid();
  barid_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.barID)
}

// optional uint64 mask = 19;
inline bool LayersPacket_Layer::has_mask() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void LayersPacket_Layer::set_has_mask() {
  _has_bits_[0] |= 0x00001000u;
}
inline void LayersPacket_Layer::clear_has_mask() {
  _has_bits_[0] &= ~0x00001000u;
}
inline void LayersPacket_Layer::clear_mask() {
  mask_ = GOOGLE_ULONGLONG(0);
  clear_has_mask();
}
inline ::google::protobuf::uint64 LayersPacket_Layer::mask() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.mask)
  return mask_;
}
inline void LayersPacket_Layer::set_mask(::google::protobuf::uint64 value) {
  set_has_mask();
  mask_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.mask)
}

// optional .mozilla.layers.layerscope.LayersPacket.Layer.Region hitRegion = 20;
inline bool LayersPacket_Layer::has_hitregion() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void LayersPacket_Layer::set_has_hitregion() {
  _has_bits_[0] |= 0x00002000u;
}
inline void LayersPacket_Layer::clear_has_hitregion() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void LayersPacket_Layer::clear_hitregion() {
  if (hitregion_ != NULL) hitregion_->::mozilla::layers::layerscope::LayersPacket_Layer_Region::Clear();
  clear_has_hitregion();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& LayersPacket_Layer::hitregion() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.hitRegion)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return hitregion_ != NULL ? *hitregion_ : *default_instance().hitregion_;
#else
  return hitregion_ != NULL ? *hitregion_ : *default_instance_->hitregion_;
#endif
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer::mutable_hitregion() {
  set_has_hitregion();
  if (hitregion_ == NULL) hitregion_ = new ::mozilla::layers::layerscope::LayersPacket_Layer_Region;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.Layer.hitRegion)
  return hitregion_;
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer::release_hitregion() {
  clear_has_hitregion();
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* temp = hitregion_;
  hitregion_ = NULL;
  return temp;
}
inline void LayersPacket_Layer::set_allocated_hitregion(::mozilla::layers::layerscope::LayersPacket_Layer_Region* hitregion) {
  delete hitregion_;
  hitregion_ = hitregion;
  if (hitregion) {
    set_has_hitregion();
  } else {
    clear_has_hitregion();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.LayersPacket.Layer.hitRegion)
}

// optional .mozilla.layers.layerscope.LayersPacket.Layer.Region dispatchRegion = 21;
inline bool LayersPacket_Layer::has_dispatchregion() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void LayersPacket_Layer::set_has_dispatchregion() {
  _has_bits_[0] |= 0x00004000u;
}
inline void LayersPacket_Layer::clear_has_dispatchregion() {
  _has_bits_[0] &= ~0x00004000u;
}
inline void LayersPacket_Layer::clear_dispatchregion() {
  if (dispatchregion_ != NULL) dispatchregion_->::mozilla::layers::layerscope::LayersPacket_Layer_Region::Clear();
  clear_has_dispatchregion();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& LayersPacket_Layer::dispatchregion() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.dispatchRegion)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return dispatchregion_ != NULL ? *dispatchregion_ : *default_instance().dispatchregion_;
#else
  return dispatchregion_ != NULL ? *dispatchregion_ : *default_instance_->dispatchregion_;
#endif
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer::mutable_dispatchregion() {
  set_has_dispatchregion();
  if (dispatchregion_ == NULL) dispatchregion_ = new ::mozilla::layers::layerscope::LayersPacket_Layer_Region;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.Layer.dispatchRegion)
  return dispatchregion_;
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer::release_dispatchregion() {
  clear_has_dispatchregion();
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* temp = dispatchregion_;
  dispatchregion_ = NULL;
  return temp;
}
inline void LayersPacket_Layer::set_allocated_dispatchregion(::mozilla::layers::layerscope::LayersPacket_Layer_Region* dispatchregion) {
  delete dispatchregion_;
  dispatchregion_ = dispatchregion;
  if (dispatchregion) {
    set_has_dispatchregion();
  } else {
    clear_has_dispatchregion();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.LayersPacket.Layer.dispatchRegion)
}

// optional .mozilla.layers.layerscope.LayersPacket.Layer.Region noActionRegion = 22;
inline bool LayersPacket_Layer::has_noactionregion() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void LayersPacket_Layer::set_has_noactionregion() {
  _has_bits_[0] |= 0x00008000u;
}
inline void LayersPacket_Layer::clear_has_noactionregion() {
  _has_bits_[0] &= ~0x00008000u;
}
inline void LayersPacket_Layer::clear_noactionregion() {
  if (noactionregion_ != NULL) noactionregion_->::mozilla::layers::layerscope::LayersPacket_Layer_Region::Clear();
  clear_has_noactionregion();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& LayersPacket_Layer::noactionregion() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.noActionRegion)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return noactionregion_ != NULL ? *noactionregion_ : *default_instance().noactionregion_;
#else
  return noactionregion_ != NULL ? *noactionregion_ : *default_instance_->noactionregion_;
#endif
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer::mutable_noactionregion() {
  set_has_noactionregion();
  if (noactionregion_ == NULL) noactionregion_ = new ::mozilla::layers::layerscope::LayersPacket_Layer_Region;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.Layer.noActionRegion)
  return noactionregion_;
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer::release_noactionregion() {
  clear_has_noactionregion();
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* temp = noactionregion_;
  noactionregion_ = NULL;
  return temp;
}
inline void LayersPacket_Layer::set_allocated_noactionregion(::mozilla::layers::layerscope::LayersPacket_Layer_Region* noactionregion) {
  delete noactionregion_;
  noactionregion_ = noactionregion;
  if (noactionregion) {
    set_has_noactionregion();
  } else {
    clear_has_noactionregion();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.LayersPacket.Layer.noActionRegion)
}

// optional .mozilla.layers.layerscope.LayersPacket.Layer.Region hPanRegion = 23;
inline bool LayersPacket_Layer::has_hpanregion() const {
  return (_has_bits_[0] & 0x00010000u) != 0;
}
inline void LayersPacket_Layer::set_has_hpanregion() {
  _has_bits_[0] |= 0x00010000u;
}
inline void LayersPacket_Layer::clear_has_hpanregion() {
  _has_bits_[0] &= ~0x00010000u;
}
inline void LayersPacket_Layer::clear_hpanregion() {
  if (hpanregion_ != NULL) hpanregion_->::mozilla::layers::layerscope::LayersPacket_Layer_Region::Clear();
  clear_has_hpanregion();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& LayersPacket_Layer::hpanregion() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.hPanRegion)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return hpanregion_ != NULL ? *hpanregion_ : *default_instance().hpanregion_;
#else
  return hpanregion_ != NULL ? *hpanregion_ : *default_instance_->hpanregion_;
#endif
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer::mutable_hpanregion() {
  set_has_hpanregion();
  if (hpanregion_ == NULL) hpanregion_ = new ::mozilla::layers::layerscope::LayersPacket_Layer_Region;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.Layer.hPanRegion)
  return hpanregion_;
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer::release_hpanregion() {
  clear_has_hpanregion();
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* temp = hpanregion_;
  hpanregion_ = NULL;
  return temp;
}
inline void LayersPacket_Layer::set_allocated_hpanregion(::mozilla::layers::layerscope::LayersPacket_Layer_Region* hpanregion) {
  delete hpanregion_;
  hpanregion_ = hpanregion;
  if (hpanregion) {
    set_has_hpanregion();
  } else {
    clear_has_hpanregion();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.LayersPacket.Layer.hPanRegion)
}

// optional .mozilla.layers.layerscope.LayersPacket.Layer.Region vPanRegion = 24;
inline bool LayersPacket_Layer::has_vpanregion() const {
  return (_has_bits_[0] & 0x00020000u) != 0;
}
inline void LayersPacket_Layer::set_has_vpanregion() {
  _has_bits_[0] |= 0x00020000u;
}
inline void LayersPacket_Layer::clear_has_vpanregion() {
  _has_bits_[0] &= ~0x00020000u;
}
inline void LayersPacket_Layer::clear_vpanregion() {
  if (vpanregion_ != NULL) vpanregion_->::mozilla::layers::layerscope::LayersPacket_Layer_Region::Clear();
  clear_has_vpanregion();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& LayersPacket_Layer::vpanregion() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.vPanRegion)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return vpanregion_ != NULL ? *vpanregion_ : *default_instance().vpanregion_;
#else
  return vpanregion_ != NULL ? *vpanregion_ : *default_instance_->vpanregion_;
#endif
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer::mutable_vpanregion() {
  set_has_vpanregion();
  if (vpanregion_ == NULL) vpanregion_ = new ::mozilla::layers::layerscope::LayersPacket_Layer_Region;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.Layer.vPanRegion)
  return vpanregion_;
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer::release_vpanregion() {
  clear_has_vpanregion();
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* temp = vpanregion_;
  vpanregion_ = NULL;
  return temp;
}
inline void LayersPacket_Layer::set_allocated_vpanregion(::mozilla::layers::layerscope::LayersPacket_Layer_Region* vpanregion) {
  delete vpanregion_;
  vpanregion_ = vpanregion;
  if (vpanregion) {
    set_has_vpanregion();
  } else {
    clear_has_vpanregion();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.LayersPacket.Layer.vPanRegion)
}

// optional .mozilla.layers.layerscope.LayersPacket.Layer.Region valid = 100;
inline bool LayersPacket_Layer::has_valid() const {
  return (_has_bits_[0] & 0x00040000u) != 0;
}
inline void LayersPacket_Layer::set_has_valid() {
  _has_bits_[0] |= 0x00040000u;
}
inline void LayersPacket_Layer::clear_has_valid() {
  _has_bits_[0] &= ~0x00040000u;
}
inline void LayersPacket_Layer::clear_valid() {
  if (valid_ != NULL) valid_->::mozilla::layers::layerscope::LayersPacket_Layer_Region::Clear();
  clear_has_valid();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Region& LayersPacket_Layer::valid() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.valid)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return valid_ != NULL ? *valid_ : *default_instance().valid_;
#else
  return valid_ != NULL ? *valid_ : *default_instance_->valid_;
#endif
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer::mutable_valid() {
  set_has_valid();
  if (valid_ == NULL) valid_ = new ::mozilla::layers::layerscope::LayersPacket_Layer_Region;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.Layer.valid)
  return valid_;
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Region* LayersPacket_Layer::release_valid() {
  clear_has_valid();
  ::mozilla::layers::layerscope::LayersPacket_Layer_Region* temp = valid_;
  valid_ = NULL;
  return temp;
}
inline void LayersPacket_Layer::set_allocated_valid(::mozilla::layers::layerscope::LayersPacket_Layer_Region* valid) {
  delete valid_;
  valid_ = valid;
  if (valid) {
    set_has_valid();
  } else {
    clear_has_valid();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.LayersPacket.Layer.valid)
}

// optional uint32 color = 101;
inline bool LayersPacket_Layer::has_color() const {
  return (_has_bits_[0] & 0x00080000u) != 0;
}
inline void LayersPacket_Layer::set_has_color() {
  _has_bits_[0] |= 0x00080000u;
}
inline void LayersPacket_Layer::clear_has_color() {
  _has_bits_[0] &= ~0x00080000u;
}
inline void LayersPacket_Layer::clear_color() {
  color_ = 0u;
  clear_has_color();
}
inline ::google::protobuf::uint32 LayersPacket_Layer::color() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.color)
  return color_;
}
inline void LayersPacket_Layer::set_color(::google::protobuf::uint32 value) {
  set_has_color();
  color_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.color)
}

// optional .mozilla.layers.layerscope.LayersPacket.Layer.Filter filter = 102;
inline bool LayersPacket_Layer::has_filter() const {
  return (_has_bits_[0] & 0x00100000u) != 0;
}
inline void LayersPacket_Layer::set_has_filter() {
  _has_bits_[0] |= 0x00100000u;
}
inline void LayersPacket_Layer::clear_has_filter() {
  _has_bits_[0] &= ~0x00100000u;
}
inline void LayersPacket_Layer::clear_filter() {
  filter_ = 0;
  clear_has_filter();
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Filter LayersPacket_Layer::filter() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.filter)
  return static_cast< ::mozilla::layers::layerscope::LayersPacket_Layer_Filter >(filter_);
}
inline void LayersPacket_Layer::set_filter(::mozilla::layers::layerscope::LayersPacket_Layer_Filter value) {
  assert(::mozilla::layers::layerscope::LayersPacket_Layer_Filter_IsValid(value));
  set_has_filter();
  filter_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.filter)
}

// optional uint64 refID = 103;
inline bool LayersPacket_Layer::has_refid() const {
  return (_has_bits_[0] & 0x00200000u) != 0;
}
inline void LayersPacket_Layer::set_has_refid() {
  _has_bits_[0] |= 0x00200000u;
}
inline void LayersPacket_Layer::clear_has_refid() {
  _has_bits_[0] &= ~0x00200000u;
}
inline void LayersPacket_Layer::clear_refid() {
  refid_ = GOOGLE_ULONGLONG(0);
  clear_has_refid();
}
inline ::google::protobuf::uint64 LayersPacket_Layer::refid() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.refID)
  return refid_;
}
inline void LayersPacket_Layer::set_refid(::google::protobuf::uint64 value) {
  set_has_refid();
  refid_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.LayersPacket.Layer.refID)
}

// optional .mozilla.layers.layerscope.LayersPacket.Layer.Size size = 104;
inline bool LayersPacket_Layer::has_size() const {
  return (_has_bits_[0] & 0x00400000u) != 0;
}
inline void LayersPacket_Layer::set_has_size() {
  _has_bits_[0] |= 0x00400000u;
}
inline void LayersPacket_Layer::clear_has_size() {
  _has_bits_[0] &= ~0x00400000u;
}
inline void LayersPacket_Layer::clear_size() {
  if (size_ != NULL) size_->::mozilla::layers::layerscope::LayersPacket_Layer_Size::Clear();
  clear_has_size();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer_Size& LayersPacket_Layer::size() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.Layer.size)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return size_ != NULL ? *size_ : *default_instance().size_;
#else
  return size_ != NULL ? *size_ : *default_instance_->size_;
#endif
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Size* LayersPacket_Layer::mutable_size() {
  set_has_size();
  if (size_ == NULL) size_ = new ::mozilla::layers::layerscope::LayersPacket_Layer_Size;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.Layer.size)
  return size_;
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer_Size* LayersPacket_Layer::release_size() {
  clear_has_size();
  ::mozilla::layers::layerscope::LayersPacket_Layer_Size* temp = size_;
  size_ = NULL;
  return temp;
}
inline void LayersPacket_Layer::set_allocated_size(::mozilla::layers::layerscope::LayersPacket_Layer_Size* size) {
  delete size_;
  size_ = size;
  if (size) {
    set_has_size();
  } else {
    clear_has_size();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.LayersPacket.Layer.size)
}

// -------------------------------------------------------------------

// LayersPacket

// repeated .mozilla.layers.layerscope.LayersPacket.Layer layer = 1;
inline int LayersPacket::layer_size() const {
  return layer_.size();
}
inline void LayersPacket::clear_layer() {
  layer_.Clear();
}
inline const ::mozilla::layers::layerscope::LayersPacket_Layer& LayersPacket::layer(int index) const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.LayersPacket.layer)
  return layer_.Get(index);
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer* LayersPacket::mutable_layer(int index) {
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.LayersPacket.layer)
  return layer_.Mutable(index);
}
inline ::mozilla::layers::layerscope::LayersPacket_Layer* LayersPacket::add_layer() {
  // @@protoc_insertion_point(field_add:mozilla.layers.layerscope.LayersPacket.layer)
  return layer_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::mozilla::layers::layerscope::LayersPacket_Layer >&
LayersPacket::layer() const {
  // @@protoc_insertion_point(field_list:mozilla.layers.layerscope.LayersPacket.layer)
  return layer_;
}
inline ::google::protobuf::RepeatedPtrField< ::mozilla::layers::layerscope::LayersPacket_Layer >*
LayersPacket::mutable_layer() {
  // @@protoc_insertion_point(field_mutable_list:mozilla.layers.layerscope.LayersPacket.layer)
  return &layer_;
}

// -------------------------------------------------------------------

// MetaPacket

// optional bool composedByHwc = 1;
inline bool MetaPacket::has_composedbyhwc() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void MetaPacket::set_has_composedbyhwc() {
  _has_bits_[0] |= 0x00000001u;
}
inline void MetaPacket::clear_has_composedbyhwc() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void MetaPacket::clear_composedbyhwc() {
  composedbyhwc_ = false;
  clear_has_composedbyhwc();
}
inline bool MetaPacket::composedbyhwc() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.MetaPacket.composedByHwc)
  return composedbyhwc_;
}
inline void MetaPacket::set_composedbyhwc(bool value) {
  set_has_composedbyhwc();
  composedbyhwc_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.MetaPacket.composedByHwc)
}

// -------------------------------------------------------------------

// DrawPacket_Rect

// required float x = 1;
inline bool DrawPacket_Rect::has_x() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void DrawPacket_Rect::set_has_x() {
  _has_bits_[0] |= 0x00000001u;
}
inline void DrawPacket_Rect::clear_has_x() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void DrawPacket_Rect::clear_x() {
  x_ = 0;
  clear_has_x();
}
inline float DrawPacket_Rect::x() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.DrawPacket.Rect.x)
  return x_;
}
inline void DrawPacket_Rect::set_x(float value) {
  set_has_x();
  x_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.DrawPacket.Rect.x)
}

// required float y = 2;
inline bool DrawPacket_Rect::has_y() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void DrawPacket_Rect::set_has_y() {
  _has_bits_[0] |= 0x00000002u;
}
inline void DrawPacket_Rect::clear_has_y() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void DrawPacket_Rect::clear_y() {
  y_ = 0;
  clear_has_y();
}
inline float DrawPacket_Rect::y() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.DrawPacket.Rect.y)
  return y_;
}
inline void DrawPacket_Rect::set_y(float value) {
  set_has_y();
  y_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.DrawPacket.Rect.y)
}

// required float w = 3;
inline bool DrawPacket_Rect::has_w() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void DrawPacket_Rect::set_has_w() {
  _has_bits_[0] |= 0x00000004u;
}
inline void DrawPacket_Rect::clear_has_w() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void DrawPacket_Rect::clear_w() {
  w_ = 0;
  clear_has_w();
}
inline float DrawPacket_Rect::w() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.DrawPacket.Rect.w)
  return w_;
}
inline void DrawPacket_Rect::set_w(float value) {
  set_has_w();
  w_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.DrawPacket.Rect.w)
}

// required float h = 4;
inline bool DrawPacket_Rect::has_h() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void DrawPacket_Rect::set_has_h() {
  _has_bits_[0] |= 0x00000008u;
}
inline void DrawPacket_Rect::clear_has_h() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void DrawPacket_Rect::clear_h() {
  h_ = 0;
  clear_has_h();
}
inline float DrawPacket_Rect::h() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.DrawPacket.Rect.h)
  return h_;
}
inline void DrawPacket_Rect::set_h(float value) {
  set_has_h();
  h_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.DrawPacket.Rect.h)
}

// -------------------------------------------------------------------

// DrawPacket

// required float offsetX = 1;
inline bool DrawPacket::has_offsetx() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void DrawPacket::set_has_offsetx() {
  _has_bits_[0] |= 0x00000001u;
}
inline void DrawPacket::clear_has_offsetx() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void DrawPacket::clear_offsetx() {
  offsetx_ = 0;
  clear_has_offsetx();
}
inline float DrawPacket::offsetx() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.DrawPacket.offsetX)
  return offsetx_;
}
inline void DrawPacket::set_offsetx(float value) {
  set_has_offsetx();
  offsetx_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.DrawPacket.offsetX)
}

// required float offsetY = 2;
inline bool DrawPacket::has_offsety() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void DrawPacket::set_has_offsety() {
  _has_bits_[0] |= 0x00000002u;
}
inline void DrawPacket::clear_has_offsety() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void DrawPacket::clear_offsety() {
  offsety_ = 0;
  clear_has_offsety();
}
inline float DrawPacket::offsety() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.DrawPacket.offsetY)
  return offsety_;
}
inline void DrawPacket::set_offsety(float value) {
  set_has_offsety();
  offsety_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.DrawPacket.offsetY)
}

// repeated float mvMatrix = 3;
inline int DrawPacket::mvmatrix_size() const {
  return mvmatrix_.size();
}
inline void DrawPacket::clear_mvmatrix() {
  mvmatrix_.Clear();
}
inline float DrawPacket::mvmatrix(int index) const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.DrawPacket.mvMatrix)
  return mvmatrix_.Get(index);
}
inline void DrawPacket::set_mvmatrix(int index, float value) {
  mvmatrix_.Set(index, value);
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.DrawPacket.mvMatrix)
}
inline void DrawPacket::add_mvmatrix(float value) {
  mvmatrix_.Add(value);
  // @@protoc_insertion_point(field_add:mozilla.layers.layerscope.DrawPacket.mvMatrix)
}
inline const ::google::protobuf::RepeatedField< float >&
DrawPacket::mvmatrix() const {
  // @@protoc_insertion_point(field_list:mozilla.layers.layerscope.DrawPacket.mvMatrix)
  return mvmatrix_;
}
inline ::google::protobuf::RepeatedField< float >*
DrawPacket::mutable_mvmatrix() {
  // @@protoc_insertion_point(field_mutable_list:mozilla.layers.layerscope.DrawPacket.mvMatrix)
  return &mvmatrix_;
}

// required uint32 totalRects = 4;
inline bool DrawPacket::has_totalrects() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void DrawPacket::set_has_totalrects() {
  _has_bits_[0] |= 0x00000008u;
}
inline void DrawPacket::clear_has_totalrects() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void DrawPacket::clear_totalrects() {
  totalrects_ = 0u;
  clear_has_totalrects();
}
inline ::google::protobuf::uint32 DrawPacket::totalrects() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.DrawPacket.totalRects)
  return totalrects_;
}
inline void DrawPacket::set_totalrects(::google::protobuf::uint32 value) {
  set_has_totalrects();
  totalrects_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.DrawPacket.totalRects)
}

// repeated .mozilla.layers.layerscope.DrawPacket.Rect layerRect = 5;
inline int DrawPacket::layerrect_size() const {
  return layerrect_.size();
}
inline void DrawPacket::clear_layerrect() {
  layerrect_.Clear();
}
inline const ::mozilla::layers::layerscope::DrawPacket_Rect& DrawPacket::layerrect(int index) const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.DrawPacket.layerRect)
  return layerrect_.Get(index);
}
inline ::mozilla::layers::layerscope::DrawPacket_Rect* DrawPacket::mutable_layerrect(int index) {
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.DrawPacket.layerRect)
  return layerrect_.Mutable(index);
}
inline ::mozilla::layers::layerscope::DrawPacket_Rect* DrawPacket::add_layerrect() {
  // @@protoc_insertion_point(field_add:mozilla.layers.layerscope.DrawPacket.layerRect)
  return layerrect_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::mozilla::layers::layerscope::DrawPacket_Rect >&
DrawPacket::layerrect() const {
  // @@protoc_insertion_point(field_list:mozilla.layers.layerscope.DrawPacket.layerRect)
  return layerrect_;
}
inline ::google::protobuf::RepeatedPtrField< ::mozilla::layers::layerscope::DrawPacket_Rect >*
DrawPacket::mutable_layerrect() {
  // @@protoc_insertion_point(field_mutable_list:mozilla.layers.layerscope.DrawPacket.layerRect)
  return &layerrect_;
}

// required uint64 layerref = 6;
inline bool DrawPacket::has_layerref() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void DrawPacket::set_has_layerref() {
  _has_bits_[0] |= 0x00000020u;
}
inline void DrawPacket::clear_has_layerref() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void DrawPacket::clear_layerref() {
  layerref_ = GOOGLE_ULONGLONG(0);
  clear_has_layerref();
}
inline ::google::protobuf::uint64 DrawPacket::layerref() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.DrawPacket.layerref)
  return layerref_;
}
inline void DrawPacket::set_layerref(::google::protobuf::uint64 value) {
  set_has_layerref();
  layerref_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.DrawPacket.layerref)
}

// -------------------------------------------------------------------

// Packet

// required .mozilla.layers.layerscope.Packet.DataType type = 1;
inline bool Packet::has_type() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Packet::set_has_type() {
  _has_bits_[0] |= 0x00000001u;
}
inline void Packet::clear_has_type() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void Packet::clear_type() {
  type_ = 1;
  clear_has_type();
}
inline ::mozilla::layers::layerscope::Packet_DataType Packet::type() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.Packet.type)
  return static_cast< ::mozilla::layers::layerscope::Packet_DataType >(type_);
}
inline void Packet::set_type(::mozilla::layers::layerscope::Packet_DataType value) {
  assert(::mozilla::layers::layerscope::Packet_DataType_IsValid(value));
  set_has_type();
  type_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.Packet.type)
}

// optional .mozilla.layers.layerscope.FramePacket frame = 2;
inline bool Packet::has_frame() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Packet::set_has_frame() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Packet::clear_has_frame() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void Packet::clear_frame() {
  if (frame_ != NULL) frame_->::mozilla::layers::layerscope::FramePacket::Clear();
  clear_has_frame();
}
inline const ::mozilla::layers::layerscope::FramePacket& Packet::frame() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.Packet.frame)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return frame_ != NULL ? *frame_ : *default_instance().frame_;
#else
  return frame_ != NULL ? *frame_ : *default_instance_->frame_;
#endif
}
inline ::mozilla::layers::layerscope::FramePacket* Packet::mutable_frame() {
  set_has_frame();
  if (frame_ == NULL) frame_ = new ::mozilla::layers::layerscope::FramePacket;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.Packet.frame)
  return frame_;
}
inline ::mozilla::layers::layerscope::FramePacket* Packet::release_frame() {
  clear_has_frame();
  ::mozilla::layers::layerscope::FramePacket* temp = frame_;
  frame_ = NULL;
  return temp;
}
inline void Packet::set_allocated_frame(::mozilla::layers::layerscope::FramePacket* frame) {
  delete frame_;
  frame_ = frame;
  if (frame) {
    set_has_frame();
  } else {
    clear_has_frame();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.Packet.frame)
}

// optional .mozilla.layers.layerscope.ColorPacket color = 3;
inline bool Packet::has_color() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void Packet::set_has_color() {
  _has_bits_[0] |= 0x00000004u;
}
inline void Packet::clear_has_color() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void Packet::clear_color() {
  if (color_ != NULL) color_->::mozilla::layers::layerscope::ColorPacket::Clear();
  clear_has_color();
}
inline const ::mozilla::layers::layerscope::ColorPacket& Packet::color() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.Packet.color)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return color_ != NULL ? *color_ : *default_instance().color_;
#else
  return color_ != NULL ? *color_ : *default_instance_->color_;
#endif
}
inline ::mozilla::layers::layerscope::ColorPacket* Packet::mutable_color() {
  set_has_color();
  if (color_ == NULL) color_ = new ::mozilla::layers::layerscope::ColorPacket;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.Packet.color)
  return color_;
}
inline ::mozilla::layers::layerscope::ColorPacket* Packet::release_color() {
  clear_has_color();
  ::mozilla::layers::layerscope::ColorPacket* temp = color_;
  color_ = NULL;
  return temp;
}
inline void Packet::set_allocated_color(::mozilla::layers::layerscope::ColorPacket* color) {
  delete color_;
  color_ = color;
  if (color) {
    set_has_color();
  } else {
    clear_has_color();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.Packet.color)
}

// optional .mozilla.layers.layerscope.TexturePacket texture = 4;
inline bool Packet::has_texture() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void Packet::set_has_texture() {
  _has_bits_[0] |= 0x00000008u;
}
inline void Packet::clear_has_texture() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void Packet::clear_texture() {
  if (texture_ != NULL) texture_->::mozilla::layers::layerscope::TexturePacket::Clear();
  clear_has_texture();
}
inline const ::mozilla::layers::layerscope::TexturePacket& Packet::texture() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.Packet.texture)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return texture_ != NULL ? *texture_ : *default_instance().texture_;
#else
  return texture_ != NULL ? *texture_ : *default_instance_->texture_;
#endif
}
inline ::mozilla::layers::layerscope::TexturePacket* Packet::mutable_texture() {
  set_has_texture();
  if (texture_ == NULL) texture_ = new ::mozilla::layers::layerscope::TexturePacket;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.Packet.texture)
  return texture_;
}
inline ::mozilla::layers::layerscope::TexturePacket* Packet::release_texture() {
  clear_has_texture();
  ::mozilla::layers::layerscope::TexturePacket* temp = texture_;
  texture_ = NULL;
  return temp;
}
inline void Packet::set_allocated_texture(::mozilla::layers::layerscope::TexturePacket* texture) {
  delete texture_;
  texture_ = texture;
  if (texture) {
    set_has_texture();
  } else {
    clear_has_texture();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.Packet.texture)
}

// optional .mozilla.layers.layerscope.LayersPacket layers = 5;
inline bool Packet::has_layers() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void Packet::set_has_layers() {
  _has_bits_[0] |= 0x00000010u;
}
inline void Packet::clear_has_layers() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void Packet::clear_layers() {
  if (layers_ != NULL) layers_->::mozilla::layers::layerscope::LayersPacket::Clear();
  clear_has_layers();
}
inline const ::mozilla::layers::layerscope::LayersPacket& Packet::layers() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.Packet.layers)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return layers_ != NULL ? *layers_ : *default_instance().layers_;
#else
  return layers_ != NULL ? *layers_ : *default_instance_->layers_;
#endif
}
inline ::mozilla::layers::layerscope::LayersPacket* Packet::mutable_layers() {
  set_has_layers();
  if (layers_ == NULL) layers_ = new ::mozilla::layers::layerscope::LayersPacket;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.Packet.layers)
  return layers_;
}
inline ::mozilla::layers::layerscope::LayersPacket* Packet::release_layers() {
  clear_has_layers();
  ::mozilla::layers::layerscope::LayersPacket* temp = layers_;
  layers_ = NULL;
  return temp;
}
inline void Packet::set_allocated_layers(::mozilla::layers::layerscope::LayersPacket* layers) {
  delete layers_;
  layers_ = layers;
  if (layers) {
    set_has_layers();
  } else {
    clear_has_layers();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.Packet.layers)
}

// optional .mozilla.layers.layerscope.MetaPacket meta = 6;
inline bool Packet::has_meta() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void Packet::set_has_meta() {
  _has_bits_[0] |= 0x00000020u;
}
inline void Packet::clear_has_meta() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void Packet::clear_meta() {
  if (meta_ != NULL) meta_->::mozilla::layers::layerscope::MetaPacket::Clear();
  clear_has_meta();
}
inline const ::mozilla::layers::layerscope::MetaPacket& Packet::meta() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.Packet.meta)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return meta_ != NULL ? *meta_ : *default_instance().meta_;
#else
  return meta_ != NULL ? *meta_ : *default_instance_->meta_;
#endif
}
inline ::mozilla::layers::layerscope::MetaPacket* Packet::mutable_meta() {
  set_has_meta();
  if (meta_ == NULL) meta_ = new ::mozilla::layers::layerscope::MetaPacket;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.Packet.meta)
  return meta_;
}
inline ::mozilla::layers::layerscope::MetaPacket* Packet::release_meta() {
  clear_has_meta();
  ::mozilla::layers::layerscope::MetaPacket* temp = meta_;
  meta_ = NULL;
  return temp;
}
inline void Packet::set_allocated_meta(::mozilla::layers::layerscope::MetaPacket* meta) {
  delete meta_;
  meta_ = meta;
  if (meta) {
    set_has_meta();
  } else {
    clear_has_meta();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.Packet.meta)
}

// optional .mozilla.layers.layerscope.DrawPacket draw = 7;
inline bool Packet::has_draw() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void Packet::set_has_draw() {
  _has_bits_[0] |= 0x00000040u;
}
inline void Packet::clear_has_draw() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void Packet::clear_draw() {
  if (draw_ != NULL) draw_->::mozilla::layers::layerscope::DrawPacket::Clear();
  clear_has_draw();
}
inline const ::mozilla::layers::layerscope::DrawPacket& Packet::draw() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.Packet.draw)
#ifdef GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER
  return draw_ != NULL ? *draw_ : *default_instance().draw_;
#else
  return draw_ != NULL ? *draw_ : *default_instance_->draw_;
#endif
}
inline ::mozilla::layers::layerscope::DrawPacket* Packet::mutable_draw() {
  set_has_draw();
  if (draw_ == NULL) draw_ = new ::mozilla::layers::layerscope::DrawPacket;
  // @@protoc_insertion_point(field_mutable:mozilla.layers.layerscope.Packet.draw)
  return draw_;
}
inline ::mozilla::layers::layerscope::DrawPacket* Packet::release_draw() {
  clear_has_draw();
  ::mozilla::layers::layerscope::DrawPacket* temp = draw_;
  draw_ = NULL;
  return temp;
}
inline void Packet::set_allocated_draw(::mozilla::layers::layerscope::DrawPacket* draw) {
  delete draw_;
  draw_ = draw;
  if (draw) {
    set_has_draw();
  } else {
    clear_has_draw();
  }
  // @@protoc_insertion_point(field_set_allocated:mozilla.layers.layerscope.Packet.draw)
}

// -------------------------------------------------------------------

// CommandPacket

// required .mozilla.layers.layerscope.CommandPacket.CmdType type = 1;
inline bool CommandPacket::has_type() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void CommandPacket::set_has_type() {
  _has_bits_[0] |= 0x00000001u;
}
inline void CommandPacket::clear_has_type() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void CommandPacket::clear_type() {
  type_ = 0;
  clear_has_type();
}
inline ::mozilla::layers::layerscope::CommandPacket_CmdType CommandPacket::type() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.CommandPacket.type)
  return static_cast< ::mozilla::layers::layerscope::CommandPacket_CmdType >(type_);
}
inline void CommandPacket::set_type(::mozilla::layers::layerscope::CommandPacket_CmdType value) {
  assert(::mozilla::layers::layerscope::CommandPacket_CmdType_IsValid(value));
  set_has_type();
  type_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.CommandPacket.type)
}

// optional bool value = 2;
inline bool CommandPacket::has_value() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void CommandPacket::set_has_value() {
  _has_bits_[0] |= 0x00000002u;
}
inline void CommandPacket::clear_has_value() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void CommandPacket::clear_value() {
  value_ = false;
  clear_has_value();
}
inline bool CommandPacket::value() const {
  // @@protoc_insertion_point(field_get:mozilla.layers.layerscope.CommandPacket.value)
  return value_;
}
inline void CommandPacket::set_value(bool value) {
  set_has_value();
  value_ = value;
  // @@protoc_insertion_point(field_set:mozilla.layers.layerscope.CommandPacket.value)
}


// @@protoc_insertion_point(namespace_scope)

}  // namespace layerscope
}  // namespace layers
}  // namespace mozilla

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_LayerScopePacket_2eproto__INCLUDED
