• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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