xref: /aosp_15_r20/external/angle/util/capture/traces_export.h (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1 //
2 // Copyright 2021 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 // restricted_traces_export: Export definitions for restricted traces.
7 
8 #ifndef ANGLE_TRACES_EXPORT_H_
9 #define ANGLE_TRACES_EXPORT_H_
10 
11 // for KHRONOS_APIENTRY
12 #include <KHR/khrplatform.h>
13 
14 // See util/util_export.h for details on import/export labels.
15 #if !defined(ANGLE_TRACE_EXPORT)
16 #    if defined(_WIN32)
17 #        if defined(ANGLE_TRACE_IMPLEMENTATION)
18 #            define ANGLE_TRACE_EXPORT __declspec(dllexport)
19 #        else
20 #            define ANGLE_TRACE_EXPORT __declspec(dllimport)
21 #        endif
22 #    elif defined(__GNUC__)
23 #        define ANGLE_TRACE_EXPORT __attribute__((visibility("default")))
24 #    else
25 #        define ANGLE_TRACE_EXPORT
26 #    endif
27 #endif  // !defined(ANGLE_TRACE_EXPORT)
28 
29 #if !defined(ANGLE_TRACE_LOADER_EXPORT)
30 #    if defined(_WIN32)
31 #        if defined(ANGLE_TRACE_LOADER_IMPLEMENTATION)
32 #            define ANGLE_TRACE_LOADER_EXPORT __declspec(dllexport)
33 #        else
34 #            define ANGLE_TRACE_LOADER_EXPORT __declspec(dllimport)
35 #        endif
36 #    elif defined(__GNUC__)
37 #        define ANGLE_TRACE_LOADER_EXPORT __attribute__((visibility("default")))
38 #    else
39 #        define ANGLE_TRACE_LOADER_EXPORT
40 #    endif
41 #endif  // !defined(ANGLE_TRACE_LOADER_EXPORT)
42 
43 #if !defined(ANGLE_REPLAY_EXPORT)
44 #    if defined(_WIN32)
45 #        if defined(ANGLE_REPLAY_IMPLEMENTATION)
46 #            define ANGLE_REPLAY_EXPORT __declspec(dllexport)
47 #        else
48 #            define ANGLE_REPLAY_EXPORT __declspec(dllimport)
49 #        endif
50 #    elif defined(__GNUC__)
51 #        define ANGLE_REPLAY_EXPORT __attribute__((visibility("default")))
52 #    else
53 #        define ANGLE_REPLAY_EXPORT
54 #    endif
55 #endif  // !defined(ANGLE_REPLAY_EXPORT)
56 
57 typedef void (*GenericProc)(void);
58 typedef GenericProc(KHRONOS_APIENTRY *LoadProc)(const char *);
59 
60 #if defined(__cplusplus)
61 extern "C" {
62 #endif  // defined(__cplusplus)
63 ANGLE_TRACE_LOADER_EXPORT void LoadTraceEGL(LoadProc loadProc);
64 ANGLE_TRACE_LOADER_EXPORT void LoadTraceGLES(LoadProc loadProc);
65 #if defined(__cplusplus)
66 }  // extern "C"
67 #endif  // defined(__cplusplus)
68 
69 #endif  // ANGLE_TRACES_EXPORT_H_
70