1 // Copyright 2019 The Dawn Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 #ifndef DAWNPLATFORM_TRACING_EVENTTRACER_H_ 16 #define DAWNPLATFORM_TRACING_EVENTTRACER_H_ 17 18 #include "dawn_platform/dawn_platform_export.h" 19 20 #include <cstdint> 21 22 namespace dawn_platform { 23 24 class Platform; 25 enum class TraceCategory; 26 27 namespace tracing { 28 29 using TraceEventHandle = uint64_t; 30 31 DAWN_PLATFORM_EXPORT const unsigned char* GetTraceCategoryEnabledFlag( 32 Platform* platform, 33 TraceCategory category); 34 35 // TODO(enga): Simplify this API. 36 DAWN_PLATFORM_EXPORT TraceEventHandle 37 AddTraceEvent(Platform* platform, 38 char phase, 39 const unsigned char* categoryGroupEnabled, 40 const char* name, 41 uint64_t id, 42 int numArgs, 43 const char** argNames, 44 const unsigned char* argTypes, 45 const uint64_t* argValues, 46 unsigned char flags); 47 48 } // namespace tracing 49 } // namespace dawn_platform 50 51 #endif // DAWNPLATFORM_TRACING_EVENTTRACER_H_ 52