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