mirror of
https://github.com/nishiowo/nishbox
synced 2025-04-21 12:14:39 +00:00
207 lines
3.2 KiB
C
207 lines
3.2 KiB
C
/**
|
|
* @file gf_macro.h
|
|
* @~english
|
|
* @brief Macro
|
|
*/
|
|
|
|
#ifndef __GF_MACRO_H__
|
|
#define __GF_MACRO_H__
|
|
|
|
#ifdef GF_EXPOSE_ALL
|
|
|
|
#ifndef GF_EXPOSE_CORE
|
|
/**
|
|
* @~english
|
|
* @brief Expose core properties
|
|
*/
|
|
#define GF_EXPOSE_CORE
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_DRAW
|
|
/**
|
|
* @~english
|
|
* @brief Expose drawing interface properties
|
|
*/
|
|
#define GF_EXPOSE_DRAW
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_DRAW_PLATFORM
|
|
/**
|
|
* @~english
|
|
* @brief Expose platform-dependent part of drawing driver properties
|
|
*/
|
|
#define GF_EXPOSE_DRAW_PLATFORM
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_DRAW_DRIVER
|
|
/**
|
|
* @~english
|
|
* @brief Expose drawing driver properties
|
|
*/
|
|
#define GF_EXPOSE_DRAW_DRIVER
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_MESH
|
|
/**
|
|
* @~english
|
|
* @brief Expose mesh properties
|
|
*/
|
|
#define GF_EXPOSE_MESH
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_MODEL
|
|
/**
|
|
* @~english
|
|
* @brief Expose model properties
|
|
*/
|
|
#define GF_EXPOSE_MODEL
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_TEXTURE
|
|
/**
|
|
* @~english
|
|
* @brief Expose texture properties
|
|
*/
|
|
#define GF_EXPOSE_TEXTURE
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_PHYSICS
|
|
/**
|
|
* @~english
|
|
* @brief Expose physics interface properties
|
|
*/
|
|
#define GF_EXPOSE_PHYSICS
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_GUI
|
|
/**
|
|
* @~english
|
|
* @brief Expose GUI properties
|
|
*/
|
|
#define GF_EXPOSE_GUI
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_THREAD
|
|
/**
|
|
* @~english
|
|
* @brief Expose thread interface properties
|
|
*/
|
|
#define GF_EXPOSE_THREAD
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_CLIENT
|
|
/**
|
|
* @~english
|
|
* @brief Expose client interface properties
|
|
*/
|
|
#define GF_EXPOSE_CLIENT
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_SERVER
|
|
/**
|
|
* @~english
|
|
* @brief Expose server interface properties
|
|
*/
|
|
#define GF_EXPOSE_SERVER
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_FONT
|
|
/**
|
|
* @~english
|
|
* @brief Expose font properties
|
|
*/
|
|
#define GF_EXPOSE_FONT
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_INPUT
|
|
/**
|
|
* @~english
|
|
* @brief Expose input interface properties
|
|
*/
|
|
#define GF_EXPOSE_INPUT
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_AUDIO
|
|
/**
|
|
* @~english
|
|
* @brief Expose audio interface properties
|
|
*/
|
|
#define GF_EXPOSE_AUDIO
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_GRAPHIC
|
|
/**
|
|
* @~english
|
|
* @brief Expose graphic interface properties
|
|
* @note Exposed by default
|
|
*/
|
|
#define GF_EXPOSE_GRAPHIC
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_MATH
|
|
/**
|
|
* @~english
|
|
* @brief Expose math properties
|
|
* @note Exposed by default
|
|
*/
|
|
#define GF_EXPOSE_MATH
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_VERSION
|
|
/**
|
|
* @~english
|
|
* @brief Expose version properties
|
|
* @note Exposed by default
|
|
*/
|
|
#define GF_EXPOSE_VERSION
|
|
#endif
|
|
|
|
#endif
|
|
|
|
/**
|
|
* @def __FUNCTION_NAME__
|
|
* @~english
|
|
* @brief Macro for compiler-dependent function name macro
|
|
*/
|
|
#ifndef __FUNCTION_NAME__
|
|
#ifdef _MSC_VER
|
|
#define __FUNCTION_NAME__ __FUNCTION__
|
|
#else
|
|
#define __FUNCTION_NAME__ __func__
|
|
#endif
|
|
#endif
|
|
|
|
/**
|
|
* @~english
|
|
* @brief Macro to define engine type shorter
|
|
* @param n Name
|
|
* @param b Body
|
|
*/
|
|
#define GF_DECLARE_TYPE(n, b) typedef struct gf_##n##_t b gf_##n##_t;
|
|
|
|
/**
|
|
* @def GF_EXPORT
|
|
* @~english
|
|
* @brief Macro for platform-dependent symbol export/import
|
|
*/
|
|
#if defined(_WIN32) && defined(GF_DLL)
|
|
#define GF_EXPORT extern __declspec(dllexport)
|
|
#else
|
|
#define GF_EXPORT extern
|
|
#endif
|
|
|
|
/* Expose them by default */
|
|
#ifndef GF_EXPOSE_GRAPHIC
|
|
#define GF_EXPOSE_GRAPHIC
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_MATH
|
|
#define GF_EXPOSE_MATH
|
|
#endif
|
|
|
|
#ifndef GF_EXPOSE_VERSION
|
|
#define GF_EXPOSE_VERSION
|
|
#endif
|
|
|
|
#endif
|