14 const uint8_t* categoryEnabledFlag,
18 const char** argNames,
19 const uint8_t* argTypes,
20 const uint64_t* argValues,
23 for (
int i = 0; i < numArgs; ++i) {
30 uint64_t
value = argValues[i];
31 switch (argTypes[i]) {
33 args.appendf(
"%s=%s", argNames[i],
value ?
"true" :
"false");
36 args.appendf(
"%s=%" PRIu64, argNames[i],
value);
39 args.appendf(
"%s=%" PRIi64, argNames[i],
static_cast<int64_t
>(
value));
42 args.appendf(
"%s=%g", argNames[i], sk_bit_cast<double>(
value));
49 static constexpr size_t kMaxLen = 20;
51 size_t truncAt =
string.size();
52 size_t newLineAt =
SkStrFind(
string.c_str(),
"\n");
56 truncAt = std::min(truncAt, kMaxLen);
57 if (truncAt <
string.size()) {
58 string.resize(truncAt);
61 args.appendf(
"%s=\"%s\"", argNames[i],
string.c_str());
65 args.appendf(
"%s=<unknown type>", argNames[i]);
90 SkDebugf(
"\n\n- - - New tracing section: %s - - -\n",
name);
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
static int SkStrFind(const char string[], const char substring[])
#define TRACE_VALUE_TYPE_STRING
#define TRACE_VALUE_TYPE_BOOL
#define TRACE_VALUE_TYPE_POINTER
#define TRACE_VALUE_TYPE_COPY_STRING
#define TRACE_VALUE_TYPE_INT
#define TRACE_VALUE_TYPE_UINT
#define TRACE_VALUE_TYPE_DOUBLE
#define TRACE_EVENT_PHASE_COMPLETE
void updateTraceEventDuration(const uint8_t *categoryEnabledFlag, const char *name, SkEventTracer::Handle handle) override
const char * getCategoryGroupName(const uint8_t *categoryEnabledFlag) override
void newTracingSection(const char *name) override
SkEventTracer::Handle addTraceEvent(char phase, const uint8_t *categoryEnabledFlag, const char *name, uint64_t id, int numArgs, const char **argNames, const uint8_t *argTypes, const uint64_t *argValues, uint8_t flags) override
void append(const char text[])
const char * c_str() const
FlutterSemanticsFlag flags
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
static const void * TraceValueAsPointer(uint64_t value)
static const char * TraceValueAsString(uint64_t value)