1*8975f5c5SAndroid Build Coastguard Worker // Copyright 2012 The ANGLE Project Authors. All rights reserved.
2*8975f5c5SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*8975f5c5SAndroid Build Coastguard Worker // found in the LICENSE file.
4*8975f5c5SAndroid Build Coastguard Worker
5*8975f5c5SAndroid Build Coastguard Worker #include "common/event_tracer.h"
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Worker #include "common/debug.h"
8*8975f5c5SAndroid Build Coastguard Worker
9*8975f5c5SAndroid Build Coastguard Worker namespace angle
10*8975f5c5SAndroid Build Coastguard Worker {
11*8975f5c5SAndroid Build Coastguard Worker
GetTraceCategoryEnabledFlag(PlatformMethods * platform,const char * name)12*8975f5c5SAndroid Build Coastguard Worker const unsigned char *GetTraceCategoryEnabledFlag(PlatformMethods *platform, const char *name)
13*8975f5c5SAndroid Build Coastguard Worker {
14*8975f5c5SAndroid Build Coastguard Worker ASSERT(platform);
15*8975f5c5SAndroid Build Coastguard Worker
16*8975f5c5SAndroid Build Coastguard Worker const unsigned char *categoryEnabledFlag =
17*8975f5c5SAndroid Build Coastguard Worker platform->getTraceCategoryEnabledFlag(platform, name);
18*8975f5c5SAndroid Build Coastguard Worker if (categoryEnabledFlag != nullptr)
19*8975f5c5SAndroid Build Coastguard Worker {
20*8975f5c5SAndroid Build Coastguard Worker return categoryEnabledFlag;
21*8975f5c5SAndroid Build Coastguard Worker }
22*8975f5c5SAndroid Build Coastguard Worker
23*8975f5c5SAndroid Build Coastguard Worker static unsigned char disabled = 0;
24*8975f5c5SAndroid Build Coastguard Worker return &disabled;
25*8975f5c5SAndroid Build Coastguard Worker }
26*8975f5c5SAndroid Build Coastguard Worker
AddTraceEvent(PlatformMethods * platform,char phase,const unsigned char * categoryGroupEnabled,const char * name,unsigned long long id,int numArgs,const char ** argNames,const unsigned char * argTypes,const unsigned long long * argValues,unsigned char flags)27*8975f5c5SAndroid Build Coastguard Worker angle::TraceEventHandle AddTraceEvent(PlatformMethods *platform,
28*8975f5c5SAndroid Build Coastguard Worker char phase,
29*8975f5c5SAndroid Build Coastguard Worker const unsigned char *categoryGroupEnabled,
30*8975f5c5SAndroid Build Coastguard Worker const char *name,
31*8975f5c5SAndroid Build Coastguard Worker unsigned long long id,
32*8975f5c5SAndroid Build Coastguard Worker int numArgs,
33*8975f5c5SAndroid Build Coastguard Worker const char **argNames,
34*8975f5c5SAndroid Build Coastguard Worker const unsigned char *argTypes,
35*8975f5c5SAndroid Build Coastguard Worker const unsigned long long *argValues,
36*8975f5c5SAndroid Build Coastguard Worker unsigned char flags)
37*8975f5c5SAndroid Build Coastguard Worker {
38*8975f5c5SAndroid Build Coastguard Worker ASSERT(platform);
39*8975f5c5SAndroid Build Coastguard Worker
40*8975f5c5SAndroid Build Coastguard Worker double timestamp = platform->monotonicallyIncreasingTime(platform);
41*8975f5c5SAndroid Build Coastguard Worker
42*8975f5c5SAndroid Build Coastguard Worker if (timestamp != 0)
43*8975f5c5SAndroid Build Coastguard Worker {
44*8975f5c5SAndroid Build Coastguard Worker angle::TraceEventHandle handle =
45*8975f5c5SAndroid Build Coastguard Worker platform->addTraceEvent(platform, phase, categoryGroupEnabled, name, id, timestamp,
46*8975f5c5SAndroid Build Coastguard Worker numArgs, argNames, argTypes, argValues, flags);
47*8975f5c5SAndroid Build Coastguard Worker return handle;
48*8975f5c5SAndroid Build Coastguard Worker }
49*8975f5c5SAndroid Build Coastguard Worker
50*8975f5c5SAndroid Build Coastguard Worker return static_cast<angle::TraceEventHandle>(0);
51*8975f5c5SAndroid Build Coastguard Worker }
52*8975f5c5SAndroid Build Coastguard Worker
53*8975f5c5SAndroid Build Coastguard Worker } // namespace angle
54