You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

67 lines
1.6 KiB

/** @file Def.h
* @brief Common SDK definitions.
* @copyright VisionLabs LLC
* @date 25.06.2014
*/
#pragma once
#if defined(__clang__) || defined(__GNUC__)
#define FSDK_DEPRECATED(msg) __attribute__((__deprecated__(msg)))
#elif defined(_MSC_VER)
#define FSDK_DEPRECATED(msg) __declspec(deprecated(msg))
#else
#define FSDK_DEPRECATED(msg)
#endif
#if defined(WIN32) || defined(_WIN32)
#if defined (SDK_DLL_EXPORTS)
#define FSDK_API __declspec(dllexport) //!< DLL export specifier.
#else
#define FSDK_API __declspec(dllimport) //!< DLL import specifier.
#endif
#else
#if __GNUC__ >= 4
#define FSDK_API __attribute__ ((visibility ("default")))
#else
#define FSDK_API //!< Dummy.
#endif
#endif
#if __APPLE__
#include <TargetConditionals.h>
#if TARGET_CPU_ARM || TARGET_CPU_ARM64
#define IOS
#endif
#endif // __APPLE__
/** @addtogroup CoreGroup
* @{
*/
// Aling value up to align so that value % align == 0.
#define ALIGN_UP(value, align) \
(((value) & (align-1)) ? \
(((value) + (align-1)) & ~(align-1)) : \
(value))
#if defined(_MSC_VER)
#define ALIGNED(x) __declspec(align(x))
#define RESTRICT __restrict
#define FORCE_INLINE __forceinline
#else
#define ALIGNED(x) __attribute__ ((aligned(x)))
#define RESTRICT __restrict__
#define FORCE_INLINE inline __attribute__ ((always_inline))
#endif
//! Smart ptr declaration helper macro
#define DECLARE_SMARTPTR(X) struct X; using X##Ptr = fsdk::Ref<X>
//! Stringification helper macro.
#define STRINGIFY2(x) #x
//! Stringifies it's argument.
#define STRINGIFY(x) STRINGIFY2(x)
/** @} */ // end of CoreGroup