1 #ifndef COREGL_INTERNAL_H
2 #define COREGL_INTERNAL_H
8 #include "modules/coregl_module.h"
10 #define unlikely(x) __builtin_expect(x, 0)
12 // Symbol definition for real
13 #define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST) extern RET_TYPE (*_sym_##FUNC_NAME) PARAM_LIST;
14 # include "headers/sym.h"
19 #define LOG_TAG "CoreGL"
22 # define COREGL_ERR(...) \
24 # define COREGL_WRN(...) \
27 # define COREGL_DBG(...) \
30 # define COREGL_DBG(...)
33 # define COREGL_LOG(...) \
38 if (trace_fp != NULL) \
39 fprintf(trace_fp, __VA_ARGS__); \
43 # define TRACE_END() \
44 if (trace_fp != NULL) \
46 #define _COREGL_TRACE_OUTPUT_INTERVAL_SEC 5
51 if (!(expr)) { LOGE("\E[40;31;1m%s(%d) error. '"#expr"'\E[0m\n", __func__, __LINE__); }
57 typedef GLvoid * GLvoidptr;
58 typedef GLuint GLuintmask;
60 #define _COREGL_INT_INIT_VALUE -3
62 #define COREGL_OVERRIDE_API(mangle, func, prefix) \
63 mangle##func = prefix##func
65 typedef EGLSurface GLSurface;
66 typedef EGLDisplay GLDisplay;
67 typedef EGLContext GLContext;
69 #define COREGL_GL_NO_CONTEXT EGL_NO_CONTEXT
71 typedef struct _GLThreadState
74 void *module_data[COREGL_MAX_MODULES];
77 extern void *glue_lib_handle;
78 extern void *egl_lib_handle;
80 #include "coregl_thread_pthread.h"
82 typedef struct _General_Trace_List
85 struct _General_Trace_List *next;
88 extern General_Trace_List *thread_trace_list;
89 extern Mutex general_trace_lists_access_mutex;
91 extern FILE *trace_fp;
93 extern int trace_api_flag;
94 extern int trace_api_all_flag;
95 extern int trace_mem_flag;
96 extern int trace_mem_all_flag;
97 extern int trace_surface_flag;
98 extern int trace_surface_all_flag;
99 extern int trace_ctx_flag;
100 extern int trace_ctx_force_flag;
101 extern int trace_state_flag;
103 #define USE_TRACEPATH (trace_api_flag == 1 || trace_ctx_flag == 1 || trace_state_flag == 1 || trace_mem_flag == 1 || trace_surface_flag == 1)
105 // Environment functions
106 extern const char *get_env_setting(const char *name);
108 // Main utility functions
109 extern int init_new_thread_state();
112 extern int mutex_lock(Mutex *mt);
113 extern int mutex_unlock(Mutex *mt);
114 extern int get_current_thread();
115 extern int set_current_thread_state(GLThreadState *tstate);
116 extern GLThreadState *get_current_thread_state();
119 // Override functions
120 extern void init_export();
121 extern void deinit_export();
124 extern void init_modules();
125 extern void deinit_modules();
126 extern void reset_modules_override();
127 extern void init_modules_tstate(GLThreadState *tstate);
128 extern void deinit_modules_tstate(GLThreadState *tstate);
131 // Debug & Trace functions
132 extern int add_to_general_trace_list(General_Trace_List **gtl, void *value);
133 extern int remove_from_general_trace_list(General_Trace_List **gtl, void *value);
135 #endif // COREGL_INTERNAL_H