/* * Copyright (C) 2018 Tomasz Kramkowski * SPDX-License-Identifier: MIT */ #ifndef LOADGL_H #define LOADGL_H #include "gldefs.h" typedef void *lgl_loadfunc(const char *name); enum lgl_status { LGL_OK, LGL_MISSING, }; enum lgl_status lgl_load(lgl_loadfunc *load); const char *lgl_strerror(enum lgl_status status); #define _LGL_INTERFACE(rett, name, func, ...) \ typedef rett func(__VA_ARGS__); \ extern func *name; #define LGL_INTERFACE(rett, name, ...) _LGL_INTERFACE(rett, name, name##_func, __VA_ARGS__) INTERFACES()dnl #endif // LOADGL_H