Home | History | Annotate | Download | only in common
      1 // Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "common/event_tracer.h"
      6 
      7 namespace gl
      8 {
      9 
     10 GetCategoryEnabledFlagFunc g_getCategoryEnabledFlag;
     11 AddTraceEventFunc g_addTraceEvent;
     12 
     13 }  // namespace gl
     14 
     15 extern "C" {
     16 
     17 void __stdcall SetTraceFunctionPointers(GetCategoryEnabledFlagFunc getCategoryEnabledFlag,
     18                                         AddTraceEventFunc addTraceEvent)
     19 {
     20     gl::g_getCategoryEnabledFlag = getCategoryEnabledFlag;
     21     gl::g_addTraceEvent = addTraceEvent;
     22 }
     23 
     24 }  // extern "C"
     25 
     26 namespace gl
     27 {
     28 
     29 const unsigned char* TraceGetTraceCategoryEnabledFlag(const char* name)
     30 {
     31     if (g_getCategoryEnabledFlag)
     32     {
     33         return g_getCategoryEnabledFlag(name);
     34     }
     35     static unsigned char disabled = 0;
     36     return &disabled;
     37 }
     38 
     39 void TraceAddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id,
     40                         int numArgs, const char** argNames, const unsigned char* argTypes,
     41                         const unsigned long long* argValues, unsigned char flags)
     42 {
     43     if (g_addTraceEvent)
     44     {
     45         g_addTraceEvent(phase, categoryGroupEnabled, name, id, numArgs, argNames, argTypes, argValues, flags);
     46     }
     47 }
     48 
     49 }  // namespace gl
     50