// Code generated by protoc-gen-go. DO NOT EDIT.
// source: test/custom_results/graphics/trace.proto

package graphics

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// Details about a graphics trace file.
// Next Tag: 10
type Trace struct {
	// Global unique trace identifier.
	Id       *TraceId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Filename string   `protobuf:"bytes,2,opt,name=filename,proto3" json:"filename,omitempty"`
	Size     uint64   `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"`
	// Source of the trace.
	Source string `protobuf:"bytes,4,opt,name=source,proto3" json:"source,omitempty"`
	// Source specific identifier for the program being traced. (eg Steam ID)
	ApplicationId string `protobuf:"bytes,5,opt,name=application_id,json=applicationId,proto3" json:"application_id,omitempty"`
	// Number of frames in the trace.
	FrameCount uint32 `protobuf:"varint,6,opt,name=frame_count,json=frameCount,proto3" json:"frame_count,omitempty"`
	// The range of frames after the game began to interact.
	FrameRange *Trace_Range `protobuf:"bytes,7,opt,name=frame_range,json=frameRange,proto3" json:"frame_range,omitempty"`
	// Frames that are worth checking for pixel correctness.
	KeyFrames []uint32 `protobuf:"varint,8,rep,packed,name=key_frames,json=keyFrames,proto3" json:"key_frames,omitempty"`
	// Frames that are worth looping on to gauge performance.
	LoopFrames           []uint32 `protobuf:"varint,9,rep,packed,name=loop_frames,json=loopFrames,proto3" json:"loop_frames,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Trace) Reset()         { *m = Trace{} }
func (m *Trace) String() string { return proto.CompactTextString(m) }
func (*Trace) ProtoMessage()    {}
func (*Trace) Descriptor() ([]byte, []int) {
	return fileDescriptor_96110b6982059ac3, []int{0}
}

func (m *Trace) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Trace.Unmarshal(m, b)
}
func (m *Trace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Trace.Marshal(b, m, deterministic)
}
func (m *Trace) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Trace.Merge(m, src)
}
func (m *Trace) XXX_Size() int {
	return xxx_messageInfo_Trace.Size(m)
}
func (m *Trace) XXX_DiscardUnknown() {
	xxx_messageInfo_Trace.DiscardUnknown(m)
}

var xxx_messageInfo_Trace proto.InternalMessageInfo

func (m *Trace) GetId() *TraceId {
	if m != nil {
		return m.Id
	}
	return nil
}

func (m *Trace) GetFilename() string {
	if m != nil {
		return m.Filename
	}
	return ""
}

func (m *Trace) GetSize() uint64 {
	if m != nil {
		return m.Size
	}
	return 0
}

func (m *Trace) GetSource() string {
	if m != nil {
		return m.Source
	}
	return ""
}

func (m *Trace) GetApplicationId() string {
	if m != nil {
		return m.ApplicationId
	}
	return ""
}

func (m *Trace) GetFrameCount() uint32 {
	if m != nil {
		return m.FrameCount
	}
	return 0
}

func (m *Trace) GetFrameRange() *Trace_Range {
	if m != nil {
		return m.FrameRange
	}
	return nil
}

func (m *Trace) GetKeyFrames() []uint32 {
	if m != nil {
		return m.KeyFrames
	}
	return nil
}

func (m *Trace) GetLoopFrames() []uint32 {
	if m != nil {
		return m.LoopFrames
	}
	return nil
}

type Trace_Range struct {
	Start                uint32   `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"`
	End                  uint32   `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Trace_Range) Reset()         { *m = Trace_Range{} }
func (m *Trace_Range) String() string { return proto.CompactTextString(m) }
func (*Trace_Range) ProtoMessage()    {}
func (*Trace_Range) Descriptor() ([]byte, []int) {
	return fileDescriptor_96110b6982059ac3, []int{0, 0}
}

func (m *Trace_Range) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Trace_Range.Unmarshal(m, b)
}
func (m *Trace_Range) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Trace_Range.Marshal(b, m, deterministic)
}
func (m *Trace_Range) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Trace_Range.Merge(m, src)
}
func (m *Trace_Range) XXX_Size() int {
	return xxx_messageInfo_Trace_Range.Size(m)
}
func (m *Trace_Range) XXX_DiscardUnknown() {
	xxx_messageInfo_Trace_Range.DiscardUnknown(m)
}

var xxx_messageInfo_Trace_Range proto.InternalMessageInfo

func (m *Trace_Range) GetStart() uint32 {
	if m != nil {
		return m.Start
	}
	return 0
}

func (m *Trace_Range) GetEnd() uint32 {
	if m != nil {
		return m.End
	}
	return 0
}

type TraceList struct {
	Value                []*Trace `protobuf:"bytes,1,rep,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TraceList) Reset()         { *m = TraceList{} }
func (m *TraceList) String() string { return proto.CompactTextString(m) }
func (*TraceList) ProtoMessage()    {}
func (*TraceList) Descriptor() ([]byte, []int) {
	return fileDescriptor_96110b6982059ac3, []int{1}
}

func (m *TraceList) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TraceList.Unmarshal(m, b)
}
func (m *TraceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TraceList.Marshal(b, m, deterministic)
}
func (m *TraceList) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TraceList.Merge(m, src)
}
func (m *TraceList) XXX_Size() int {
	return xxx_messageInfo_TraceList.Size(m)
}
func (m *TraceList) XXX_DiscardUnknown() {
	xxx_messageInfo_TraceList.DiscardUnknown(m)
}

var xxx_messageInfo_TraceList proto.InternalMessageInfo

func (m *TraceList) GetValue() []*Trace {
	if m != nil {
		return m.Value
	}
	return nil
}

func init() {
	proto.RegisterType((*Trace)(nil), "test.custom_results.graphics.Trace")
	proto.RegisterType((*Trace_Range)(nil), "test.custom_results.graphics.Trace.Range")
	proto.RegisterType((*TraceList)(nil), "test.custom_results.graphics.TraceList")
}

func init() {
	proto.RegisterFile("test/custom_results/graphics/trace.proto", fileDescriptor_96110b6982059ac3)
}

var fileDescriptor_96110b6982059ac3 = []byte{
	// 373 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xc1, 0x6b, 0xdb, 0x30,
	0x14, 0xc6, 0x71, 0x1c, 0x67, 0xf1, 0x0b, 0x1e, 0x43, 0x8c, 0x21, 0xc2, 0xc6, 0x4c, 0x46, 0xc0,
	0x63, 0x20, 0x41, 0x46, 0x0f, 0xbd, 0xb6, 0x10, 0x9a, 0xd2, 0x93, 0xe8, 0xa9, 0x17, 0xa3, 0xda,
	0x8a, 0x23, 0x62, 0x5b, 0x46, 0x92, 0x0b, 0xe9, 0xbf, 0xd0, 0x7f, 0xba, 0x58, 0x8e, 0x4b, 0x7b,
	0x49, 0x73, 0x7b, 0xdf, 0xf7, 0x7e, 0xef, 0xb3, 0x9e, 0x2c, 0x48, 0xac, 0x30, 0x96, 0x66, 0xad,
	0xb1, 0xaa, 0x4a, 0xb5, 0x30, 0x6d, 0x69, 0x0d, 0x2d, 0x34, 0x6f, 0x76, 0x32, 0x33, 0xd4, 0x6a,
	0x9e, 0x09, 0xd2, 0x68, 0x65, 0x15, 0xfa, 0xd9, 0x91, 0xe4, 0x23, 0x49, 0x06, 0x72, 0xfe, 0xef,
	0xf3, 0x9c, 0x54, 0xe6, 0x7d, 0xd4, 0xe2, 0xc5, 0x87, 0xe0, 0xbe, 0xb3, 0xd0, 0x05, 0x8c, 0x64,
	0x8e, 0xbd, 0xd8, 0x4b, 0x66, 0xab, 0x25, 0x39, 0xf5, 0x05, 0xe2, 0x06, 0x36, 0x39, 0x1b, 0xc9,
	0x1c, 0xcd, 0x61, 0xba, 0x95, 0xa5, 0xa8, 0x79, 0x25, 0xf0, 0x28, 0xf6, 0x92, 0x90, 0xbd, 0x69,
	0x84, 0x60, 0x6c, 0xe4, 0xb3, 0xc0, 0x7e, 0xec, 0x25, 0x63, 0xe6, 0x6a, 0xf4, 0x03, 0x26, 0x46,
	0xb5, 0x3a, 0x13, 0x78, 0xec, 0xe8, 0xa3, 0x42, 0x4b, 0xf8, 0xca, 0x9b, 0xa6, 0x94, 0x19, 0xb7,
	0x52, 0xd5, 0xa9, 0xcc, 0x71, 0xe0, 0xfa, 0xd1, 0x3b, 0x77, 0x93, 0xa3, 0xdf, 0x30, 0xdb, 0x6a,
	0x5e, 0x89, 0x34, 0x53, 0x6d, 0x6d, 0xf1, 0x24, 0xf6, 0x92, 0x88, 0x81, 0xb3, 0xae, 0x3b, 0x07,
	0xdd, 0x0e, 0x80, 0xe6, 0x75, 0x21, 0xf0, 0x17, 0xb7, 0xcf, 0xdf, 0x33, 0xf6, 0x21, 0xac, 0x1b,
	0x38, 0x66, 0xb9, 0x1a, 0xfd, 0x02, 0xd8, 0x8b, 0x43, 0xea, 0x1c, 0x83, 0xa7, 0xb1, 0x9f, 0x44,
	0x2c, 0xdc, 0x8b, 0xc3, 0xda, 0x19, 0xdd, 0x59, 0x4a, 0xa5, 0x9a, 0xa1, 0x1f, 0xba, 0x3e, 0x74,
	0x56, 0x0f, 0xcc, 0x29, 0x04, 0x7d, 0xd0, 0x77, 0x08, 0x8c, 0xe5, 0xda, 0xba, 0xeb, 0x8d, 0x58,
	0x2f, 0xd0, 0x37, 0xf0, 0x45, 0x9d, 0xbb, 0x5b, 0x8b, 0x58, 0x57, 0x2e, 0xd6, 0x10, 0xba, 0xb3,
	0xdc, 0x49, 0x63, 0xd1, 0x25, 0x04, 0x4f, 0xbc, 0x6c, 0x05, 0xf6, 0x62, 0x3f, 0x99, 0xad, 0xfe,
	0x9c, 0xb1, 0x03, 0xeb, 0x27, 0xae, 0x6e, 0x1e, 0xd6, 0x85, 0x22, 0xd9, 0x4e, 0xab, 0x4a, 0xb6,
	0x15, 0x51, 0xba, 0xa0, 0x83, 0x50, 0x86, 0xca, 0x7a, 0xab, 0x39, 0x75, 0xff, 0x9f, 0x16, 0x8a,
	0x9e, 0x7a, 0x2e, 0x8f, 0x13, 0x87, 0xfd, 0x7f, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x2f, 0xb0, 0x35,
	0x75, 0x9d, 0x02, 0x00, 0x00,
}
