aboutsummaryrefslogtreecommitdiff
path: root/thirdparty/Oodle/include/oodle2base.h
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/Oodle/include/oodle2base.h')
-rw-r--r--thirdparty/Oodle/include/oodle2base.h167
1 files changed, 167 insertions, 0 deletions
diff --git a/thirdparty/Oodle/include/oodle2base.h b/thirdparty/Oodle/include/oodle2base.h
new file mode 100644
index 000000000..05f73f3ea
--- /dev/null
+++ b/thirdparty/Oodle/include/oodle2base.h
@@ -0,0 +1,167 @@
+
+//===================================================
+// Oodle2 Base header
+// (C) Copyright 1994-2021 Epic Games Tools LLC
+//===================================================
+
+#ifndef __OODLE2BASE_H_INCLUDED__
+#define __OODLE2BASE_H_INCLUDED__
+
+#ifndef OODLE2BASE_PUBLIC_HEADER
+#define OODLE2BASE_PUBLIC_HEADER 1
+#endif
+
+#ifdef _MSC_VER
+#pragma pack(push, Oodle, 8)
+
+#pragma warning(push)
+#pragma warning(disable : 4127) // conditional is constant
+#endif
+
+#ifndef OODLE_BASE_TYPES_H
+#define OODLE_BASE_TYPES_H
+
+#include <stdint.h>
+
+#define OOCOPYRIGHT "Copyright (C) 1994-2021, Epic Games Tools LLC"
+
+// Typedefs
+typedef int8_t OO_S8;
+typedef uint8_t OO_U8;
+typedef int16_t OO_S16;
+typedef uint16_t OO_U16;
+typedef int32_t OO_S32;
+typedef uint32_t OO_U32;
+typedef int64_t OO_S64;
+typedef uint64_t OO_U64;
+typedef float OO_F32;
+typedef double OO_F64;
+typedef intptr_t OO_SINTa;
+typedef uintptr_t OO_UINTa;
+typedef int32_t OO_BOOL;
+
+// Struct packing handling and inlining
+#if defined(__GNUC__) || defined(__clang__)
+ #define OOSTRUCT struct __attribute__((__packed__))
+ #define OOINLINEFUNC inline
+#elif defined(_MSC_VER)
+ // on VC++, we use pragmas for the struct packing
+ #define OOSTRUCT struct
+ #define OOINLINEFUNC __inline
+#endif
+
+// Linkage stuff
+#if defined(_WIN32)
+ #define OOLINK __stdcall
+ #define OOEXPLINK __stdcall
+#else
+ #define OOLINK
+ #define OOEXPLINK
+#endif
+
+// C++ name demangaling
+#ifdef __cplusplus
+ #define OODEFFUNC extern "C"
+ #define OODEFSTART extern "C" {
+ #define OODEFEND }
+ #define OODEFAULT( val ) =val
+#else
+ #define OODEFFUNC
+ #define OODEFSTART
+ #define OODEFEND
+ #define OODEFAULT( val )
+#endif
+
+// ========================================================
+// Exported function declarations
+#define OOEXPFUNC OODEFFUNC
+
+//===========================================================================
+// OO_STRING_JOIN joins strings in the preprocessor and works with LINESTRING
+#define OO_STRING_JOIN(arg1, arg2) OO_STRING_JOIN_DELAY(arg1, arg2)
+#define OO_STRING_JOIN_DELAY(arg1, arg2) OO_STRING_JOIN_IMMEDIATE(arg1, arg2)
+#define OO_STRING_JOIN_IMMEDIATE(arg1, arg2) arg1 ## arg2
+
+//===========================================================================
+// OO_NUMBERNAME is a macro to make a name unique, so that you can use it to declare
+// variable names and they won't conflict with each other
+// using __LINE__ is broken in MSVC with /ZI , but __COUNTER__ is an MSVC extension that works
+
+#ifdef _MSC_VER
+ #define OO_NUMBERNAME(name) OO_STRING_JOIN(name,__COUNTER__)
+#else
+ #define OO_NUMBERNAME(name) OO_STRING_JOIN(name,__LINE__)
+#endif
+
+//===================================================================
+// simple compiler assert
+// this happens at declaration time, so if it's inside a function in a C file, drop {} around it
+#ifndef OO_COMPILER_ASSERT
+ #if defined(__clang__)
+ #define OO_COMPILER_ASSERT_UNUSED __attribute__((unused)) // hides warnings when compiler_asserts are in a local scope
+ #else
+ #define OO_COMPILER_ASSERT_UNUSED
+ #endif
+
+ #define OO_COMPILER_ASSERT(exp) typedef char OO_NUMBERNAME(_dummy_array) [ (exp) ? 1 : -1 ] OO_COMPILER_ASSERT_UNUSED
+#endif
+
+
+#endif
+
+
+
+// Oodle2 base header
+
+#ifndef OODLE2_PUBLIC_CORE_DEFINES
+#define OODLE2_PUBLIC_CORE_DEFINES 1
+
+#define OOFUNC1 OOEXPFUNC
+#define OOFUNC2 OOEXPLINK
+#define OOFUNCSTART
+#define OODLE_CALLBACK OOLINK
+
+// Check build flags
+ #if defined(OODLE_BUILDING_LIB) || defined(OODLE_BUILDING_DLL)
+ #error Should not see OODLE_BUILDING set for users of oodle.h
+ #endif
+
+#ifndef NULL
+#define NULL (0)
+#endif
+
+// OODLE_MALLOC_MINIMUM_ALIGNMENT is 8 in 32-bit, 16 in 64-bit
+#define OODLE_MALLOC_MINIMUM_ALIGNMENT ((OO_SINTa)(2*sizeof(void *)))
+
+typedef void (OODLE_CALLBACK t_OodleFPVoidVoid)(void);
+/* void-void callback func pointer
+ takes void, returns void
+*/
+
+typedef void (OODLE_CALLBACK t_OodleFPVoidVoidStar)(void *);
+/* void-void-star callback func pointer
+ takes void pointer, returns void
+*/
+
+#define OODLE_JOB_MAX_DEPENDENCIES (4) /* Maximum number of dependencies Oodle will ever pass to a RunJob callback
+*/
+
+#define OODLE_JOB_NULL_HANDLE (0) /* Value 0 of Jobify handles is reserved to mean none
+* Wait(OODLE_JOB_NULL_HANDLE) is a nop
+* if RunJob returns OODLE_JOB_NULL_HANDLE it means the job
+* was run synchronously and no wait is required
+*/
+
+#define t_fp_Oodle_Job t_OodleFPVoidVoidStar /* Job function pointer for Plugin Jobify system
+
+ takes void pointer returns void
+*/
+
+#endif // OODLE2_PUBLIC_CORE_DEFINES
+
+#ifdef _MSC_VER
+#pragma warning(pop)
+#pragma pack(pop, Oodle)
+#endif
+
+#endif // __OODLE2BASE_H_INCLUDED__