/* * Copyright 2023 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "src/sksl/tracing/SkSLDebugTracePriv.h" #include "src/sksl/tracing/SkSLTraceHook.h" namespace SkSL { std::unique_ptr Tracer::Make(std::vector* traceInfo) { auto hook = std::make_unique(); hook->fTraceInfo = traceInfo; return hook; } void Tracer::line(int lineNum) { fTraceInfo->push_back({TraceInfo::Op::kLine, /*data=*/{lineNum, 0}}); } void Tracer::var(int slot, int32_t val) { fTraceInfo->push_back({TraceInfo::Op::kVar, /*data=*/{slot, val}}); } void Tracer::enter(int fnIdx) { fTraceInfo->push_back({TraceInfo::Op::kEnter, /*data=*/{fnIdx, 0}}); } void Tracer::exit(int fnIdx) { fTraceInfo->push_back({TraceInfo::Op::kExit, /*data=*/{fnIdx, 0}}); } void Tracer::scope(int delta) { fTraceInfo->push_back({TraceInfo::Op::kScope, /*data=*/{delta, 0}}); } } // namespace SkSL