#define unlikely(x) __builtin_expect(x, 0)
// Symbol definition for real
-#define _COREGL_SYMBOL(IS_EXTENSION, RET_TYPE, FUNC_NAME, PARAM_LIST) extern RET_TYPE (*_sym_##FUNC_NAME) PARAM_LIST;
+#define _COREGL_SYMBOL(RET_TYPE, FUNC_NAME, PARAM_LIST) extern RET_TYPE (*_sym_##FUNC_NAME) PARAM_LIST;
# include "headers/sym.h"
#undef _COREGL_SYMBOL
#define COREGL_DEBUG
-# define ERR(...) \
- fprintf(stderr, __VA_ARGS__)
+///////////////////////////////////////
+// Disable dlog for debugging urgent issues //
+#ifdef COREGL_DEBUG
+//# define LOG_TAG "CoreGL"
+//# include <dlog.h>
+# define LOGE(...) fprintf(stderr, __VA_ARGS__)
+# define LOGW(...) fprintf(stderr, __VA_ARGS__)
+# define LOGD(...) fprintf(stderr, __VA_ARGS__)
+#endif
+///////////////////////////////////////
+
+# define COREGL_ERR(...) \
+ LOGE(" "__VA_ARGS__)
+# define COREGL_WRN(...) \
+ LOGW(" "__VA_ARGS__)
# ifdef COREGL_DEBUG
-# define DBG(...) \
- fprintf(stderr, __VA_ARGS__)
+# define COREGL_DBG(...) \
+ LOGD(" "__VA_ARGS__)
# else
-# define DBG(...)
+# define COREGL_DBG(...)
# endif
-# define LOG(...) \
- fprintf(stderr, __VA_ARGS__)
+# define COREGL_LOG(...) \
+ LOGD(" "__VA_ARGS__)
# define TRACE(...) \
- fprintf(trace_fp, __VA_ARGS__)
+ if (trace_fp != NULL) \
+ fprintf(trace_fp, __VA_ARGS__); \
+ else \
+ LOGD(" "__VA_ARGS__)
+
# define TRACE_END() \
- fflush(trace_fp)
+ if (trace_fp != NULL) \
+ fflush(trace_fp)
#define _COREGL_TRACE_OUTPUT_INTERVAL_SEC 5
+static inline GLint GET_INT_FROM_FLOAT(GLfloat value)
+{
+ return (GLint)value;
+}
+static inline GLuint GET_UINT_FROM_FLOAT(GLfloat value)
+{
+ return (GLuint)value;
+}
+
#ifdef COREGL_DEBUG
# define AST(expr) \
- if (!(expr)) { fprintf(stderr, "\E[0;31;1m%s(%d) error. '"#expr"'\E[0m\n", __func__, __LINE__); }
+ if (!(expr)) { LOGE("\E[40;31;1m%s(%d) error. '"#expr"'\E[0m\n", __func__, __LINE__); }
#else
# define AST(expr) \
if (expr)
#endif
-typedef GLvoid * GLvoidptr;
+typedef GLvoid *GLvoidptr;
typedef GLuint GLuintmask;
-#define _COREGL_INT_INIT_VALUE -3
-
-#ifdef COREGL_ERRORS
-# define GLERR(fn, fl, ln, op)
-#else
-# define GLERR(fn, fl, ln, op)
-#endif
+#define COREGL_GLAPI_31 4
+#define COREGL_GLAPI_3 3
+#define COREGL_GLAPI_2 2
-typedef struct _Trace_Data Trace_Data;
+#define _COREGL_INT_INIT_VALUE -3
#define COREGL_OVERRIDE_API(mangle, func, prefix) \
- mangle##func = prefix##func
+ mangle##func = prefix##func
typedef EGLSurface GLSurface;
typedef EGLDisplay GLDisplay;
typedef EGLContext GLContext;
-typedef struct _GLThreadState
-{
+#define COREGL_GL_NO_CONTEXT EGL_NO_CONTEXT
+
+typedef struct _GLThreadState {
int thread_id;
void *module_data[COREGL_MAX_MODULES];
} GLThreadState;
#include "coregl_thread_pthread.h"
-typedef struct _General_Trace_List
-{
+typedef struct _General_Trace_List {
void *value;
struct _General_Trace_List *next;
} General_Trace_List;
extern int trace_api_flag;
extern int trace_api_all_flag;
+extern int trace_api_frame_flag;
+extern int trace_mem_flag;
+extern int trace_mem_all_flag;
extern int trace_ctx_flag;
extern int trace_ctx_force_flag;
extern int trace_state_flag;
-
-#define USE_TRACEPATH (trace_api_flag == 1 || trace_ctx_flag == 1 || trace_state_flag == 1)
+extern int trace_surface_flag;
+extern int trace_surface_sequence_sort_flag;
+extern int trace_surface_filter_period_begin;
+extern int trace_surface_filter_period_end;
+extern int trace_surface_filter_type;
+extern int trace_surface_filter_handle;
+extern int trace_surface_filter_size_w;
+extern int trace_surface_filter_size_h;
+extern int trace_surface_print_only_flag;
+
+#define USE_TRACEPATH (trace_api_flag == 1 || trace_ctx_flag == 1 || trace_state_flag == 1 || trace_mem_flag == 1 || trace_surface_flag == 1)
// Environment functions
extern const char *get_env_setting(const char *name);
extern int init_new_thread_state();
// Thread functions
+extern int mutex_init(Mutex *mt);
extern int mutex_lock(Mutex *mt);
extern int mutex_unlock(Mutex *mt);
extern int get_current_thread();
// Module interfaces
extern void init_modules();
extern void deinit_modules();
+extern void reset_modules_override();
extern void init_modules_tstate(GLThreadState *tstate);
extern void deinit_modules_tstate(GLThreadState *tstate);
// Debug & Trace functions
-extern int add_to_general_trace_list(General_Trace_List **gtl, void *value);
-extern int remove_from_general_trace_list(General_Trace_List **gtl, void *value);
+extern int add_to_general_trace_list(General_Trace_List **gtl,
+ void *value);
+extern int remove_from_general_trace_list(
+ General_Trace_List **gtl, void *value);
#endif // COREGL_INTERNAL_H