1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by gen_restricted_traces.py using data from restricted_traces.json
3 //
4 // Copyright 2020 The ANGLE Project Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style license that can be
6 // found in the LICENSE file.
7 //
8 // restricted_traces_autogen: Types and enumerations for trace tests.
9 
10 #ifndef ANGLE_RESTRICTED_TRACES_H_
11 #define ANGLE_RESTRICTED_TRACES_H_
12 
13 #include <KHR/khrplatform.h>
14 #include <cstdint>
15 #include <vector>
16 
17 // See util/util_export.h for details on import/export labels.
18 #if !defined(ANGLE_TRACE_EXPORT)
19 #    if defined(_WIN32)
20 #        if defined(ANGLE_TRACE_IMPLEMENTATION)
21 #            define ANGLE_TRACE_EXPORT __declspec(dllexport)
22 #        else
23 #            define ANGLE_TRACE_EXPORT __declspec(dllimport)
24 #        endif
25 #    elif defined(__GNUC__)
26 #        define ANGLE_TRACE_EXPORT __attribute__((visibility("default")))
27 #    else
28 #        define ANGLE_TRACE_EXPORT
29 #    endif
30 #endif  // !defined(ANGLE_TRACE_EXPORT)
31 
32 #if !defined(ANGLE_TRACE_LOADER_EXPORT)
33 #    if defined(_WIN32)
34 #        if defined(ANGLE_TRACE_LOADER_IMPLEMENTATION)
35 #            define ANGLE_TRACE_LOADER_EXPORT __declspec(dllexport)
36 #        else
37 #            define ANGLE_TRACE_LOADER_EXPORT __declspec(dllimport)
38 #        endif
39 #    elif defined(__GNUC__)
40 #        define ANGLE_TRACE_LOADER_EXPORT __attribute__((visibility("default")))
41 #    else
42 #        define ANGLE_TRACE_LOADER_EXPORT
43 #    endif
44 #endif  // !defined(ANGLE_TRACE_LOADER_EXPORT)
45 
46 namespace trace_angle
47 {
48 using GenericProc = void (*)();
49 using LoadProc    = GenericProc(KHRONOS_APIENTRY *)(const char *);
50 ANGLE_TRACE_LOADER_EXPORT void LoadGLES(LoadProc loadProc);
51 }  // namespace trace_angle
52 
53 namespace angle
54 {
55 enum class RestrictedTraceID
56 {
57     angry_birds_2_1500,
58     arena_of_valor,
59     brawl_stars,
60     candy_crush_500,
61     clash_of_clans,
62     cod_mobile,
63     dragon_ball_legends,
64     egypt_1500,
65     fate_grand_order,
66     free_fire,
67     kartrider_rush,
68     manhattan_10,
69     marvel_contest_of_champions,
70     mobile_legends,
71     nba2k20_800,
72     pubg_mobile_lite,
73     temple_run_300,
74     trex_200,
75     world_of_tanks_blitz,
76     InvalidEnum,
77     EnumCount = InvalidEnum
78 };
79 
80 using ReplayFunc           = void (*)(uint32_t);
81 using ResetFunc            = void (*)();
82 using SetupFunc            = void (*)();
83 using DecompressFunc       = uint8_t *(*)(const std::vector<uint8_t> &);
84 using SetBinaryDataDirFunc = void (*)(const char *);
85 
86 static constexpr size_t kTraceInfoMaxNameLen = 32;
87 
88 struct TraceInfo
89 {
90     uint32_t startFrame;
91     uint32_t endFrame;
92     uint32_t drawSurfaceWidth;
93     uint32_t drawSurfaceHeight;
94     char name[kTraceInfoMaxNameLen];
95 };
96 
97 using DecompressCallback = uint8_t *(*)(const std::vector<uint8_t> &);
98 
99 ANGLE_TRACE_EXPORT const TraceInfo &GetTraceInfo(RestrictedTraceID traceID);
100 ANGLE_TRACE_EXPORT void ReplayFrame(RestrictedTraceID traceID, uint32_t frameIndex);
101 ANGLE_TRACE_EXPORT void ResetReplay(RestrictedTraceID traceID);
102 ANGLE_TRACE_EXPORT void SetupReplay(RestrictedTraceID traceID);
103 ANGLE_TRACE_EXPORT void SetBinaryDataDir(RestrictedTraceID traceID, const char *dataDir);
104 ANGLE_TRACE_EXPORT void SetBinaryDataDecompressCallback(RestrictedTraceID traceID,
105                                                         DecompressCallback callback);
106 }  // namespace angle
107 
108 #endif  // ANGLE_RESTRICTED_TRACES_H_
109