21#ifndef __XN_PLATFORM_H__
22#define __XN_PLATFORM_H__
27#define XN_PLATFORM_WIN32 1
28#define XN_PLATFORM_XBOX360 2
29#define XN_PLATFORM_PS3 3
30#define XN_PLATFORM_WII 4
31#define XN_PLATFORM_LINUX_X86 5
32#define XN_PLATFORM_FILES_ONLY 6
33#define XN_PLATFORM_ARC 6
34#define XN_PLATFORM_LINUX_ARM 7
35#define XN_PLATFORM_MACOSX 8
36#define XN_PLATFORM_ANDROID_ARM 9
38#define XN_PLATFORM_IS_LITTLE_ENDIAN 1
39#define XN_PLATFORM_IS_BIG_ENDIAN 2
41#define XN_PLATFORM_USE_NO_VAARGS 1
42#define XN_PLATFORM_USE_WIN32_VAARGS_STYLE 2
43#define XN_PLATFORM_USE_GCC_VAARGS_STYLE 3
44#define XN_PLATFORM_USE_ARC_VAARGS_STYLE 4
48#pragma message("=== OpenNI Platform Detection ===")
50 #pragma message("__linux__ is defined")
52 #pragma message("linux is defined")
54 #pragma message("Neither __linux__ nor linux is defined")
58 #pragma message("__i386__ is defined")
61#if defined(__x86_64__)
62 #pragma message("__x86_64__ is defined")
66 #pragma message("__arm__ is defined")
69#if defined(__aarch64__)
70 #pragma message("__aarch64__ is defined")
74 #pragma message("__riscv is defined")
77#if defined(__riscv_xlen)
78 #pragma message("__riscv_xlen is defined")
81#pragma message("================================")
92 #error Xiron Platform Abstraction Layer - Win32 - Microsoft Visual Studio versions below 2003 (7.0) are not supported!
96 #error Xiron Platform Abstraction Layer - Win32 - Microsoft Visual Studio versions above 2010 (10.0) are not supported!
100 #include "Win32/XnPlatformWin32.h"
101#elif defined(ANDROID) && defined(__arm__)
102 #include "Android-Arm/XnPlatformAndroid-Arm.h"
103#elif (__linux__ && (__i386__ || __x86_64__))
104 #include "Linux-x86/XnPlatformLinux-x86.h"
105#elif (__linux__ && (__arm__ || __aarch64__))
106 #include "Linux-Arm/XnPlatformLinux-Arm.h"
107#elif (__linux__ && (defined(__riscv) || defined(__riscv_xlen)))
108 #include "Linux-Arm/XnPlatformLinux-Arm.h"
110 #include "ARC/XnPlatformARC.h"
112 #include "MacOSX/XnPlatformMacOSX.h"
114 #if defined __INTEL_COMPILER
115 #include "Linux/XnPlatformLinux.h"
117 #error OpenNI Platform Abstraction Layer - Unsupported Platform!
133#define XN_MIN(a,b) (((a) < (b)) ? (a) : (b))
135#define XN_MAX(a,b) (((a) > (b)) ? (a) : (b))
139#define XN_COMPILER_ASSERT(x) typedef int compileAssert[x ? 1 : -1]
141struct XnRegistrationHandleImpl;
149 #define XN_C_API_EXPORT extern "C" XN_API_EXPORT
150 #define XN_C_API_IMPORT extern "C" XN_API_IMPORT
151 #define XN_CPP_API_EXPORT XN_API_EXPORT
152 #define XN_CPP_API_IMPORT XN_API_IMPORT
154 #define XN_C_API_EXPORT XN_API_EXPORT
155 #define XN_C_API_IMPORT XN_API_IMPORT
159 #define XN_C_API XN_C_API_EXPORT
160 #define XN_CPP_API XN_CPP_API_EXPORT
162 #define XN_C_API XN_C_API_IMPORT
163 #define XN_CPP_API XN_CPP_API_IMPORT