summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/MinKD.c317
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/Qt3DS_extwindowprops.h65
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/Qt3DS_multitouch.h84
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/kd.h991
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/kdplatform.h99
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/Qt3DS_extwindowprops.h65
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/Qt3DS_multitouch.h84
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/kd.h991
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/kdplatform.h99
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/MinKD.c328
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/Qt3DS_extwindowprops.h65
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/Qt3DS_multitouch.h84
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/kd.h991
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/kdplatform.h99
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/Qt3DS_extwindowprops.h65
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/Qt3DS_multitouch.h84
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/kd.h991
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/kdplatform.h101
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/MinKD.c326
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/Qt3DS_extwindowprops.h65
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/Qt3DS_multitouch.h84
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/kd.h991
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/kdplatform.h100
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/Qt3DS_extwindowprops.h65
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/Qt3DS_multitouch.h84
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/kd.h991
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/kdplatform.h99
-rw-r--r--src/3rdparty/RuntimePlatformSpecific/Windows/Qt3DSLibs/KD/MinKD.c330
-rw-r--r--src/Runtime/Qt3DSRuntimeStatic.pro10
-rw-r--r--src/Runtime/Source/Engine/Include/Qt3DSTegraApplication.h10
-rw-r--r--src/Runtime/Source/Engine/Include/Qt3DSTegraInputEngine.h3
-rw-r--r--src/Runtime/Source/Engine/Source/Qt3DSOSSpecificFunctions.cpp156
-rw-r--r--src/Runtime/Source/Engine/Source/Qt3DSRenderRuntimeBindingImplRenderer.cpp10
-rw-r--r--src/Runtime/Source/Engine/Source/Qt3DSTegraApplication.cpp68
-rw-r--r--src/Runtime/Source/Engine/Source/Qt3DSTegraInputEngine.cpp71
-rw-r--r--src/Runtime/Source/PlatformSpecific/Android/jni/Qt3DSLibs/Android.mk11
-rw-r--r--src/Runtime/Source/Runtime/Include/RuntimePrefix.h1
-rw-r--r--src/Runtime/Source/System/Include/Qt3DSSyncPrimitive.h122
-rw-r--r--src/Runtime/Source/System/Include/Qt3DSThreadManager.h129
-rw-r--r--src/Runtime/Source/System/Include/Qt3DSThreadSafeQueue.h85
-rw-r--r--src/Runtime/Source/System/Include/Qt3DSThreadSafeQueue.inl89
-rw-r--r--src/Runtime/Source/System/Include/Qt3DSThreadSafeScratchpad.h98
-rw-r--r--src/Runtime/Source/System/Include/Qt3DSThreadSafeScratchpad.inl161
-rw-r--r--src/Runtime/Source/System/Source/Qt3DSFileStream.cpp6
-rw-r--r--src/Runtime/Source/System/Source/Qt3DSSyncPrimitive.cpp83
-rw-r--r--src/Runtime/Source/System/Source/Qt3DSThreadManager.cpp188
-rw-r--r--src/Runtime/Source/Viewer/PerfLog/TCPPerfLogClientStub.h1
-rw-r--r--src/Runtime/Source/Viewer/Qt3DSViewerApp.cpp50
-rw-r--r--src/commonplatform.pri2
49 files changed, 86 insertions, 10006 deletions
diff --git a/src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/MinKD.c b/src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/MinKD.c
deleted file mode 100644
index a96752bf..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/MinKD.c
+++ /dev/null
@@ -1,317 +0,0 @@
-#include "kd.h"
-#include <stdio.h>
-#include <math.h>
-#include <string.h>
-#include <memory.h>
-#include <pthread.h>
-#include <dirent.h>
-
-
-KDFile* kdFopen(const KDchar* pathname, const KDchar* mode)
-{
- FILE* retval;
- retval = fopen( pathname, mode );
- return (KDFile*)retval;
-}
-
-
-KDsize kdFread(void *buffer, KDsize size, KDsize count, KDFile *file)
-{
- return fread( buffer, size, count, (FILE*)file );
-}
-
-/* kdFwrite: Write to a file. */
-KDsize kdFwrite(const void *buffer, KDsize size, KDsize count, KDFile *file)
-{
- return fwrite( buffer, size, count, (FILE*)file );
-}
-
-KDint kdFclose(KDFile *file)
-{
- return fclose( (FILE*)file );
-}
-
-/* kdCosf: Cosine function. */
-KDfloat32 kdCosf(KDfloat32 x) { return cosf( x ); }
-
-/* kdSinf: Sine function. */
-KDfloat32 kdSinf(KDfloat32 x) { return sinf( x ); }
-
-KDfloat32 kdSqrtf(KDfloat32 x ) { return sqrtf( x ); }
-
-KDfloat32 kdTanf( KDfloat32 x ) { return tanf( x ); }
-
-KDint kdAbs(KDint i)
-{
- return i < 0 ? -i : i;
-}
-
-
-KDfloat32 kdFabsf(KDfloat32 i) { return fabs( i ); }
-
-/* kdStrcpy_s: Copy a string with an overrun check. */
-
-KDint kdStrcpy_s(KDchar* buf, KDsize buflen, const KDchar* src)
-{
- return kdStrncpy_s(buf, buflen, src, -1);
-}
-
-/* kdStrncpy_s: Copy a string with an overrun check. */
-KDint kdStrncpy_s(KDchar* buf, KDsize buflen, const KDchar* src, KDsize srclen)
-{
- if ( srclen == (KDsize)-1)
- srclen = buflen;
- const char* term = memchr(src, 0, srclen);
- if (term)
- srclen = term - src;
- if (srclen >= buflen) {
- if (buflen)
- *buf = 0;
- return KD_EINVAL;
- }
- memcpy(buf, src, srclen);
- buf[srclen] = 0;
- return 0;
-}
-
-/* kdStrncat_s: Concatenate two strings. */
-KDint kdStrncat_s(KDchar* buf, KDsize buflen, const KDchar* src, KDsize srcmaxlen)
-{
- size_t origlen = strlen(buf);
- const char* p = memchr(src, 0, srcmaxlen);
- if (p)
- srcmaxlen = p - src;
- if (origlen + srcmaxlen >= buflen)
- {
- /* spec says "buf[0] is set to 0". But that's bad if buflen == 0!
- * kdStrncpy_s's spec is better here. */
- if (buflen)
- buf[0] = 0;
- return KD_ERANGE;
- }
- memcpy(buf + origlen, src, srcmaxlen);
- buf[origlen + srcmaxlen] = 0;
- return 0;
-}
-/* kdMemset: Set bytes in memory to a value. */
-void* kdMemset(void *buf, KDint byte, KDsize len) { return memset( buf, byte, len ); }
-
-/* kdStrcmp: Compares two strings. */
-KDint kdStrcmp(const KDchar *str1, const KDchar *str2) { return strcmp( str1, str2); }
-
-/* kdStrlen: Determine the length of a string. */
-KDsize kdStrlen(const KDchar *str) { return strlen( str ); }
-
-void* kdMalloc( KDsize size ) { return malloc(size); }
-
-void kdFree( void* ptr ) { free( ptr ); }
-
-void* kdMemcpy(void *buf, const void *src, KDsize len) { return memcpy( buf, src, len ); }
-
-struct KDThreadMutex
-{
- pthread_mutex_t p_mutex;
-};
-
-/* kdThreadMutexCreate: Create a mutex. */
-KD_API KDThreadMutex* kdThreadMutexCreate(const void *mutexattr)
-{
- KDThreadMutex* mutex = malloc(sizeof(KDThreadMutex));
- if (mutex)
- {
- if (pthread_mutex_init(&mutex->p_mutex, NULL) == 0)
- {
- return mutex;
- }
- free(mutex);
- }
-
- return KD_NULL;
-}
-
-/* kdThreadMutexFree: Free a mutex. */
-KDint kdThreadMutexFree(KDThreadMutex *mutex)
-{
- int res;
- res = pthread_mutex_destroy(&mutex->p_mutex);
- // If the mutex destroy failed, don't free the memory.
- // Per OpenKODE spec, this is undefined behaviour, and
- // we can leak the memory. The reason for this is that
- // later allocations may fail if they happen to go
- // to the same memory
- if (!res)
- free(mutex);
- return 0;
-}
-
-/* kdThreadMutexLock: Lock a mutex. */
-KDint kdThreadMutexLock(KDThreadMutex *mutex)
-{
- (void)pthread_mutex_lock(&mutex->p_mutex);
- return 0;
-}
-
-/* kdThreadMutexUnlock: Unlock a mutex. */
-KDint kdThreadMutexUnlock(KDThreadMutex *mutex)
-{
- pthread_mutex_unlock(&mutex->p_mutex);
- return 0;
-}
-
-struct KDThreadAttr
-{
- pthread_attr_t p_attr;
-};
-
-struct KDThread
-{
- pthread_t Handle;
- uint8_t Detached;
- uint8_t IsRunning;
- uint8_t UserThread;
- void* (*UserThreadProc)(void*);
- void* UserArg;
-};
-/* kdThreadCreate: Create a new thread. */
-KDThread * kdThreadCreate(const KDThreadAttr *attr, void *(*start_routine)(void *), void *arg)
-{
- pthread_t thread;
- int retval;
- const pthread_attr_t* p_attr;
- if ( attr )
- p_attr = &attr->p_attr;
- else
- p_attr = KD_NULL;
-
- retval = pthread_create( &thread, p_attr, start_routine, arg );
- if ( retval != 0 )
- {
- return KD_NULL;
- }
- KDThread* newThread = (KDThread*)malloc( sizeof( KDThread ) );
- if ( newThread == KD_NULL ) return KD_NULL;
- newThread->Handle = thread;
- newThread->Detached = 0;
- newThread->IsRunning = 1;
- newThread->UserThread = 1;
- newThread->UserThreadProc = start_routine;
- newThread->UserArg = arg;
- return newThread;
-}
-
-/* kdThreadExit: Terminate this thread. */
-void kdThreadExit(void *retval)
-{
- pthread_exit( retval );
-}
-
-/* kdThreadJoin: Wait for termination of another thread. */
-KDint kdThreadJoin(KDThread *thread, void **retval)
-{
- int join_retval;
- join_retval = pthread_join( thread->Handle, retval );
- if ( join_retval == 0 ) free( thread );
- return join_retval;
-}
-
-typedef struct KDDirInternal {
- DIR *dir;
- KDDirent ent;
-} KDDirInternal;
-
-/* kdOpenDir: Open a directory ready for listing. */
-KDDir *kdOpenDir(const KDchar *pathname)
-{
- DIR* dir = opendir( pathname );
- if ( dir == KD_NULL ) return KD_NULL;
- KDDirInternal* retval = (KDDirInternal*)malloc( sizeof( KDDirInternal ));
- if ( retval == KD_NULL ) return KD_NULL;
- memset( retval, 0, sizeof( *retval ) );
- retval->dir = dir;
- return (KDDir*)retval;
-}
-
-/* kdReadDir: Return the next file in a directory. */
-KDDirent* kdReadDir(KDDir *dir)
-{
- struct dirent *sysDirEnt;
- KDDirent *dirent = NULL;
-
- sysDirEnt = readdir(((KDDirInternal *)dir)->dir);
-
- if (sysDirEnt) {
- dirent = &((KDDirInternal *)dir)->ent;
- dirent->d_name = sysDirEnt->d_name;
- }
- return dirent;
-}
-
-/* kdCloseDir: Close a directory. */
-KDint kdCloseDir(KDDir *dir)
-{
- closedir(((KDDirInternal *)dir)->dir);
- free(dir);
- return 0;
-}
-
-KDint kdSetWindowPropertyiv(KDWindow * win, KDint prop, const KDint32 * val)
-{
- return 0;
-}
-
-void kdDefaultEvent(const KDEvent *event )
-{
-
-}
-
-typedef long long NvS64;
-
-KDust kdGetTimeUST(void)
-{
- struct timespec tp;
- clock_gettime(CLOCK_MONOTONIC, &tp);
-
- return (NvS64)tp.tv_sec * (NvS64)1000000000 +
- (NvS64)tp.tv_nsec;
-}
-
-static KDTm* gmlocaltime(
- const KDtime *timep,
- KDTm *result,
- struct tm* (* func)(const time_t* timep, struct tm* result))
-{
- struct tm tm;
- time_t t = *timep;
- (*func)(&t, &tm);
- result->tm_sec = tm.tm_sec;
- result->tm_min = tm.tm_min;
- result->tm_hour = tm.tm_hour;
- result->tm_mday = tm.tm_mday;
- result->tm_mon = tm.tm_mon;
- result->tm_year = tm.tm_year;
- result->tm_wday = tm.tm_wday;
- result->tm_yday = tm.tm_yday;
- return result;
-}
-
-/* kdGmtime_r, kdLocaltime_r: Convert a seconds-since-epoch time into broken-down time. */
-KDTm* kdGmtime_r(const KDtime* timep, KDTm* result)
-{
- return gmlocaltime(timep, result, &gmtime_r);
-}
-
-KDTm* kdLocaltime_r(const KDtime* timep, KDTm* result)
-{
- return gmlocaltime(timep, result, &localtime_r);
-}
-
-//===========================================================================
-// kdCreateEvent: Create an event for posting.
-//===========================================================================
-KDEvent* kdCreateEvent(void)
-{
- //Memory leak and there isn't much I am going to do about this now
- KDEvent* newEvent = (KDEvent*)malloc( sizeof( KDEvent ));
- memset( newEvent, 0, sizeof( KDEvent ));
- return newEvent;
-}
diff --git a/src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/Qt3DS_extwindowprops.h b/src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/Qt3DS_extwindowprops.h
deleted file mode 100644
index 4428a568..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/Qt3DS_extwindowprops.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef __kd_QT3DS_extwindowprops_h_
-#define __kd_QT3DS_extwindowprops_h_
-#include <KD/kd.h>
-#include <EGL/eglext.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* KD_WINDOWPROPERTY_FULLSCREEN: Control over resizing a window to fill the complete screen */
-
-// KDboolean - set the window to fullscreen mode
-#define KD_WINDOWPROPERTY_FULLSCREEN_QT3DS 9999
-
-// KDint - set which KD_DISPLAY_* display that the window should be opened on
-#define KD_WINDOWPROPERTY_DISPLAY_QT3DS 9998
-
-// KDboolean - sets whether overlay should be used to create window
-#define KD_WINDOWPROPERTY_OVERLAY_QT3DS 9997
-
-#define KD_DISPLAY_PRIMARY_QT3DS 0
-#define KD_DISPLAY_INTERNAL0_QT3DS 0
-#define KD_DISPLAY_INTERNAL1_QT3DS 1
-#define KD_DISPLAY_INTERNAL2_QT3DS 2
-#define KD_DISPLAY_INTERNAL3_QT3DS 3
-#define KD_DISPLAY_EXTERNAL0_QT3DS 1000
-#define KD_DISPLAY_EXTERNAL1_QT3DS 1001
-#define KD_DISPLAY_EXTERNAL2_QT3DS 1002
-#define KD_DISPLAY_EXTERNAL3_QT3DS 1003
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_QT3DS_extwindowprops_h_ */
diff --git a/src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/Qt3DS_multitouch.h b/src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/Qt3DS_multitouch.h
deleted file mode 100644
index e230b029..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/Qt3DS_multitouch.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef __kd_QT3DS_multitouch_h_
-#define __kd_QT3DS_multitouch_h_
-#include <KD/kd.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* KD_IOGROUP_MULTITOUCH: I/O group for Multitouch input devices. */
-#define KD_IOGROUP_MULTITOUCH_QT3DS 0x40004000
-#define KD_STATE_MULTITOUCH_AVAILABILITY_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 0)
-#define KD_INPUT_MULTITOUCH_FINGERS_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 1)
-#define KD_INPUT_MULTITOUCH_WIDTH_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 2)
-#define KD_INPUT_MULTITOUCH_X_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 3)
-#define KD_INPUT_MULTITOUCH_Y_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 4)
-#define KD_INPUT_MULTITOUCH_X2_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 5)
-#define KD_INPUT_MULTITOUCH_Y2_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 6)
-#define KD_INPUT_MULTITOUCH_PRESSURE_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 7)
-#define KD_INPUT_MULTITOUCH_GESTURES_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 8)
-#define KD_INPUT_MULTITOUCH_RELX_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 9)
-#define KD_INPUT_MULTITOUCH_RELY_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 10)
-
-/* KD_EVENT_INPUT_MULTITOUCH_QT3DS: Multitouch event. */
-#define KD_EVENT_INPUT_MULTITOUCH_QT3DS 1001
-typedef struct KDEventInputMultitouchDataNV
-{
- KDint32 index;
- KDint8 fingers;
- KDint8 width;
- KDint16 x;
- KDint16 y;
- KDint16 x2;
- KDint16 y2;
- KDint16 pressure;
-} KDEventInputMultitouchDataNV;
-
-/* KD_EVENT_INPUT_MULTITOUCH_GESTURE_QT3DS: Multitouch gesture event. */
-#define KD_EVENT_INPUT_MULTITOUCH_GESTURE_QT3DS 1002
-
-/* kdGetEventInputMultitouchDataNV: Get auxiliary event data for multitouch input. */
-KD_API KDint KD_APIENTRY kdGetEventInputMultitouchDataNV(const KDEvent *event,
- KDEventInputMultitouchDataNV *data);
-
-/* kdSetEventInputMultitouchActiveNV: Activate Multitouch input events */
-KD_API KDint KD_APIENTRY kdSetEventInputMultitouchActiveNV(KDboolean activate);
-
-/* kdEnableEventInputMultitouchMergeNV: Activate merging of Multitouch input events */
-KD_API void KD_APIENTRY kdEnableEventInputMultitouchMergeNV(KDboolean enable);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_QT3DS_multitouch_h_ */
diff --git a/src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/kd.h b/src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/kd.h
deleted file mode 100644
index f7ccea03..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/kd.h
+++ /dev/null
@@ -1,991 +0,0 @@
-/* Reference KD/kd.h for OpenKODE Core 1.0.3 */
-#ifndef __kd_h_
-#define __kd_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "kdplatform.h"
-
-
-
-/*******************************************************
- * Introduction
- *******************************************************/
-
-/*******************************************************
- * OpenKODE conformance
- *******************************************************/
-
-/*******************************************************
- * Overview
- *******************************************************/
-
-/*******************************************************
- * Programming environment
- *******************************************************/
-#define KD_VERSION_1_0 1
-typedef char KDchar;
-typedef signed char KDint8;
-typedef unsigned char KDuint8;
-typedef int KDint;
-typedef unsigned int KDuint;
-typedef float KDfloat32;
-typedef KDint KDboolean;
-typedef KDint64 KDtime;
-typedef KDint64 KDust;
-typedef KDint64 KDoff;
-typedef KDuint32 KDmode;
-#define KDINT32_MIN (-0x7fffffff-1)
-#define KDINT32_MAX 0x7fffffff
-#define KDUINT32_MAX 0xffffffffU
-#define KD_TRUE 1
-#define KD_FALSE 0
-#ifdef __cplusplus
- const int KD_NULL = 0; /* Yes, int. See Stroustrup 3rd edition. */
-#else
- #define KD_NULL ((void *)0)
-#endif
-
-/*******************************************************
- * Errors
- *******************************************************/
-#define KD_EACCES 1
-#define KD_EADDRINUSE 2
-#define KD_EADDRNOTAVAIL 3
-#define KD_EAFNOSUPPORT 4
-#define KD_EAGAIN (5)
-#define KD_EALREADY 6
-#define KD_EBADF 7
-#define KD_EBUSY 8
-#define KD_ECONNREFUSED 9
-#define KD_ECONNRESET 10
-#define KD_EDEADLK 11
-#define KD_EDESTADDRREQ 12
-#define KD_EEXIST 13
-#define KD_EFBIG 14
-#define KD_EHOSTUNREACH 15
-#define KD_EHOST_NOT_FOUND 16
-#define KD_EINVAL 17
-#define KD_EIO 18
-#define KD_EILSEQ 19
-#define KD_EISCONN 20
-#define KD_EISDIR 21
-#define KD_EMFILE 22
-#define KD_ENAMETOOLONG 23
-#define KD_ENOENT 24
-#define KD_ENOMEM 25
-#define KD_ENOSPC 26
-#define KD_ENOSYS 27
-#define KD_ENOTCONN 28
-#define KD_ENO_DATA 29
-#define KD_ENO_RECOVERY 30
-#define KD_EOPNOTSUPP 31
-#define KD_EOVERFLOW 32
-#define KD_EPERM 33
-#define KD_ERANGE 35
-#define KD_ETIMEDOUT (36)
-#define KD_ETRY_AGAIN 37
-
-/* kdGetError: Get last error indication. */
-KD_API KDint KD_APIENTRY kdGetError(void);
-
-/* kdSetError: Set last error indication. */
-KD_API void KD_APIENTRY kdSetError(KDint error);
-
-/*******************************************************
- * Versioning and attribute queries
- *******************************************************/
-
-/* kdQueryAttribi: Obtain the value of a numeric OpenKODE Core attribute. */
-KD_API KDint KD_APIENTRY kdQueryAttribi(KDint attribute, KDint *value);
-
-/* kdQueryAttribcv: Obtain the value of a string OpenKODE Core attribute. */
-KD_API const KDchar *KD_APIENTRY kdQueryAttribcv(KDint attribute);
-#define KD_ATTRIB_VENDOR 39
-#define KD_ATTRIB_VERSION 40
-#define KD_ATTRIB_PLATFORM 41
-
-/* kdQueryIndexedAttribcv: Obtain the value of an indexed string OpenKODE Core attribute. */
-KD_API const KDchar *KD_APIENTRY kdQueryIndexedAttribcv(KDint attribute, KDint index);
-
-/*******************************************************
- * Threads and synchronization
- *******************************************************/
-
-/* kdThreadAttrCreate: Create a thread attribute object. */
-typedef struct KDThreadAttr KDThreadAttr;
-KD_API KDThreadAttr *KD_APIENTRY kdThreadAttrCreate(void);
-
-/* kdThreadAttrFree: Free a thread attribute object. */
-KD_API KDint KD_APIENTRY kdThreadAttrFree(KDThreadAttr *attr);
-
-/* kdThreadAttrSetDetachState: Set detachstate attribute. */
-#define KD_THREAD_CREATE_JOINABLE 0
-#define KD_THREAD_CREATE_DETACHED 1
-KD_API KDint KD_APIENTRY kdThreadAttrSetDetachState(KDThreadAttr *attr, KDint detachstate);
-
-/* kdThreadAttrSetStackSize: Set stacksize attribute. */
-KD_API KDint KD_APIENTRY kdThreadAttrSetStackSize(KDThreadAttr *attr, KDsize stacksize);
-
-/* kdThreadCreate: Create a new thread. */
-typedef struct KDThread KDThread;
-KD_API KDThread *KD_APIENTRY kdThreadCreate(const KDThreadAttr *attr, void *(*start_routine)(void *), void *arg);
-
-/* kdThreadExit: Terminate this thread. */
-KD_API KD_NORETURN void KD_APIENTRY kdThreadExit(void *retval);
-
-/* kdThreadJoin: Wait for termination of another thread. */
-KD_API KDint KD_APIENTRY kdThreadJoin(KDThread *thread, void **retval);
-
-/* kdThreadDetach: Allow resources to be freed as soon as a thread terminates. */
-KD_API KDint KD_APIENTRY kdThreadDetach(KDThread *thread);
-
-/* kdThreadSelf: Return calling thread&#8217;s ID. */
-KD_API KDThread *KD_APIENTRY kdThreadSelf(void);
-
-/* kdThreadOnce: Wrap initialization code so it is executed only once. */
-#ifndef KD_NO_STATIC_DATA
-typedef struct KDThreadOnce {
- void *impl;
-} KDThreadOnce;
-#define KD_THREAD_ONCE_INIT { 0 }
-KD_API KDint KD_APIENTRY kdThreadOnce(KDThreadOnce *once_control, void (*init_routine)(void));
-#endif /* ndef KD_NO_STATIC_DATA */
-
-/* kdThreadMutexCreate: Create a mutex. */
-typedef struct KDThreadMutex KDThreadMutex;
-KD_API KDThreadMutex *KD_APIENTRY kdThreadMutexCreate(const void *mutexattr);
-
-/* kdThreadMutexFree: Free a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexFree(KDThreadMutex *mutex);
-
-/* kdThreadMutexLock: Lock a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexLock(KDThreadMutex *mutex);
-
-/* kdThreadMutexUnlock: Unlock a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexUnlock(KDThreadMutex *mutex);
-
-/* kdThreadCondCreate: Create a condition variable. */
-typedef struct KDThreadCond KDThreadCond;
-KD_API KDThreadCond *KD_APIENTRY kdThreadCondCreate(const void *attr);
-
-/* kdThreadCondFree: Free a condition variable. */
-KD_API KDint KD_APIENTRY kdThreadCondFree(KDThreadCond *cond);
-
-/* kdThreadCondSignal, kdThreadCondBroadcast: Signal a condition variable. */
-KD_API KDint KD_APIENTRY kdThreadCondSignal(KDThreadCond *cond);
-KD_API KDint KD_APIENTRY kdThreadCondBroadcast(KDThreadCond *cond);
-
-/* kdThreadCondWait: Wait for a condition variable to be signalled. */
-KD_API KDint KD_APIENTRY kdThreadCondWait(KDThreadCond *cond, KDThreadMutex *mutex);
-
-/* kdThreadSemCreate: Create a semaphore. */
-typedef struct KDThreadSem KDThreadSem;
-KD_API KDThreadSem *KD_APIENTRY kdThreadSemCreate(KDuint value);
-
-/* kdThreadSemFree: Free a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemFree(KDThreadSem *sem);
-
-/* kdThreadSemWait: Lock a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemWait(KDThreadSem *sem);
-
-/* kdThreadSemPost: Unlock a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemPost(KDThreadSem *sem);
-
-/*******************************************************
- * Events
- *******************************************************/
-
-/* KDEvent: Struct type containing an event. */
-typedef struct KDEvent KDEvent;
-#define KD_EVENT_USER 0x40000000
-
-/* kdWaitEvent: Get next event from thread&#8217;s event queue. */
-KD_API const KDEvent *KD_APIENTRY kdWaitEvent(KDust timeout);
-
-/* kdSetEventUserptr: Set the userptr for global events. */
-KD_API void KD_APIENTRY kdSetEventUserptr(void *userptr);
-
-/* kdDefaultEvent: Perform default processing on an unrecognized event. */
-KD_API void KD_APIENTRY kdDefaultEvent(const KDEvent *event);
-
-/* kdPumpEvents: Pump the thread&#8217;s event queue, performing callbacks. */
-KD_API KDint KD_APIENTRY kdPumpEvents(void);
-
-/* kdInstallCallback: Install or remove a callback function for event processing. */
-typedef void (KD_APIENTRY KDCallbackFunc)(const KDEvent *event);
-KD_API KDint KD_APIENTRY kdInstallCallback(KDCallbackFunc *func, KDint eventtype, void *eventuserptr);
-
-/* kdCreateEvent: Create an event for posting. */
-KD_API KDEvent *KD_APIENTRY kdCreateEvent(void);
-
-/* kdPostEvent, kdPostThreadEvent: Post an event into a queue. */
-KD_API KDint KD_APIENTRY kdPostEvent(KDEvent *event);
-KD_API KDint KD_APIENTRY kdPostThreadEvent(KDEvent *event, KDThread *thread);
-typedef struct KDEventUser {
- union {
- KDint64 i64;
- void *p;
- struct {
- KDint32 a;
- KDint32 b;
- } i32pair;
- } value1;
- union {
- KDint64 i64;
- struct {
- union {
- KDint32 i32;
- void *p;
- } value2;
- union {
- KDint32 i32;
- void *p;
- } value3;
- } i32orp;
- } value23;
-} KDEventUser;
-
-/* kdFreeEvent: Abandon an event instead of posting it. */
-KD_API void KD_APIENTRY kdFreeEvent(KDEvent *event);
-
-/*******************************************************
- * System events
- *******************************************************/
-
-/* KD_EVENT_QUIT: Event to request to quit application. */
-#define KD_EVENT_QUIT 43
-
-/* KD_EVENT_PAUSE: Application pause event. */
-#define KD_EVENT_PAUSE 45
-
-/* KD_EVENT_RESUME: Application resume event. */
-#define KD_EVENT_RESUME 46
-
-/* KD_EVENT_ORIENTATION: Orientation change event. */
-#define KD_EVENT_ORIENTATION 48
-
-/* KD_IOGROUP_EVENT: I/O group for OpenKODE Core system events implemented as state values. */
-#define KD_IOGROUP_EVENT 0x100
-#define KD_STATE_EVENT_USING_BATTERY (KD_IOGROUP_EVENT + 0)
-#define KD_STATE_EVENT_LOW_BATTERY (KD_IOGROUP_EVENT + 1)
-
-
-/* KD_IOGROUP_ORIENTATION: I/O group for OpenKODE Core orientation state. */
-#define KD_IOGROUP_ORIENTATION 0x200
-#define KD_STATE_ORIENTATION_OVERALL (KD_IOGROUP_ORIENTATION + 0)
-#define KD_STATE_ORIENTATION_SCREEN (KD_IOGROUP_ORIENTATION + 1)
-#define KD_STATE_ORIENTATION_RENDERING (KD_IOGROUP_ORIENTATION + 2)
-#define KD_STATE_ORIENTATION_LOCKSURFACE (KD_IOGROUP_ORIENTATION + 3)
-
-
-/*******************************************************
- * Application startup and exit.
- *******************************************************/
-
-/* kdMain: The application-defined main function. */
-KDint KD_APIENTRY kdMain(KDint argc, const KDchar *const *argv);
-
-/* kdExit: Exit the application. */
-KD_API KD_NORETURN void KD_APIENTRY kdExit(KDint status);
-
-/*******************************************************
- * Utility library functions
- *******************************************************/
-
-/* kdAbs: Compute the absolute value of an integer. */
-KD_API KDint KD_APIENTRY kdAbs(KDint i);
-
-/* kdStrtof: Convert a string to a floating point number. */
-KD_API KDfloat32 KD_APIENTRY kdStrtof(const KDchar *s, KDchar **endptr);
-
-/* kdStrtol, kdStrtoul: Convert a string to an integer. */
-KD_API KDint KD_APIENTRY kdStrtol(const KDchar *s, KDchar **endptr, KDint base);
-KD_API KDuint KD_APIENTRY kdStrtoul(const KDchar *s, KDchar **endptr, KDint base);
-
-/* kdLtostr, kdUltostr: Convert an integer to a string. */
-#define KD_LTOSTR_MAXLEN ((sizeof(KDint)*8*3+6)/10+2)
-#define KD_ULTOSTR_MAXLEN ((sizeof(KDint)*8+2)/3+1)
-KD_API KDssize KD_APIENTRY kdLtostr(KDchar *buffer, KDsize buflen, KDint number);
-KD_API KDssize KD_APIENTRY kdUltostr(KDchar *buffer, KDsize buflen, KDuint number, KDint base);
-
-/* kdFtostr: Convert a float to a string. */
-#define KD_FTOSTR_MAXLEN 16
-KD_API KDssize KD_APIENTRY kdFtostr(KDchar *buffer, KDsize buflen, KDfloat32 number);
-
-/* kdCryptoRandom: Return random data. */
-KD_API KDint KD_APIENTRY kdCryptoRandom(KDuint8 *buf, KDsize buflen);
-
-/*******************************************************
- * Locale specific functions
- *******************************************************/
-
-/* kdGetLocale: Determine the current language and locale. */
-KD_API const KDchar *KD_APIENTRY kdGetLocale(void);
-
-/*******************************************************
- * Memory allocation
- *******************************************************/
-
-/* kdMalloc: Allocate memory. */
-KD_API void *KD_APIENTRY kdMalloc(KDsize size);
-
-/* kdFree: Free allocated memory block. */
-KD_API void KD_APIENTRY kdFree(void *ptr);
-
-/* kdRealloc: Resize memory block. */
-KD_API void *KD_APIENTRY kdRealloc(void *ptr, KDsize size);
-
-/*******************************************************
- * Thread-local storage.
- *******************************************************/
-
-/* kdGetTLS: Get the thread-local storage pointer. */
-KD_API void *KD_APIENTRY kdGetTLS(void);
-
-/* kdSetTLS: Set the thread-local storage pointer. */
-KD_API void KD_APIENTRY kdSetTLS(void *ptr);
-
-/*******************************************************
- * Mathematical functions
- *******************************************************/
-#define KD_E_F 2.71828175F
-#define KD_PI_F 3.14159274F
-#define KD_PI_2_F 1.57079637F
-#define KD_2PI_F 6.28318548F
-#define KD_LOG2E_F 1.44269502F
-#define KD_LOG10E_F 0.434294492F
-#define KD_LN2_F 0.693147182F
-#define KD_LN10_F 2.30258512F
-#define KD_PI_4_F 0.785398185F
-#define KD_1_PI_F 0.318309873F
-#define KD_2_PI_F 0.636619747F
-#define KD_2_SQRTPI_F 1.12837923F
-#define KD_SQRT2_F 1.41421354F
-#define KD_SQRT1_2_F 0.707106769F
-#define KD_FLT_EPSILON 1.19209290E-07F
-#define KD_FLT_MAX 3.40282346638528860e+38F
-#define KD_FLT_MIN 1.17549435e-38F
-/* KD_INFINITY is defined in kdplatform.h since no portable definition
- * is possible. */
-#define kdIsNan(x) (((x) != (x)) ? 1 : 0)
-#define KD_HUGE_VALF KD_INFINITY
-#define KD_DEG_TO_RAD_F 0.0174532924F
-#define KD_RAD_TO_DEG_F 57.2957802F
-
-/* kdAcosf: Arc cosine function. */
-KD_API KDfloat32 KD_APIENTRY kdAcosf(KDfloat32 x);
-
-/* kdAsinf: Arc sine function. */
-KD_API KDfloat32 KD_APIENTRY kdAsinf(KDfloat32 x);
-
-/* kdAtanf: Arc tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdAtanf(KDfloat32 x);
-
-/* kdAtan2f: Arc tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdAtan2f(KDfloat32 y, KDfloat32 x);
-
-/* kdCosf: Cosine function. */
-KD_API KDfloat32 KD_APIENTRY kdCosf(KDfloat32 x);
-
-/* kdSinf: Sine function. */
-KD_API KDfloat32 KD_APIENTRY kdSinf(KDfloat32 x);
-
-/* kdTanf: Tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdTanf(KDfloat32 x);
-
-/* kdExpf: Exponential function. */
-KD_API KDfloat32 KD_APIENTRY kdExpf(KDfloat32 x);
-
-/* kdLogf: Natural logarithm function. */
-KD_API KDfloat32 KD_APIENTRY kdLogf(KDfloat32 x);
-
-/* kdFabsf: Absolute value. */
-KD_API KDfloat32 KD_APIENTRY kdFabsf(KDfloat32 x);
-
-/* kdPowf: Power function. */
-KD_API KDfloat32 KD_APIENTRY kdPowf(KDfloat32 x, KDfloat32 y);
-
-/* kdSqrtf: Square root function. */
-KD_API KDfloat32 KD_APIENTRY kdSqrtf(KDfloat32 x);
-
-/* kdCeilf: Return ceiling value. */
-KD_API KDfloat32 KD_APIENTRY kdCeilf(KDfloat32 x);
-
-/* kdFloorf: Return floor value. */
-KD_API KDfloat32 KD_APIENTRY kdFloorf(KDfloat32 x);
-
-/* kdRoundf: Round value to nearest integer. */
-KD_API KDfloat32 KD_APIENTRY kdRoundf(KDfloat32 x);
-
-/* kdInvsqrtf: Inverse square root function. */
-KD_API KDfloat32 KD_APIENTRY kdInvsqrtf(KDfloat32 x);
-
-/* kdFmodf: Calculate floating point remainder. */
-KD_API KDfloat32 KD_APIENTRY kdFmodf(KDfloat32 x, KDfloat32 y);
-
-/*******************************************************
- * String and memory functions
- *******************************************************/
-
-/* kdMemchr: Scan memory for a byte value. */
-KD_API void *KD_APIENTRY kdMemchr(const void *src, KDint byte, KDsize len);
-
-/* kdMemcmp: Compare two memory regions. */
-KD_API KDint KD_APIENTRY kdMemcmp(const void *src1, const void *src2, KDsize len);
-
-/* kdMemcpy: Copy a memory region, no overlapping. */
-KD_API void *KD_APIENTRY kdMemcpy(void *buf, const void *src, KDsize len);
-
-/* kdMemmove: Copy a memory region, overlapping allowed. */
-KD_API void *KD_APIENTRY kdMemmove(void *buf, const void *src, KDsize len);
-
-/* kdMemset: Set bytes in memory to a value. */
-KD_API void *KD_APIENTRY kdMemset(void *buf, KDint byte, KDsize len);
-
-/* kdStrchr: Scan string for a byte value. */
-KD_API KDchar *KD_APIENTRY kdStrchr(const KDchar *str, KDint ch);
-
-/* kdStrcmp: Compares two strings. */
-KD_API KDint KD_APIENTRY kdStrcmp(const KDchar *str1, const KDchar *str2);
-
-/* kdStrlen: Determine the length of a string. */
-KD_API KDsize KD_APIENTRY kdStrlen(const KDchar *str);
-
-/* kdStrnlen: Determine the length of a string. */
-KD_API KDsize KD_APIENTRY kdStrnlen(const KDchar *str, KDsize maxlen);
-
-/* kdStrncat_s: Concatenate two strings. */
-KD_API KDint KD_APIENTRY kdStrncat_s(KDchar *buf, KDsize buflen, const KDchar *src, KDsize srcmaxlen);
-
-/* kdStrncmp: Compares two strings with length limit. */
-KD_API KDint KD_APIENTRY kdStrncmp(const KDchar *str1, const KDchar *str2, KDsize maxlen);
-
-/* kdStrcpy_s: Copy a string with an overrun check. */
-KD_API KDint KD_APIENTRY kdStrcpy_s(KDchar *buf, KDsize buflen, const KDchar *src);
-
-/* kdStrncpy_s: Copy a string with an overrun check. */
-KD_API KDint KD_APIENTRY kdStrncpy_s(KDchar *buf, KDsize buflen, const KDchar *src, KDsize srclen);
-
-/*******************************************************
- * Time functions
- *******************************************************/
-
-/* kdGetTimeUST: Get the current unadjusted system time. */
-KD_API KDust KD_APIENTRY kdGetTimeUST(void);
-
-/* kdTime: Get the current wall clock time. */
-KD_API KDtime KD_APIENTRY kdTime(KDtime *timep);
-
-/* kdGmtime_r, kdLocaltime_r: Convert a seconds-since-epoch time into broken-down time. */
-typedef struct KDTm {
- KDint32 tm_sec;
- KDint32 tm_min;
- KDint32 tm_hour;
- KDint32 tm_mday;
- KDint32 tm_mon;
- KDint32 tm_year;
- KDint32 tm_wday;
- KDint32 tm_yday;
-} KDTm;
-KD_API KDTm *KD_APIENTRY kdGmtime_r(const KDtime *timep, KDTm *result);
-KD_API KDTm *KD_APIENTRY kdLocaltime_r(const KDtime *timep, KDTm *result);
-
-/* kdUSTAtEpoch: Get the UST corresponding to KDtime 0. */
-KD_API KDust KD_APIENTRY kdUSTAtEpoch(void);
-
-/*******************************************************
- * Timer functions
- *******************************************************/
-
-/* kdSetTimer: Set timer. */
-#define KD_TIMER_ONESHOT 61
-#define KD_TIMER_PERIODIC_AVERAGE 62
-#define KD_TIMER_PERIODIC_MINIMUM 63
-typedef struct KDTimer KDTimer;
-KD_API KDTimer *KD_APIENTRY kdSetTimer(KDint64 interval, KDint periodic, void *eventuserptr);
-
-/* kdCancelTimer: Cancel and free a timer. */
-KD_API KDint KD_APIENTRY kdCancelTimer(KDTimer *timer);
-
-/* KD_EVENT_TIMER: Timer fire event. */
-#define KD_EVENT_TIMER 42
-
-/*******************************************************
- * File system
- *******************************************************/
-#define KD_EOF (-1)
-
-/* kdFopen: Open a file from the file system. */
-typedef struct KDFile KDFile;
-KD_API KDFile *KD_APIENTRY kdFopen(const KDchar *pathname, const KDchar *mode);
-
-/* kdFclose: Close an open file. */
-KD_API KDint KD_APIENTRY kdFclose(KDFile *file);
-
-/* kdFflush: Flush an open file. */
-KD_API KDint KD_APIENTRY kdFflush(KDFile *file);
-
-/* kdFread: Read from a file. */
-KD_API KDsize KD_APIENTRY kdFread(void *buffer, KDsize size, KDsize count, KDFile *file);
-
-/* kdFwrite: Write to a file. */
-KD_API KDsize KD_APIENTRY kdFwrite(const void *buffer, KDsize size, KDsize count, KDFile *file);
-
-/* kdGetc: Read next byte from an open file. */
-KD_API KDint KD_APIENTRY kdGetc(KDFile *file);
-
-/* kdPutc: Write a byte to an open file. */
-KD_API KDint KD_APIENTRY kdPutc(KDint c, KDFile *file);
-
-/* kdFgets: Read a line of text from an open file. */
-KD_API KDchar *KD_APIENTRY kdFgets(KDchar *buffer, KDsize buflen, KDFile *file);
-
-/* kdFEOF: Check for end of file. */
-KD_API KDint KD_APIENTRY kdFEOF(KDFile *file);
-
-/* kdFerror: Check for an error condition on an open file. */
-KD_API KDint KD_APIENTRY kdFerror(KDFile *file);
-
-/* kdClearerr: Clear a file&#8217;s error and end-of-file indicators. */
-KD_API void KD_APIENTRY kdClearerr(KDFile *file);
-
-/* kdFseek: Reposition the file position indicator in a file. */
-typedef enum {
- KD_SEEK_SET = 0,
- KD_SEEK_CUR = 1,
- KD_SEEK_END = 2
-} KDfileSeekOrigin;
-KD_API KDint KD_APIENTRY kdFseek(KDFile *file, KDoff offset, KDfileSeekOrigin origin);
-
-/* kdFtell: Get the file position of an open file. */
-KD_API KDoff KD_APIENTRY kdFtell(KDFile *file);
-
-/* kdMkdir: Create new directory. */
-KD_API KDint KD_APIENTRY kdMkdir(const KDchar *pathname);
-
-/* kdRmdir: Delete a directory. */
-KD_API KDint KD_APIENTRY kdRmdir(const KDchar *pathname);
-
-/* kdRename: Rename a file. */
-KD_API KDint KD_APIENTRY kdRename(const KDchar *src, const KDchar *dest);
-
-/* kdRemove: Delete a file. */
-KD_API KDint KD_APIENTRY kdRemove(const KDchar *pathname);
-
-/* kdTruncate: Truncate or extend a file. */
-KD_API KDint KD_APIENTRY kdTruncate(const KDchar *pathname, KDoff length);
-
-/* kdStat, kdFstat: Return information about a file. */
-typedef struct KDStat {
- KDmode st_mode;
- KDoff st_size;
- KDtime st_mtime;
-} KDStat;
-KD_API KDint KD_APIENTRY kdStat(const KDchar *pathname, struct KDStat *buf);
-KD_API KDint KD_APIENTRY kdFstat(KDFile *file, struct KDStat *buf);
-#define KD_ISREG(m) ((m) & 0x8000)
-#define KD_ISDIR(m) ((m) & 0x4000)
-
-/* kdAccess: Determine whether the application can access a file or directory. */
-KD_API KDint KD_APIENTRY kdAccess(const KDchar *pathname, KDint amode);
-#define KD_R_OK 4
-#define KD_W_OK 2
-#define KD_X_OK 1
-
-/* kdOpenDir: Open a directory ready for listing. */
-typedef struct KDDir KDDir;
-KD_API KDDir *KD_APIENTRY kdOpenDir(const KDchar *pathname);
-
-/* kdReadDir: Return the next file in a directory. */
-typedef struct KDDirent {
- const KDchar *d_name;
-} KDDirent;
-KD_API KDDirent *KD_APIENTRY kdReadDir(KDDir *dir);
-
-/* kdCloseDir: Close a directory. */
-KD_API KDint KD_APIENTRY kdCloseDir(KDDir *dir);
-
-/* kdGetFree: Get free space on a drive. */
-KD_API KDoff KD_APIENTRY kdGetFree(const KDchar *pathname);
-
-/*******************************************************
- * Network sockets
- *******************************************************/
-
-/* KDSockaddr: Struct type for socket address. */
-typedef struct KDSockaddr {
- KDuint16 family;
- union {
-#define KD_AF_INET 70
- struct {
- KDuint16 port;
- KDuint32 address;
- } sin;
- } data;
-} KDSockaddr;
-
-/* kdNameLookup: Look up a hostname. */
-KD_API KDint KD_APIENTRY kdNameLookup(KDint af, const KDchar *hostname, void *eventuserptr);
-
-/* kdNameLookupCancel: Selectively cancels ongoing kdNameLookup operations. */
-KD_API void KD_APIENTRY kdNameLookupCancel(void *eventuserptr);
-
-/* kdSocketCreate: Creates a socket. */
-typedef struct KDSocket KDSocket;
-KD_API KDSocket *KD_APIENTRY kdSocketCreate(KDint type, void *eventuserptr);
-#define KD_SOCK_TCP 64
-#define KD_SOCK_UDP 65
-
-/* kdSocketClose: Closes a socket. */
-KD_API KDint KD_APIENTRY kdSocketClose(KDSocket *socket);
-
-/* kdSocketBind: Bind a socket. */
-KD_API KDint KD_APIENTRY kdSocketBind(KDSocket *socket, const struct KDSockaddr *addr, KDboolean reuse);
-#define KD_INADDR_ANY 0
-
-/* kdSocketGetName: Get the local address of a socket. */
-KD_API KDint KD_APIENTRY kdSocketGetName(KDSocket *socket, struct KDSockaddr *addr);
-
-/* kdSocketConnect: Connects a socket. */
-KD_API KDint KD_APIENTRY kdSocketConnect(KDSocket *socket, const KDSockaddr *addr);
-
-/* kdSocketListen: Listen on a socket. */
-KD_API KDint KD_APIENTRY kdSocketListen(KDSocket *socket, KDint backlog);
-
-/* kdSocketAccept: Accept an incoming connection. */
-KD_API KDSocket *KD_APIENTRY kdSocketAccept(KDSocket *socket, KDSockaddr *addr, void *eventuserptr);
-
-/* kdSocketSend, kdSocketSendTo: Send data to a socket. */
-KD_API KDint KD_APIENTRY kdSocketSend(KDSocket *socket, const void *buf, KDint len);
-KD_API KDint KD_APIENTRY kdSocketSendTo(KDSocket *socket, const void *buf, KDint len, const KDSockaddr *addr);
-
-/* kdSocketRecv, kdSocketRecvFrom: Receive data from a socket. */
-KD_API KDint KD_APIENTRY kdSocketRecv(KDSocket *socket, void *buf, KDint len);
-KD_API KDint KD_APIENTRY kdSocketRecvFrom(KDSocket *socket, void *buf, KDint len, KDSockaddr *addr);
-
-/* kdHtonl: Convert a 32-bit integer from host to network byte order. */
-KD_API KDuint32 KD_APIENTRY kdHtonl(KDuint32 hostlong);
-
-/* kdHtons: Convert a 16-bit integer from host to network byte order. */
-KD_API KDuint16 KD_APIENTRY kdHtons(KDuint16 hostshort);
-
-/* kdNtohl: Convert a 32-bit integer from network to host byte order. */
-KD_API KDuint32 KD_APIENTRY kdNtohl(KDuint32 netlong);
-
-/* kdNtohs: Convert a 16-bit integer from network to host byte order. */
-KD_API KDuint16 KD_APIENTRY kdNtohs(KDuint16 netshort);
-
-/* kdInetAton: Convert a &#8220;dotted quad&#8221; format address to an integer. */
-KD_API KDint KD_APIENTRY kdInetAton(const KDchar *cp, KDuint32 *inp);
-
-/* kdInetNtop: Convert a network address to textual form. */
-#define KD_INET_ADDRSTRLEN 16
-typedef struct KDInAddr {
- KDuint32 s_address; // Renamed this from s_addr as it causes a conflict with winsock2.h
-} KDInAddr;
-KD_API const KDchar *KD_APIENTRY kdInetNtop(KDuint af, const void *src, KDchar *dst, KDsize cnt);
-
-/* KD_EVENT_SOCKET_READABLE: Event to indicate that a socket is readable. */
-#define KD_EVENT_SOCKET_READABLE 49
-typedef struct KDEventSocketReadable {
- KDSocket *socket;
-} KDEventSocketReadable;
-
-/* KD_EVENT_SOCKET_WRITABLE: Event to indicate that a socket is writable. */
-#define KD_EVENT_SOCKET_WRITABLE 50
-typedef struct KDEventSocketWritable {
- KDSocket *socket;
-} KDEventSocketWritable;
-
-/* KD_EVENT_SOCKET_CONNECT_COMPLETE: Event generated when a socket connect is complete */
-#define KD_EVENT_SOCKET_CONNECT_COMPLETE 51
-typedef struct KDEventSocketConnect {
- KDSocket *socket;
- KDint32 error;
-} KDEventSocketConnect;
-
-/* KD_EVENT_SOCKET_INCOMING: Event generated when a listening socket detects an incoming connection or an error. */
-#define KD_EVENT_SOCKET_INCOMING 52
-typedef struct KDEventSocketIncoming {
- KDSocket *socket;
-} KDEventSocketIncoming;
-
-/* KD_EVENT_NAME_LOOKUP_COMPLETE: kdNameLookup complete event. */
-#define KD_EVENT_NAME_LOOKUP_COMPLETE 53
-typedef struct KDEventNameLookup {
- KDint32 error;
- KDint32 resultlen;
- const KDSockaddr *result;
- KDboolean more;
-} KDEventNameLookup;
-
-/*******************************************************
- * Input/output
- *******************************************************/
-
-/* KD_EVENT_STATE: State changed event. */
-#define KD_EVENT_STATE 55
-
-typedef struct KDEventState {
- KDint32 index;
- union {
- KDint32 i;
- KDint64 l;
- KDfloat32 f;
- } value;
-} KDEventState;
-
-/* KD_EVENT_INPUT: Input changed event. */
-#define KD_EVENT_INPUT 56
-
-typedef struct KDEventInput {
- KDint32 index;
- union {
- KDint32 i;
- KDint64 l;
- KDfloat32 f;
- } value;
-} KDEventInput;
-
-/* KD_EVENT_INPUT_JOG: Jogdial jog event. */
-#define KD_EVENT_INPUT_JOG 71
-typedef struct KDEventInputJog {
- KDint32 index;
- KDint32 count;
-} KDEventInputJog;
-
-/* KD_EVENT_INPUT_POINTER: Pointer input changed event. */
-#define KD_EVENT_INPUT_POINTER 57
-typedef struct KDEventInputPointer {
- KDint32 index;
- KDint32 select;
- KDint32 x;
- KDint32 y;
-} KDEventInputPointer;
-
-/* KD_EVENT_INPUT_STICK: Joystick stick changed event. */
-#define KD_EVENT_INPUT_STICK 58
-typedef struct KDEventInputStick {
- KDint32 index;
- KDint32 x;
- KDint32 y;
- KDint32 z;
-} KDEventInputStick;
-
-/* kdStateGeti, kdStateGetl, kdStateGetf: get state value(s) */
-KD_API KDint KD_APIENTRY kdStateGeti(KDint startidx, KDuint numidxs, KDint32 *buffer);
-KD_API KDint KD_APIENTRY kdStateGetl(KDint startidx, KDuint numidxs, KDint64 *buffer);
-KD_API KDint KD_APIENTRY kdStateGetf(KDint startidx, KDuint numidxs, KDfloat32 *buffer);
-
-/* kdOutputSeti, kdOutputSetf: set outputs */
-KD_API KDint KD_APIENTRY kdOutputSeti(KDint startidx, KDuint numidxs, const KDint32 *buffer);
-KD_API KDint KD_APIENTRY kdOutputSetf(KDint startidx, KDuint numidxs, const KDfloat32 *buffer);
-#define KD_IO_CONTROLLER_STRIDE 64
-
-/* KD_IOGROUP_GAMEKEYS: I/O group for game keys. */
-#define KD_IOGROUP_GAMEKEYS 0x1000
-#define KD_STATE_GAMEKEYS_AVAILABILITY (KD_IOGROUP_GAMEKEYS + 0)
-#define KD_INPUT_GAMEKEYS_UP (KD_IOGROUP_GAMEKEYS + 1)
-#define KD_INPUT_GAMEKEYS_LEFT (KD_IOGROUP_GAMEKEYS + 2)
-#define KD_INPUT_GAMEKEYS_RIGHT (KD_IOGROUP_GAMEKEYS + 3)
-#define KD_INPUT_GAMEKEYS_DOWN (KD_IOGROUP_GAMEKEYS + 4)
-#define KD_INPUT_GAMEKEYS_FIRE (KD_IOGROUP_GAMEKEYS + 5)
-#define KD_INPUT_GAMEKEYS_A (KD_IOGROUP_GAMEKEYS + 6)
-#define KD_INPUT_GAMEKEYS_B (KD_IOGROUP_GAMEKEYS + 7)
-#define KD_INPUT_GAMEKEYS_C (KD_IOGROUP_GAMEKEYS + 8)
-#define KD_INPUT_GAMEKEYS_D (KD_IOGROUP_GAMEKEYS + 9)
-
-/* KD_IOGROUP_GAMEKEYSNC: I/O group for game keys, no chording. */
-#define KD_IOGROUP_GAMEKEYSNC 0x1100
-#define KD_STATE_GAMEKEYSNC_AVAILABILITY (KD_IOGROUP_GAMEKEYSNC + 0)
-#define KD_INPUT_GAMEKEYSNC_UP (KD_IOGROUP_GAMEKEYSNC + 1)
-#define KD_INPUT_GAMEKEYSNC_LEFT (KD_IOGROUP_GAMEKEYSNC + 2)
-#define KD_INPUT_GAMEKEYSNC_RIGHT (KD_IOGROUP_GAMEKEYSNC + 3)
-#define KD_INPUT_GAMEKEYSNC_DOWN (KD_IOGROUP_GAMEKEYSNC + 4)
-#define KD_INPUT_GAMEKEYSNC_FIRE (KD_IOGROUP_GAMEKEYSNC + 5)
-#define KD_INPUT_GAMEKEYSNC_A (KD_IOGROUP_GAMEKEYSNC + 6)
-#define KD_INPUT_GAMEKEYSNC_B (KD_IOGROUP_GAMEKEYSNC + 7)
-#define KD_INPUT_GAMEKEYSNC_C (KD_IOGROUP_GAMEKEYSNC + 8)
-#define KD_INPUT_GAMEKEYSNC_D (KD_IOGROUP_GAMEKEYSNC + 9)
-
-/* KD_IOGROUP_PHONEKEYPAD: I/O group for phone keypad. */
-#define KD_IOGROUP_PHONEKEYPAD 0x2000
-#define KD_STATE_PHONEKEYPAD_AVAILABILITY (KD_IOGROUP_PHONEKEYPAD + 0)
-#define KD_INPUT_PHONEKEYPAD_0 (KD_IOGROUP_PHONEKEYPAD + 1)
-#define KD_INPUT_PHONEKEYPAD_1 (KD_IOGROUP_PHONEKEYPAD + 2)
-#define KD_INPUT_PHONEKEYPAD_2 (KD_IOGROUP_PHONEKEYPAD + 3)
-#define KD_INPUT_PHONEKEYPAD_3 (KD_IOGROUP_PHONEKEYPAD + 4)
-#define KD_INPUT_PHONEKEYPAD_4 (KD_IOGROUP_PHONEKEYPAD + 5)
-#define KD_INPUT_PHONEKEYPAD_5 (KD_IOGROUP_PHONEKEYPAD + 6)
-#define KD_INPUT_PHONEKEYPAD_6 (KD_IOGROUP_PHONEKEYPAD + 7)
-#define KD_INPUT_PHONEKEYPAD_7 (KD_IOGROUP_PHONEKEYPAD + 8)
-#define KD_INPUT_PHONEKEYPAD_8 (KD_IOGROUP_PHONEKEYPAD + 9)
-#define KD_INPUT_PHONEKEYPAD_9 (KD_IOGROUP_PHONEKEYPAD + 10)
-#define KD_INPUT_PHONEKEYPAD_STAR (KD_IOGROUP_PHONEKEYPAD + 11)
-#define KD_INPUT_PHONEKEYPAD_HASH (KD_IOGROUP_PHONEKEYPAD + 12)
-#define KD_INPUT_PHONEKEYPAD_LEFTSOFT (KD_IOGROUP_PHONEKEYPAD + 13)
-#define KD_INPUT_PHONEKEYPAD_RIGHTSOFT (KD_IOGROUP_PHONEKEYPAD + 14)
-#define KD_STATE_PHONEKEYPAD_ORIENTATION (KD_IOGROUP_PHONEKEYPAD + 15)
-
-/* KD_IOGROUP_VIBRATE: I/O group for vibrate. */
-#define KD_IOGROUP_VIBRATE 0x3000
-#define KD_STATE_VIBRATE_AVAILABILITY (KD_IOGROUP_VIBRATE + 0)
-#define KD_STATE_VIBRATE_MINFREQUENCY (KD_IOGROUP_VIBRATE + 1)
-#define KD_STATE_VIBRATE_MAXFREQUENCY (KD_IOGROUP_VIBRATE + 2)
-#define KD_OUTPUT_VIBRATE_VOLUME (KD_IOGROUP_VIBRATE + 3)
-#define KD_OUTPUT_VIBRATE_FREQUENCY (KD_IOGROUP_VIBRATE + 4)
-
-/* KD_IOGROUP_POINTER: I/O group for pointer. */
-#define KD_IOGROUP_POINTER 0x4000
-#define KD_STATE_POINTER_AVAILABILITY (KD_IOGROUP_POINTER + 0)
-#define KD_INPUT_POINTER_X (KD_IOGROUP_POINTER + 1)
-#define KD_INPUT_POINTER_Y (KD_IOGROUP_POINTER + 2)
-#define KD_INPUT_POINTER_SELECT (KD_IOGROUP_POINTER + 3)
-
-/* KD_IOGROUP_BACKLIGHT: I/O group for backlight. */
-#define KD_IOGROUP_BACKLIGHT 0x5000
-#define KD_STATE_BACKLIGHT_AVAILABILITY (KD_IOGROUP_BACKLIGHT + 0)
-#define KD_OUTPUT_BACKLIGHT_FORCE (KD_IOGROUP_BACKLIGHT + 1)
-
-/* KD_IOGROUP_JOGDIAL: I/O group for a jog dial. */
-#define KD_IOGROUP_JOGDIAL 0x6000
-#define KD_STATE_JOGDIAL_AVAILABILITY (KD_IOGROUP_JOGDIAL + 0)
-#define KD_INPUT_JOGDIAL_UP (KD_IOGROUP_JOGDIAL + 1)
-#define KD_INPUT_JOGDIAL_LEFT (KD_IOGROUP_JOGDIAL + 2)
-#define KD_INPUT_JOGDIAL_RIGHT (KD_IOGROUP_JOGDIAL + 3)
-#define KD_INPUT_JOGDIAL_DOWN (KD_IOGROUP_JOGDIAL + 4)
-#define KD_INPUT_JOGDIAL_SELECT (KD_IOGROUP_JOGDIAL + 5)
-
-/* KD_IOGROUP_STICK: I/O group for joystick. */
-#define KD_IOGROUP_STICK 0x7000
-#define KD_STATE_STICK_AVAILABILITY (KD_IOGROUP_STICK + 0)
-#define KD_INPUT_STICK_X (KD_IOGROUP_STICK + 1)
-#define KD_INPUT_STICK_Y (KD_IOGROUP_STICK + 2)
-#define KD_INPUT_STICK_Z (KD_IOGROUP_STICK + 3)
-#define KD_INPUT_STICK_BUTTON (KD_IOGROUP_STICK + 4)
-#define KD_IO_STICK_STRIDE 8
-
-/* KD_IOGROUP_DPAD: I/O group for D-pad. */
-#define KD_IOGROUP_DPAD 0x8000
-#define KD_STATE_DPAD_AVAILABILITY (KD_IOGROUP_DPAD + 0)
-#define KD_STATE_DPAD_COPY (KD_IOGROUP_DPAD + 1)
-#define KD_INPUT_DPAD_UP (KD_IOGROUP_DPAD + 2)
-#define KD_INPUT_DPAD_LEFT (KD_IOGROUP_DPAD + 3)
-#define KD_INPUT_DPAD_RIGHT (KD_IOGROUP_DPAD + 4)
-#define KD_INPUT_DPAD_DOWN (KD_IOGROUP_DPAD + 5)
-#define KD_INPUT_DPAD_SELECT (KD_IOGROUP_DPAD + 6)
-#define KD_IO_DPAD_STRIDE 8
-
-/* KD_IOGROUP_BUTTONS: I/O group for buttons associated with joystick or D-pad. */
-#define KD_IOGROUP_BUTTONS 0x9000
-#define KD_STATE_BUTTONS_AVAILABILITY (KD_IOGROUP_BUTTONS + 0)
-#define KD_INPUT_BUTTONS_0 (KD_IOGROUP_BUTTONS + 1)
-
-/* KD_IO_UNDEFINED: I/O items reserved for implementation-dependent use. */
-#define KD_IO_UNDEFINED 0x40000000
-
-/*******************************************************
- * Windowing
- *******************************************************/
-#ifdef KD_WINDOW_SUPPORTED
-#include <EGL/egl.h>
-typedef struct KDWindow KDWindow;
-
-/* kdCreateWindow: Create a window. */
-KD_API KDWindow *KD_APIENTRY kdCreateWindow(EGLDisplay display, EGLConfig config, void *eventuserptr);
-
-/* kdDestroyWindow: Destroy a window. */
-KD_API KDint KD_APIENTRY kdDestroyWindow(KDWindow *window);
-
-/* kdSetWindowPropertybv, kdSetWindowPropertyiv, kdSetWindowPropertycv: Set a window property to request a change in the on-screen representation of the window. */
-KD_API KDint KD_APIENTRY kdSetWindowPropertybv(KDWindow *window, KDint pname, const KDboolean *param);
-KD_API KDint KD_APIENTRY kdSetWindowPropertyiv(KDWindow *window, KDint pname, const KDint32 *param);
-KD_API KDint KD_APIENTRY kdSetWindowPropertycv(KDWindow *window, KDint pname, const KDchar *param);
-
-/* kdGetWindowPropertybv, kdGetWindowPropertyiv, kdGetWindowPropertycv: Get the current value of a window property. */
-KD_API KDint KD_APIENTRY kdGetWindowPropertybv(KDWindow *window, KDint pname, KDboolean *param);
-KD_API KDint KD_APIENTRY kdGetWindowPropertyiv(KDWindow *window, KDint pname, KDint32 *param);
-KD_API KDint KD_APIENTRY kdGetWindowPropertycv(KDWindow *window, KDint pname, KDchar *param, KDsize *size);
-
-/* kdRealizeWindow: Realize the window as a displayable entity and get the native window handle for passing to EGL. */
-KD_API KDint KD_APIENTRY kdRealizeWindow(KDWindow *window, EGLNativeWindowType *nativewindow);
-
-/* KD_WINDOWPROPERTY_SIZE: Window client area width and height. */
-#define KD_WINDOWPROPERTY_SIZE 66
-
-/* KD_WINDOWPROPERTY_VISIBILITY: Window visibility status. */
-#define KD_WINDOWPROPERTY_VISIBILITY 67
-
-/* KD_WINDOWPROPERTY_FOCUS: Window input focus status. */
-#define KD_WINDOWPROPERTY_FOCUS 68
-
-/* KD_WINDOWPROPERTY_CAPTION: Window caption. */
-#define KD_WINDOWPROPERTY_CAPTION 69
-
-/* KD_EVENT_WINDOW_CLOSE: Event to request to close window. */
-#define KD_EVENT_WINDOW_CLOSE 44
-
-/* KD_EVENT_WINDOWPROPERTY_CHANGE: Notification about realized window property change. */
-#define KD_EVENT_WINDOWPROPERTY_CHANGE 47
-typedef struct KDEventWindowProperty {
- KDint32 pname;
-} KDEventWindowProperty;
-
-/* KD_EVENT_WINDOW_FOCUS: Event for change of window&#8217;s focus state. */
-#define KD_EVENT_WINDOW_FOCUS 60
-typedef struct KDEventWindowFocus {
- KDint32 focusstate;
-} KDEventWindowFocus;
-
-/* KD_EVENT_WINDOW_REDRAW: Event to notify need to redraw the window. */
-#define KD_EVENT_WINDOW_REDRAW 59
-#endif /* KD_WINDOW_SUPPORTED */
-
-/*******************************************************
- * Assertions and logging
- *******************************************************/
-
-/* kdHandleAssertion: Handle assertion failure. */
-KD_API void KD_APIENTRY kdHandleAssertion(const KDchar *condition, const KDchar *filename, KDint linenumber);
-
-/* kdLogMessage: Output a log message. */
-#ifdef KD_NDEBUG
-#define kdLogMessage(s)
-#else
-KD_API void KD_APIENTRY kdLogMessage(const KDchar *string);
-#endif
-
-/* struct KDEvent delayed to the end as it uses event data structs from
- * other parts of the .h file. */
-struct KDEvent {
- KDust timestamp;
- KDint32 type;
- void *userptr;
- union KDEventData {
- KDEventState state;
- KDEventInput input;
- KDEventInputJog inputjog;
- KDEventInputPointer inputpointer;
- KDEventInputStick inputstick;
- KDEventSocketReadable socketreadable;
- KDEventSocketWritable socketwritable;
- KDEventSocketConnect socketconnect;
- KDEventSocketIncoming socketincoming;
- KDEventNameLookup namelookup;
-#ifdef KD_WINDOW_SUPPORTED
- KDEventWindowProperty windowproperty;
- KDEventWindowFocus windowfocus;
-#endif /* KD_WINDOW_SUPPORTED */
- KDEventUser user;
- } data;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_h_ */
-
diff --git a/src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/kdplatform.h b/src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/kdplatform.h
deleted file mode 100644
index 3cf09f52..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Android/jni/Qt3DSLibs/KD/kdplatform.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/* Sample KD/kdplatform.h for OpenKODE Core 1.0.3 */
-#ifndef __kdplatform_h_
-#define __kdplatform_h_
-
-#define KD_API
-#define KD_APIENTRY
-
-typedef int KDint32;
-typedef unsigned int KDuint32;
-typedef long long KDint64;
-typedef unsigned long long KDuint64;
-typedef short KDint16;
-typedef unsigned short KDuint16;
-typedef unsigned long KDuintptr;
-typedef unsigned long KDsize;
-typedef long KDssize;
-#define KDINT_MIN (-0x7fffffff-1)
-#define KDINT_MAX 0x7fffffff
-#define KDUINT_MAX 0xffffffffU
-#define KDINT64_MIN (-0x7fffffffffffffffLL-1)
-#define KDINT64_MAX 0x7fffffffffffffffLL
-#define KDUINT64_MAX 0xffffffffffffffffULL
-#define KDSSIZE_MIN (-0x7fffffff-1)
-#define KDSSIZE_MAX 0x7fffffff
-#define KDSIZE_MAX 0xffffffffU
-#define KDUINTPTR_MAX 0xffffffffU
-#define KD_NORETURN
-#define KD_WINDOW_SUPPORTED
-#ifdef KD_NDEBUG
-#define kdAssert(c)
-#else
-#define kdAssert(c) ((void)( (c) ? 0 : (kdHandleAssertion(#c, __FILE__, __LINE__), 0)))
-#endif
-
-#define KD_INFINITY_BITS 0x7f800000u
-#define KD_INFINITY (kdBitsToFloatNV(KD_INFINITY_BITS))
-
-KD_API float KD_APIENTRY kdBitsToFloatNV(KDuint32 x);
-
-
-/** KHR_formatted extension */
-#include <stdarg.h>
-typedef va_list KDVaListKHR;
-
-// If there are problems with including stdarg.h here under any of the Windows
-// operating systems, we might want to change it back to using char* instead of
-// va_list
-//typedef char *KDVaListKHR;
-
-
-#define KD_VA_START_KHR(ap, parmN) \
- do {ap = (KDVaListKHR)&parmN + sizeof(parmN);} while(0)
-
-#define KD_VA_ARG_CHAR_KHR(ap) (KDchar)va_arg(ap, KDint)
-#define KD_VA_ARG_CHARPTR_KHR(ap) (KDchar*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_INT16_KHR(ap) (KDint16)va_arg(ap, KDint)
-#define KD_VA_ARG_INT32_KHR(ap) va_arg(ap, KDint32)
-#define KD_VA_ARG_INT_KHR(ap) va_arg(ap, KDint)
-#define KD_VA_ARG_INT64_KHR(ap) va_arg(ap, KDint64)
-#define KD_VA_ARG_INTPTR_KHR(ap) (KDint*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_INT16PTR_KHR(ap) (KDint16*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_FLOAT32_KHR(ap) (KDfloat32)(va_arg(ap, double))
-#define KD_VA_ARG_PTR_KHR(ap) (void *)va_arg(ap, char *)
-
-#define KD_VA_END_KHR(ap) \
- do {ap = (KDVaListKHR)0;} while(0)
-
-#endif /* __kdplatform_h_ */
-
diff --git a/src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/Qt3DS_extwindowprops.h b/src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/Qt3DS_extwindowprops.h
deleted file mode 100644
index 4428a568..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/Qt3DS_extwindowprops.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef __kd_QT3DS_extwindowprops_h_
-#define __kd_QT3DS_extwindowprops_h_
-#include <KD/kd.h>
-#include <EGL/eglext.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* KD_WINDOWPROPERTY_FULLSCREEN: Control over resizing a window to fill the complete screen */
-
-// KDboolean - set the window to fullscreen mode
-#define KD_WINDOWPROPERTY_FULLSCREEN_QT3DS 9999
-
-// KDint - set which KD_DISPLAY_* display that the window should be opened on
-#define KD_WINDOWPROPERTY_DISPLAY_QT3DS 9998
-
-// KDboolean - sets whether overlay should be used to create window
-#define KD_WINDOWPROPERTY_OVERLAY_QT3DS 9997
-
-#define KD_DISPLAY_PRIMARY_QT3DS 0
-#define KD_DISPLAY_INTERNAL0_QT3DS 0
-#define KD_DISPLAY_INTERNAL1_QT3DS 1
-#define KD_DISPLAY_INTERNAL2_QT3DS 2
-#define KD_DISPLAY_INTERNAL3_QT3DS 3
-#define KD_DISPLAY_EXTERNAL0_QT3DS 1000
-#define KD_DISPLAY_EXTERNAL1_QT3DS 1001
-#define KD_DISPLAY_EXTERNAL2_QT3DS 1002
-#define KD_DISPLAY_EXTERNAL3_QT3DS 1003
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_QT3DS_extwindowprops_h_ */
diff --git a/src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/Qt3DS_multitouch.h b/src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/Qt3DS_multitouch.h
deleted file mode 100644
index e230b029..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/Qt3DS_multitouch.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef __kd_QT3DS_multitouch_h_
-#define __kd_QT3DS_multitouch_h_
-#include <KD/kd.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* KD_IOGROUP_MULTITOUCH: I/O group for Multitouch input devices. */
-#define KD_IOGROUP_MULTITOUCH_QT3DS 0x40004000
-#define KD_STATE_MULTITOUCH_AVAILABILITY_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 0)
-#define KD_INPUT_MULTITOUCH_FINGERS_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 1)
-#define KD_INPUT_MULTITOUCH_WIDTH_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 2)
-#define KD_INPUT_MULTITOUCH_X_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 3)
-#define KD_INPUT_MULTITOUCH_Y_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 4)
-#define KD_INPUT_MULTITOUCH_X2_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 5)
-#define KD_INPUT_MULTITOUCH_Y2_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 6)
-#define KD_INPUT_MULTITOUCH_PRESSURE_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 7)
-#define KD_INPUT_MULTITOUCH_GESTURES_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 8)
-#define KD_INPUT_MULTITOUCH_RELX_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 9)
-#define KD_INPUT_MULTITOUCH_RELY_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 10)
-
-/* KD_EVENT_INPUT_MULTITOUCH_QT3DS: Multitouch event. */
-#define KD_EVENT_INPUT_MULTITOUCH_QT3DS 1001
-typedef struct KDEventInputMultitouchDataNV
-{
- KDint32 index;
- KDint8 fingers;
- KDint8 width;
- KDint16 x;
- KDint16 y;
- KDint16 x2;
- KDint16 y2;
- KDint16 pressure;
-} KDEventInputMultitouchDataNV;
-
-/* KD_EVENT_INPUT_MULTITOUCH_GESTURE_QT3DS: Multitouch gesture event. */
-#define KD_EVENT_INPUT_MULTITOUCH_GESTURE_QT3DS 1002
-
-/* kdGetEventInputMultitouchDataNV: Get auxiliary event data for multitouch input. */
-KD_API KDint KD_APIENTRY kdGetEventInputMultitouchDataNV(const KDEvent *event,
- KDEventInputMultitouchDataNV *data);
-
-/* kdSetEventInputMultitouchActiveNV: Activate Multitouch input events */
-KD_API KDint KD_APIENTRY kdSetEventInputMultitouchActiveNV(KDboolean activate);
-
-/* kdEnableEventInputMultitouchMergeNV: Activate merging of Multitouch input events */
-KD_API void KD_APIENTRY kdEnableEventInputMultitouchMergeNV(KDboolean enable);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_QT3DS_multitouch_h_ */
diff --git a/src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/kd.h b/src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/kd.h
deleted file mode 100644
index f7ccea03..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/kd.h
+++ /dev/null
@@ -1,991 +0,0 @@
-/* Reference KD/kd.h for OpenKODE Core 1.0.3 */
-#ifndef __kd_h_
-#define __kd_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "kdplatform.h"
-
-
-
-/*******************************************************
- * Introduction
- *******************************************************/
-
-/*******************************************************
- * OpenKODE conformance
- *******************************************************/
-
-/*******************************************************
- * Overview
- *******************************************************/
-
-/*******************************************************
- * Programming environment
- *******************************************************/
-#define KD_VERSION_1_0 1
-typedef char KDchar;
-typedef signed char KDint8;
-typedef unsigned char KDuint8;
-typedef int KDint;
-typedef unsigned int KDuint;
-typedef float KDfloat32;
-typedef KDint KDboolean;
-typedef KDint64 KDtime;
-typedef KDint64 KDust;
-typedef KDint64 KDoff;
-typedef KDuint32 KDmode;
-#define KDINT32_MIN (-0x7fffffff-1)
-#define KDINT32_MAX 0x7fffffff
-#define KDUINT32_MAX 0xffffffffU
-#define KD_TRUE 1
-#define KD_FALSE 0
-#ifdef __cplusplus
- const int KD_NULL = 0; /* Yes, int. See Stroustrup 3rd edition. */
-#else
- #define KD_NULL ((void *)0)
-#endif
-
-/*******************************************************
- * Errors
- *******************************************************/
-#define KD_EACCES 1
-#define KD_EADDRINUSE 2
-#define KD_EADDRNOTAVAIL 3
-#define KD_EAFNOSUPPORT 4
-#define KD_EAGAIN (5)
-#define KD_EALREADY 6
-#define KD_EBADF 7
-#define KD_EBUSY 8
-#define KD_ECONNREFUSED 9
-#define KD_ECONNRESET 10
-#define KD_EDEADLK 11
-#define KD_EDESTADDRREQ 12
-#define KD_EEXIST 13
-#define KD_EFBIG 14
-#define KD_EHOSTUNREACH 15
-#define KD_EHOST_NOT_FOUND 16
-#define KD_EINVAL 17
-#define KD_EIO 18
-#define KD_EILSEQ 19
-#define KD_EISCONN 20
-#define KD_EISDIR 21
-#define KD_EMFILE 22
-#define KD_ENAMETOOLONG 23
-#define KD_ENOENT 24
-#define KD_ENOMEM 25
-#define KD_ENOSPC 26
-#define KD_ENOSYS 27
-#define KD_ENOTCONN 28
-#define KD_ENO_DATA 29
-#define KD_ENO_RECOVERY 30
-#define KD_EOPNOTSUPP 31
-#define KD_EOVERFLOW 32
-#define KD_EPERM 33
-#define KD_ERANGE 35
-#define KD_ETIMEDOUT (36)
-#define KD_ETRY_AGAIN 37
-
-/* kdGetError: Get last error indication. */
-KD_API KDint KD_APIENTRY kdGetError(void);
-
-/* kdSetError: Set last error indication. */
-KD_API void KD_APIENTRY kdSetError(KDint error);
-
-/*******************************************************
- * Versioning and attribute queries
- *******************************************************/
-
-/* kdQueryAttribi: Obtain the value of a numeric OpenKODE Core attribute. */
-KD_API KDint KD_APIENTRY kdQueryAttribi(KDint attribute, KDint *value);
-
-/* kdQueryAttribcv: Obtain the value of a string OpenKODE Core attribute. */
-KD_API const KDchar *KD_APIENTRY kdQueryAttribcv(KDint attribute);
-#define KD_ATTRIB_VENDOR 39
-#define KD_ATTRIB_VERSION 40
-#define KD_ATTRIB_PLATFORM 41
-
-/* kdQueryIndexedAttribcv: Obtain the value of an indexed string OpenKODE Core attribute. */
-KD_API const KDchar *KD_APIENTRY kdQueryIndexedAttribcv(KDint attribute, KDint index);
-
-/*******************************************************
- * Threads and synchronization
- *******************************************************/
-
-/* kdThreadAttrCreate: Create a thread attribute object. */
-typedef struct KDThreadAttr KDThreadAttr;
-KD_API KDThreadAttr *KD_APIENTRY kdThreadAttrCreate(void);
-
-/* kdThreadAttrFree: Free a thread attribute object. */
-KD_API KDint KD_APIENTRY kdThreadAttrFree(KDThreadAttr *attr);
-
-/* kdThreadAttrSetDetachState: Set detachstate attribute. */
-#define KD_THREAD_CREATE_JOINABLE 0
-#define KD_THREAD_CREATE_DETACHED 1
-KD_API KDint KD_APIENTRY kdThreadAttrSetDetachState(KDThreadAttr *attr, KDint detachstate);
-
-/* kdThreadAttrSetStackSize: Set stacksize attribute. */
-KD_API KDint KD_APIENTRY kdThreadAttrSetStackSize(KDThreadAttr *attr, KDsize stacksize);
-
-/* kdThreadCreate: Create a new thread. */
-typedef struct KDThread KDThread;
-KD_API KDThread *KD_APIENTRY kdThreadCreate(const KDThreadAttr *attr, void *(*start_routine)(void *), void *arg);
-
-/* kdThreadExit: Terminate this thread. */
-KD_API KD_NORETURN void KD_APIENTRY kdThreadExit(void *retval);
-
-/* kdThreadJoin: Wait for termination of another thread. */
-KD_API KDint KD_APIENTRY kdThreadJoin(KDThread *thread, void **retval);
-
-/* kdThreadDetach: Allow resources to be freed as soon as a thread terminates. */
-KD_API KDint KD_APIENTRY kdThreadDetach(KDThread *thread);
-
-/* kdThreadSelf: Return calling thread&#8217;s ID. */
-KD_API KDThread *KD_APIENTRY kdThreadSelf(void);
-
-/* kdThreadOnce: Wrap initialization code so it is executed only once. */
-#ifndef KD_NO_STATIC_DATA
-typedef struct KDThreadOnce {
- void *impl;
-} KDThreadOnce;
-#define KD_THREAD_ONCE_INIT { 0 }
-KD_API KDint KD_APIENTRY kdThreadOnce(KDThreadOnce *once_control, void (*init_routine)(void));
-#endif /* ndef KD_NO_STATIC_DATA */
-
-/* kdThreadMutexCreate: Create a mutex. */
-typedef struct KDThreadMutex KDThreadMutex;
-KD_API KDThreadMutex *KD_APIENTRY kdThreadMutexCreate(const void *mutexattr);
-
-/* kdThreadMutexFree: Free a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexFree(KDThreadMutex *mutex);
-
-/* kdThreadMutexLock: Lock a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexLock(KDThreadMutex *mutex);
-
-/* kdThreadMutexUnlock: Unlock a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexUnlock(KDThreadMutex *mutex);
-
-/* kdThreadCondCreate: Create a condition variable. */
-typedef struct KDThreadCond KDThreadCond;
-KD_API KDThreadCond *KD_APIENTRY kdThreadCondCreate(const void *attr);
-
-/* kdThreadCondFree: Free a condition variable. */
-KD_API KDint KD_APIENTRY kdThreadCondFree(KDThreadCond *cond);
-
-/* kdThreadCondSignal, kdThreadCondBroadcast: Signal a condition variable. */
-KD_API KDint KD_APIENTRY kdThreadCondSignal(KDThreadCond *cond);
-KD_API KDint KD_APIENTRY kdThreadCondBroadcast(KDThreadCond *cond);
-
-/* kdThreadCondWait: Wait for a condition variable to be signalled. */
-KD_API KDint KD_APIENTRY kdThreadCondWait(KDThreadCond *cond, KDThreadMutex *mutex);
-
-/* kdThreadSemCreate: Create a semaphore. */
-typedef struct KDThreadSem KDThreadSem;
-KD_API KDThreadSem *KD_APIENTRY kdThreadSemCreate(KDuint value);
-
-/* kdThreadSemFree: Free a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemFree(KDThreadSem *sem);
-
-/* kdThreadSemWait: Lock a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemWait(KDThreadSem *sem);
-
-/* kdThreadSemPost: Unlock a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemPost(KDThreadSem *sem);
-
-/*******************************************************
- * Events
- *******************************************************/
-
-/* KDEvent: Struct type containing an event. */
-typedef struct KDEvent KDEvent;
-#define KD_EVENT_USER 0x40000000
-
-/* kdWaitEvent: Get next event from thread&#8217;s event queue. */
-KD_API const KDEvent *KD_APIENTRY kdWaitEvent(KDust timeout);
-
-/* kdSetEventUserptr: Set the userptr for global events. */
-KD_API void KD_APIENTRY kdSetEventUserptr(void *userptr);
-
-/* kdDefaultEvent: Perform default processing on an unrecognized event. */
-KD_API void KD_APIENTRY kdDefaultEvent(const KDEvent *event);
-
-/* kdPumpEvents: Pump the thread&#8217;s event queue, performing callbacks. */
-KD_API KDint KD_APIENTRY kdPumpEvents(void);
-
-/* kdInstallCallback: Install or remove a callback function for event processing. */
-typedef void (KD_APIENTRY KDCallbackFunc)(const KDEvent *event);
-KD_API KDint KD_APIENTRY kdInstallCallback(KDCallbackFunc *func, KDint eventtype, void *eventuserptr);
-
-/* kdCreateEvent: Create an event for posting. */
-KD_API KDEvent *KD_APIENTRY kdCreateEvent(void);
-
-/* kdPostEvent, kdPostThreadEvent: Post an event into a queue. */
-KD_API KDint KD_APIENTRY kdPostEvent(KDEvent *event);
-KD_API KDint KD_APIENTRY kdPostThreadEvent(KDEvent *event, KDThread *thread);
-typedef struct KDEventUser {
- union {
- KDint64 i64;
- void *p;
- struct {
- KDint32 a;
- KDint32 b;
- } i32pair;
- } value1;
- union {
- KDint64 i64;
- struct {
- union {
- KDint32 i32;
- void *p;
- } value2;
- union {
- KDint32 i32;
- void *p;
- } value3;
- } i32orp;
- } value23;
-} KDEventUser;
-
-/* kdFreeEvent: Abandon an event instead of posting it. */
-KD_API void KD_APIENTRY kdFreeEvent(KDEvent *event);
-
-/*******************************************************
- * System events
- *******************************************************/
-
-/* KD_EVENT_QUIT: Event to request to quit application. */
-#define KD_EVENT_QUIT 43
-
-/* KD_EVENT_PAUSE: Application pause event. */
-#define KD_EVENT_PAUSE 45
-
-/* KD_EVENT_RESUME: Application resume event. */
-#define KD_EVENT_RESUME 46
-
-/* KD_EVENT_ORIENTATION: Orientation change event. */
-#define KD_EVENT_ORIENTATION 48
-
-/* KD_IOGROUP_EVENT: I/O group for OpenKODE Core system events implemented as state values. */
-#define KD_IOGROUP_EVENT 0x100
-#define KD_STATE_EVENT_USING_BATTERY (KD_IOGROUP_EVENT + 0)
-#define KD_STATE_EVENT_LOW_BATTERY (KD_IOGROUP_EVENT + 1)
-
-
-/* KD_IOGROUP_ORIENTATION: I/O group for OpenKODE Core orientation state. */
-#define KD_IOGROUP_ORIENTATION 0x200
-#define KD_STATE_ORIENTATION_OVERALL (KD_IOGROUP_ORIENTATION + 0)
-#define KD_STATE_ORIENTATION_SCREEN (KD_IOGROUP_ORIENTATION + 1)
-#define KD_STATE_ORIENTATION_RENDERING (KD_IOGROUP_ORIENTATION + 2)
-#define KD_STATE_ORIENTATION_LOCKSURFACE (KD_IOGROUP_ORIENTATION + 3)
-
-
-/*******************************************************
- * Application startup and exit.
- *******************************************************/
-
-/* kdMain: The application-defined main function. */
-KDint KD_APIENTRY kdMain(KDint argc, const KDchar *const *argv);
-
-/* kdExit: Exit the application. */
-KD_API KD_NORETURN void KD_APIENTRY kdExit(KDint status);
-
-/*******************************************************
- * Utility library functions
- *******************************************************/
-
-/* kdAbs: Compute the absolute value of an integer. */
-KD_API KDint KD_APIENTRY kdAbs(KDint i);
-
-/* kdStrtof: Convert a string to a floating point number. */
-KD_API KDfloat32 KD_APIENTRY kdStrtof(const KDchar *s, KDchar **endptr);
-
-/* kdStrtol, kdStrtoul: Convert a string to an integer. */
-KD_API KDint KD_APIENTRY kdStrtol(const KDchar *s, KDchar **endptr, KDint base);
-KD_API KDuint KD_APIENTRY kdStrtoul(const KDchar *s, KDchar **endptr, KDint base);
-
-/* kdLtostr, kdUltostr: Convert an integer to a string. */
-#define KD_LTOSTR_MAXLEN ((sizeof(KDint)*8*3+6)/10+2)
-#define KD_ULTOSTR_MAXLEN ((sizeof(KDint)*8+2)/3+1)
-KD_API KDssize KD_APIENTRY kdLtostr(KDchar *buffer, KDsize buflen, KDint number);
-KD_API KDssize KD_APIENTRY kdUltostr(KDchar *buffer, KDsize buflen, KDuint number, KDint base);
-
-/* kdFtostr: Convert a float to a string. */
-#define KD_FTOSTR_MAXLEN 16
-KD_API KDssize KD_APIENTRY kdFtostr(KDchar *buffer, KDsize buflen, KDfloat32 number);
-
-/* kdCryptoRandom: Return random data. */
-KD_API KDint KD_APIENTRY kdCryptoRandom(KDuint8 *buf, KDsize buflen);
-
-/*******************************************************
- * Locale specific functions
- *******************************************************/
-
-/* kdGetLocale: Determine the current language and locale. */
-KD_API const KDchar *KD_APIENTRY kdGetLocale(void);
-
-/*******************************************************
- * Memory allocation
- *******************************************************/
-
-/* kdMalloc: Allocate memory. */
-KD_API void *KD_APIENTRY kdMalloc(KDsize size);
-
-/* kdFree: Free allocated memory block. */
-KD_API void KD_APIENTRY kdFree(void *ptr);
-
-/* kdRealloc: Resize memory block. */
-KD_API void *KD_APIENTRY kdRealloc(void *ptr, KDsize size);
-
-/*******************************************************
- * Thread-local storage.
- *******************************************************/
-
-/* kdGetTLS: Get the thread-local storage pointer. */
-KD_API void *KD_APIENTRY kdGetTLS(void);
-
-/* kdSetTLS: Set the thread-local storage pointer. */
-KD_API void KD_APIENTRY kdSetTLS(void *ptr);
-
-/*******************************************************
- * Mathematical functions
- *******************************************************/
-#define KD_E_F 2.71828175F
-#define KD_PI_F 3.14159274F
-#define KD_PI_2_F 1.57079637F
-#define KD_2PI_F 6.28318548F
-#define KD_LOG2E_F 1.44269502F
-#define KD_LOG10E_F 0.434294492F
-#define KD_LN2_F 0.693147182F
-#define KD_LN10_F 2.30258512F
-#define KD_PI_4_F 0.785398185F
-#define KD_1_PI_F 0.318309873F
-#define KD_2_PI_F 0.636619747F
-#define KD_2_SQRTPI_F 1.12837923F
-#define KD_SQRT2_F 1.41421354F
-#define KD_SQRT1_2_F 0.707106769F
-#define KD_FLT_EPSILON 1.19209290E-07F
-#define KD_FLT_MAX 3.40282346638528860e+38F
-#define KD_FLT_MIN 1.17549435e-38F
-/* KD_INFINITY is defined in kdplatform.h since no portable definition
- * is possible. */
-#define kdIsNan(x) (((x) != (x)) ? 1 : 0)
-#define KD_HUGE_VALF KD_INFINITY
-#define KD_DEG_TO_RAD_F 0.0174532924F
-#define KD_RAD_TO_DEG_F 57.2957802F
-
-/* kdAcosf: Arc cosine function. */
-KD_API KDfloat32 KD_APIENTRY kdAcosf(KDfloat32 x);
-
-/* kdAsinf: Arc sine function. */
-KD_API KDfloat32 KD_APIENTRY kdAsinf(KDfloat32 x);
-
-/* kdAtanf: Arc tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdAtanf(KDfloat32 x);
-
-/* kdAtan2f: Arc tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdAtan2f(KDfloat32 y, KDfloat32 x);
-
-/* kdCosf: Cosine function. */
-KD_API KDfloat32 KD_APIENTRY kdCosf(KDfloat32 x);
-
-/* kdSinf: Sine function. */
-KD_API KDfloat32 KD_APIENTRY kdSinf(KDfloat32 x);
-
-/* kdTanf: Tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdTanf(KDfloat32 x);
-
-/* kdExpf: Exponential function. */
-KD_API KDfloat32 KD_APIENTRY kdExpf(KDfloat32 x);
-
-/* kdLogf: Natural logarithm function. */
-KD_API KDfloat32 KD_APIENTRY kdLogf(KDfloat32 x);
-
-/* kdFabsf: Absolute value. */
-KD_API KDfloat32 KD_APIENTRY kdFabsf(KDfloat32 x);
-
-/* kdPowf: Power function. */
-KD_API KDfloat32 KD_APIENTRY kdPowf(KDfloat32 x, KDfloat32 y);
-
-/* kdSqrtf: Square root function. */
-KD_API KDfloat32 KD_APIENTRY kdSqrtf(KDfloat32 x);
-
-/* kdCeilf: Return ceiling value. */
-KD_API KDfloat32 KD_APIENTRY kdCeilf(KDfloat32 x);
-
-/* kdFloorf: Return floor value. */
-KD_API KDfloat32 KD_APIENTRY kdFloorf(KDfloat32 x);
-
-/* kdRoundf: Round value to nearest integer. */
-KD_API KDfloat32 KD_APIENTRY kdRoundf(KDfloat32 x);
-
-/* kdInvsqrtf: Inverse square root function. */
-KD_API KDfloat32 KD_APIENTRY kdInvsqrtf(KDfloat32 x);
-
-/* kdFmodf: Calculate floating point remainder. */
-KD_API KDfloat32 KD_APIENTRY kdFmodf(KDfloat32 x, KDfloat32 y);
-
-/*******************************************************
- * String and memory functions
- *******************************************************/
-
-/* kdMemchr: Scan memory for a byte value. */
-KD_API void *KD_APIENTRY kdMemchr(const void *src, KDint byte, KDsize len);
-
-/* kdMemcmp: Compare two memory regions. */
-KD_API KDint KD_APIENTRY kdMemcmp(const void *src1, const void *src2, KDsize len);
-
-/* kdMemcpy: Copy a memory region, no overlapping. */
-KD_API void *KD_APIENTRY kdMemcpy(void *buf, const void *src, KDsize len);
-
-/* kdMemmove: Copy a memory region, overlapping allowed. */
-KD_API void *KD_APIENTRY kdMemmove(void *buf, const void *src, KDsize len);
-
-/* kdMemset: Set bytes in memory to a value. */
-KD_API void *KD_APIENTRY kdMemset(void *buf, KDint byte, KDsize len);
-
-/* kdStrchr: Scan string for a byte value. */
-KD_API KDchar *KD_APIENTRY kdStrchr(const KDchar *str, KDint ch);
-
-/* kdStrcmp: Compares two strings. */
-KD_API KDint KD_APIENTRY kdStrcmp(const KDchar *str1, const KDchar *str2);
-
-/* kdStrlen: Determine the length of a string. */
-KD_API KDsize KD_APIENTRY kdStrlen(const KDchar *str);
-
-/* kdStrnlen: Determine the length of a string. */
-KD_API KDsize KD_APIENTRY kdStrnlen(const KDchar *str, KDsize maxlen);
-
-/* kdStrncat_s: Concatenate two strings. */
-KD_API KDint KD_APIENTRY kdStrncat_s(KDchar *buf, KDsize buflen, const KDchar *src, KDsize srcmaxlen);
-
-/* kdStrncmp: Compares two strings with length limit. */
-KD_API KDint KD_APIENTRY kdStrncmp(const KDchar *str1, const KDchar *str2, KDsize maxlen);
-
-/* kdStrcpy_s: Copy a string with an overrun check. */
-KD_API KDint KD_APIENTRY kdStrcpy_s(KDchar *buf, KDsize buflen, const KDchar *src);
-
-/* kdStrncpy_s: Copy a string with an overrun check. */
-KD_API KDint KD_APIENTRY kdStrncpy_s(KDchar *buf, KDsize buflen, const KDchar *src, KDsize srclen);
-
-/*******************************************************
- * Time functions
- *******************************************************/
-
-/* kdGetTimeUST: Get the current unadjusted system time. */
-KD_API KDust KD_APIENTRY kdGetTimeUST(void);
-
-/* kdTime: Get the current wall clock time. */
-KD_API KDtime KD_APIENTRY kdTime(KDtime *timep);
-
-/* kdGmtime_r, kdLocaltime_r: Convert a seconds-since-epoch time into broken-down time. */
-typedef struct KDTm {
- KDint32 tm_sec;
- KDint32 tm_min;
- KDint32 tm_hour;
- KDint32 tm_mday;
- KDint32 tm_mon;
- KDint32 tm_year;
- KDint32 tm_wday;
- KDint32 tm_yday;
-} KDTm;
-KD_API KDTm *KD_APIENTRY kdGmtime_r(const KDtime *timep, KDTm *result);
-KD_API KDTm *KD_APIENTRY kdLocaltime_r(const KDtime *timep, KDTm *result);
-
-/* kdUSTAtEpoch: Get the UST corresponding to KDtime 0. */
-KD_API KDust KD_APIENTRY kdUSTAtEpoch(void);
-
-/*******************************************************
- * Timer functions
- *******************************************************/
-
-/* kdSetTimer: Set timer. */
-#define KD_TIMER_ONESHOT 61
-#define KD_TIMER_PERIODIC_AVERAGE 62
-#define KD_TIMER_PERIODIC_MINIMUM 63
-typedef struct KDTimer KDTimer;
-KD_API KDTimer *KD_APIENTRY kdSetTimer(KDint64 interval, KDint periodic, void *eventuserptr);
-
-/* kdCancelTimer: Cancel and free a timer. */
-KD_API KDint KD_APIENTRY kdCancelTimer(KDTimer *timer);
-
-/* KD_EVENT_TIMER: Timer fire event. */
-#define KD_EVENT_TIMER 42
-
-/*******************************************************
- * File system
- *******************************************************/
-#define KD_EOF (-1)
-
-/* kdFopen: Open a file from the file system. */
-typedef struct KDFile KDFile;
-KD_API KDFile *KD_APIENTRY kdFopen(const KDchar *pathname, const KDchar *mode);
-
-/* kdFclose: Close an open file. */
-KD_API KDint KD_APIENTRY kdFclose(KDFile *file);
-
-/* kdFflush: Flush an open file. */
-KD_API KDint KD_APIENTRY kdFflush(KDFile *file);
-
-/* kdFread: Read from a file. */
-KD_API KDsize KD_APIENTRY kdFread(void *buffer, KDsize size, KDsize count, KDFile *file);
-
-/* kdFwrite: Write to a file. */
-KD_API KDsize KD_APIENTRY kdFwrite(const void *buffer, KDsize size, KDsize count, KDFile *file);
-
-/* kdGetc: Read next byte from an open file. */
-KD_API KDint KD_APIENTRY kdGetc(KDFile *file);
-
-/* kdPutc: Write a byte to an open file. */
-KD_API KDint KD_APIENTRY kdPutc(KDint c, KDFile *file);
-
-/* kdFgets: Read a line of text from an open file. */
-KD_API KDchar *KD_APIENTRY kdFgets(KDchar *buffer, KDsize buflen, KDFile *file);
-
-/* kdFEOF: Check for end of file. */
-KD_API KDint KD_APIENTRY kdFEOF(KDFile *file);
-
-/* kdFerror: Check for an error condition on an open file. */
-KD_API KDint KD_APIENTRY kdFerror(KDFile *file);
-
-/* kdClearerr: Clear a file&#8217;s error and end-of-file indicators. */
-KD_API void KD_APIENTRY kdClearerr(KDFile *file);
-
-/* kdFseek: Reposition the file position indicator in a file. */
-typedef enum {
- KD_SEEK_SET = 0,
- KD_SEEK_CUR = 1,
- KD_SEEK_END = 2
-} KDfileSeekOrigin;
-KD_API KDint KD_APIENTRY kdFseek(KDFile *file, KDoff offset, KDfileSeekOrigin origin);
-
-/* kdFtell: Get the file position of an open file. */
-KD_API KDoff KD_APIENTRY kdFtell(KDFile *file);
-
-/* kdMkdir: Create new directory. */
-KD_API KDint KD_APIENTRY kdMkdir(const KDchar *pathname);
-
-/* kdRmdir: Delete a directory. */
-KD_API KDint KD_APIENTRY kdRmdir(const KDchar *pathname);
-
-/* kdRename: Rename a file. */
-KD_API KDint KD_APIENTRY kdRename(const KDchar *src, const KDchar *dest);
-
-/* kdRemove: Delete a file. */
-KD_API KDint KD_APIENTRY kdRemove(const KDchar *pathname);
-
-/* kdTruncate: Truncate or extend a file. */
-KD_API KDint KD_APIENTRY kdTruncate(const KDchar *pathname, KDoff length);
-
-/* kdStat, kdFstat: Return information about a file. */
-typedef struct KDStat {
- KDmode st_mode;
- KDoff st_size;
- KDtime st_mtime;
-} KDStat;
-KD_API KDint KD_APIENTRY kdStat(const KDchar *pathname, struct KDStat *buf);
-KD_API KDint KD_APIENTRY kdFstat(KDFile *file, struct KDStat *buf);
-#define KD_ISREG(m) ((m) & 0x8000)
-#define KD_ISDIR(m) ((m) & 0x4000)
-
-/* kdAccess: Determine whether the application can access a file or directory. */
-KD_API KDint KD_APIENTRY kdAccess(const KDchar *pathname, KDint amode);
-#define KD_R_OK 4
-#define KD_W_OK 2
-#define KD_X_OK 1
-
-/* kdOpenDir: Open a directory ready for listing. */
-typedef struct KDDir KDDir;
-KD_API KDDir *KD_APIENTRY kdOpenDir(const KDchar *pathname);
-
-/* kdReadDir: Return the next file in a directory. */
-typedef struct KDDirent {
- const KDchar *d_name;
-} KDDirent;
-KD_API KDDirent *KD_APIENTRY kdReadDir(KDDir *dir);
-
-/* kdCloseDir: Close a directory. */
-KD_API KDint KD_APIENTRY kdCloseDir(KDDir *dir);
-
-/* kdGetFree: Get free space on a drive. */
-KD_API KDoff KD_APIENTRY kdGetFree(const KDchar *pathname);
-
-/*******************************************************
- * Network sockets
- *******************************************************/
-
-/* KDSockaddr: Struct type for socket address. */
-typedef struct KDSockaddr {
- KDuint16 family;
- union {
-#define KD_AF_INET 70
- struct {
- KDuint16 port;
- KDuint32 address;
- } sin;
- } data;
-} KDSockaddr;
-
-/* kdNameLookup: Look up a hostname. */
-KD_API KDint KD_APIENTRY kdNameLookup(KDint af, const KDchar *hostname, void *eventuserptr);
-
-/* kdNameLookupCancel: Selectively cancels ongoing kdNameLookup operations. */
-KD_API void KD_APIENTRY kdNameLookupCancel(void *eventuserptr);
-
-/* kdSocketCreate: Creates a socket. */
-typedef struct KDSocket KDSocket;
-KD_API KDSocket *KD_APIENTRY kdSocketCreate(KDint type, void *eventuserptr);
-#define KD_SOCK_TCP 64
-#define KD_SOCK_UDP 65
-
-/* kdSocketClose: Closes a socket. */
-KD_API KDint KD_APIENTRY kdSocketClose(KDSocket *socket);
-
-/* kdSocketBind: Bind a socket. */
-KD_API KDint KD_APIENTRY kdSocketBind(KDSocket *socket, const struct KDSockaddr *addr, KDboolean reuse);
-#define KD_INADDR_ANY 0
-
-/* kdSocketGetName: Get the local address of a socket. */
-KD_API KDint KD_APIENTRY kdSocketGetName(KDSocket *socket, struct KDSockaddr *addr);
-
-/* kdSocketConnect: Connects a socket. */
-KD_API KDint KD_APIENTRY kdSocketConnect(KDSocket *socket, const KDSockaddr *addr);
-
-/* kdSocketListen: Listen on a socket. */
-KD_API KDint KD_APIENTRY kdSocketListen(KDSocket *socket, KDint backlog);
-
-/* kdSocketAccept: Accept an incoming connection. */
-KD_API KDSocket *KD_APIENTRY kdSocketAccept(KDSocket *socket, KDSockaddr *addr, void *eventuserptr);
-
-/* kdSocketSend, kdSocketSendTo: Send data to a socket. */
-KD_API KDint KD_APIENTRY kdSocketSend(KDSocket *socket, const void *buf, KDint len);
-KD_API KDint KD_APIENTRY kdSocketSendTo(KDSocket *socket, const void *buf, KDint len, const KDSockaddr *addr);
-
-/* kdSocketRecv, kdSocketRecvFrom: Receive data from a socket. */
-KD_API KDint KD_APIENTRY kdSocketRecv(KDSocket *socket, void *buf, KDint len);
-KD_API KDint KD_APIENTRY kdSocketRecvFrom(KDSocket *socket, void *buf, KDint len, KDSockaddr *addr);
-
-/* kdHtonl: Convert a 32-bit integer from host to network byte order. */
-KD_API KDuint32 KD_APIENTRY kdHtonl(KDuint32 hostlong);
-
-/* kdHtons: Convert a 16-bit integer from host to network byte order. */
-KD_API KDuint16 KD_APIENTRY kdHtons(KDuint16 hostshort);
-
-/* kdNtohl: Convert a 32-bit integer from network to host byte order. */
-KD_API KDuint32 KD_APIENTRY kdNtohl(KDuint32 netlong);
-
-/* kdNtohs: Convert a 16-bit integer from network to host byte order. */
-KD_API KDuint16 KD_APIENTRY kdNtohs(KDuint16 netshort);
-
-/* kdInetAton: Convert a &#8220;dotted quad&#8221; format address to an integer. */
-KD_API KDint KD_APIENTRY kdInetAton(const KDchar *cp, KDuint32 *inp);
-
-/* kdInetNtop: Convert a network address to textual form. */
-#define KD_INET_ADDRSTRLEN 16
-typedef struct KDInAddr {
- KDuint32 s_address; // Renamed this from s_addr as it causes a conflict with winsock2.h
-} KDInAddr;
-KD_API const KDchar *KD_APIENTRY kdInetNtop(KDuint af, const void *src, KDchar *dst, KDsize cnt);
-
-/* KD_EVENT_SOCKET_READABLE: Event to indicate that a socket is readable. */
-#define KD_EVENT_SOCKET_READABLE 49
-typedef struct KDEventSocketReadable {
- KDSocket *socket;
-} KDEventSocketReadable;
-
-/* KD_EVENT_SOCKET_WRITABLE: Event to indicate that a socket is writable. */
-#define KD_EVENT_SOCKET_WRITABLE 50
-typedef struct KDEventSocketWritable {
- KDSocket *socket;
-} KDEventSocketWritable;
-
-/* KD_EVENT_SOCKET_CONNECT_COMPLETE: Event generated when a socket connect is complete */
-#define KD_EVENT_SOCKET_CONNECT_COMPLETE 51
-typedef struct KDEventSocketConnect {
- KDSocket *socket;
- KDint32 error;
-} KDEventSocketConnect;
-
-/* KD_EVENT_SOCKET_INCOMING: Event generated when a listening socket detects an incoming connection or an error. */
-#define KD_EVENT_SOCKET_INCOMING 52
-typedef struct KDEventSocketIncoming {
- KDSocket *socket;
-} KDEventSocketIncoming;
-
-/* KD_EVENT_NAME_LOOKUP_COMPLETE: kdNameLookup complete event. */
-#define KD_EVENT_NAME_LOOKUP_COMPLETE 53
-typedef struct KDEventNameLookup {
- KDint32 error;
- KDint32 resultlen;
- const KDSockaddr *result;
- KDboolean more;
-} KDEventNameLookup;
-
-/*******************************************************
- * Input/output
- *******************************************************/
-
-/* KD_EVENT_STATE: State changed event. */
-#define KD_EVENT_STATE 55
-
-typedef struct KDEventState {
- KDint32 index;
- union {
- KDint32 i;
- KDint64 l;
- KDfloat32 f;
- } value;
-} KDEventState;
-
-/* KD_EVENT_INPUT: Input changed event. */
-#define KD_EVENT_INPUT 56
-
-typedef struct KDEventInput {
- KDint32 index;
- union {
- KDint32 i;
- KDint64 l;
- KDfloat32 f;
- } value;
-} KDEventInput;
-
-/* KD_EVENT_INPUT_JOG: Jogdial jog event. */
-#define KD_EVENT_INPUT_JOG 71
-typedef struct KDEventInputJog {
- KDint32 index;
- KDint32 count;
-} KDEventInputJog;
-
-/* KD_EVENT_INPUT_POINTER: Pointer input changed event. */
-#define KD_EVENT_INPUT_POINTER 57
-typedef struct KDEventInputPointer {
- KDint32 index;
- KDint32 select;
- KDint32 x;
- KDint32 y;
-} KDEventInputPointer;
-
-/* KD_EVENT_INPUT_STICK: Joystick stick changed event. */
-#define KD_EVENT_INPUT_STICK 58
-typedef struct KDEventInputStick {
- KDint32 index;
- KDint32 x;
- KDint32 y;
- KDint32 z;
-} KDEventInputStick;
-
-/* kdStateGeti, kdStateGetl, kdStateGetf: get state value(s) */
-KD_API KDint KD_APIENTRY kdStateGeti(KDint startidx, KDuint numidxs, KDint32 *buffer);
-KD_API KDint KD_APIENTRY kdStateGetl(KDint startidx, KDuint numidxs, KDint64 *buffer);
-KD_API KDint KD_APIENTRY kdStateGetf(KDint startidx, KDuint numidxs, KDfloat32 *buffer);
-
-/* kdOutputSeti, kdOutputSetf: set outputs */
-KD_API KDint KD_APIENTRY kdOutputSeti(KDint startidx, KDuint numidxs, const KDint32 *buffer);
-KD_API KDint KD_APIENTRY kdOutputSetf(KDint startidx, KDuint numidxs, const KDfloat32 *buffer);
-#define KD_IO_CONTROLLER_STRIDE 64
-
-/* KD_IOGROUP_GAMEKEYS: I/O group for game keys. */
-#define KD_IOGROUP_GAMEKEYS 0x1000
-#define KD_STATE_GAMEKEYS_AVAILABILITY (KD_IOGROUP_GAMEKEYS + 0)
-#define KD_INPUT_GAMEKEYS_UP (KD_IOGROUP_GAMEKEYS + 1)
-#define KD_INPUT_GAMEKEYS_LEFT (KD_IOGROUP_GAMEKEYS + 2)
-#define KD_INPUT_GAMEKEYS_RIGHT (KD_IOGROUP_GAMEKEYS + 3)
-#define KD_INPUT_GAMEKEYS_DOWN (KD_IOGROUP_GAMEKEYS + 4)
-#define KD_INPUT_GAMEKEYS_FIRE (KD_IOGROUP_GAMEKEYS + 5)
-#define KD_INPUT_GAMEKEYS_A (KD_IOGROUP_GAMEKEYS + 6)
-#define KD_INPUT_GAMEKEYS_B (KD_IOGROUP_GAMEKEYS + 7)
-#define KD_INPUT_GAMEKEYS_C (KD_IOGROUP_GAMEKEYS + 8)
-#define KD_INPUT_GAMEKEYS_D (KD_IOGROUP_GAMEKEYS + 9)
-
-/* KD_IOGROUP_GAMEKEYSNC: I/O group for game keys, no chording. */
-#define KD_IOGROUP_GAMEKEYSNC 0x1100
-#define KD_STATE_GAMEKEYSNC_AVAILABILITY (KD_IOGROUP_GAMEKEYSNC + 0)
-#define KD_INPUT_GAMEKEYSNC_UP (KD_IOGROUP_GAMEKEYSNC + 1)
-#define KD_INPUT_GAMEKEYSNC_LEFT (KD_IOGROUP_GAMEKEYSNC + 2)
-#define KD_INPUT_GAMEKEYSNC_RIGHT (KD_IOGROUP_GAMEKEYSNC + 3)
-#define KD_INPUT_GAMEKEYSNC_DOWN (KD_IOGROUP_GAMEKEYSNC + 4)
-#define KD_INPUT_GAMEKEYSNC_FIRE (KD_IOGROUP_GAMEKEYSNC + 5)
-#define KD_INPUT_GAMEKEYSNC_A (KD_IOGROUP_GAMEKEYSNC + 6)
-#define KD_INPUT_GAMEKEYSNC_B (KD_IOGROUP_GAMEKEYSNC + 7)
-#define KD_INPUT_GAMEKEYSNC_C (KD_IOGROUP_GAMEKEYSNC + 8)
-#define KD_INPUT_GAMEKEYSNC_D (KD_IOGROUP_GAMEKEYSNC + 9)
-
-/* KD_IOGROUP_PHONEKEYPAD: I/O group for phone keypad. */
-#define KD_IOGROUP_PHONEKEYPAD 0x2000
-#define KD_STATE_PHONEKEYPAD_AVAILABILITY (KD_IOGROUP_PHONEKEYPAD + 0)
-#define KD_INPUT_PHONEKEYPAD_0 (KD_IOGROUP_PHONEKEYPAD + 1)
-#define KD_INPUT_PHONEKEYPAD_1 (KD_IOGROUP_PHONEKEYPAD + 2)
-#define KD_INPUT_PHONEKEYPAD_2 (KD_IOGROUP_PHONEKEYPAD + 3)
-#define KD_INPUT_PHONEKEYPAD_3 (KD_IOGROUP_PHONEKEYPAD + 4)
-#define KD_INPUT_PHONEKEYPAD_4 (KD_IOGROUP_PHONEKEYPAD + 5)
-#define KD_INPUT_PHONEKEYPAD_5 (KD_IOGROUP_PHONEKEYPAD + 6)
-#define KD_INPUT_PHONEKEYPAD_6 (KD_IOGROUP_PHONEKEYPAD + 7)
-#define KD_INPUT_PHONEKEYPAD_7 (KD_IOGROUP_PHONEKEYPAD + 8)
-#define KD_INPUT_PHONEKEYPAD_8 (KD_IOGROUP_PHONEKEYPAD + 9)
-#define KD_INPUT_PHONEKEYPAD_9 (KD_IOGROUP_PHONEKEYPAD + 10)
-#define KD_INPUT_PHONEKEYPAD_STAR (KD_IOGROUP_PHONEKEYPAD + 11)
-#define KD_INPUT_PHONEKEYPAD_HASH (KD_IOGROUP_PHONEKEYPAD + 12)
-#define KD_INPUT_PHONEKEYPAD_LEFTSOFT (KD_IOGROUP_PHONEKEYPAD + 13)
-#define KD_INPUT_PHONEKEYPAD_RIGHTSOFT (KD_IOGROUP_PHONEKEYPAD + 14)
-#define KD_STATE_PHONEKEYPAD_ORIENTATION (KD_IOGROUP_PHONEKEYPAD + 15)
-
-/* KD_IOGROUP_VIBRATE: I/O group for vibrate. */
-#define KD_IOGROUP_VIBRATE 0x3000
-#define KD_STATE_VIBRATE_AVAILABILITY (KD_IOGROUP_VIBRATE + 0)
-#define KD_STATE_VIBRATE_MINFREQUENCY (KD_IOGROUP_VIBRATE + 1)
-#define KD_STATE_VIBRATE_MAXFREQUENCY (KD_IOGROUP_VIBRATE + 2)
-#define KD_OUTPUT_VIBRATE_VOLUME (KD_IOGROUP_VIBRATE + 3)
-#define KD_OUTPUT_VIBRATE_FREQUENCY (KD_IOGROUP_VIBRATE + 4)
-
-/* KD_IOGROUP_POINTER: I/O group for pointer. */
-#define KD_IOGROUP_POINTER 0x4000
-#define KD_STATE_POINTER_AVAILABILITY (KD_IOGROUP_POINTER + 0)
-#define KD_INPUT_POINTER_X (KD_IOGROUP_POINTER + 1)
-#define KD_INPUT_POINTER_Y (KD_IOGROUP_POINTER + 2)
-#define KD_INPUT_POINTER_SELECT (KD_IOGROUP_POINTER + 3)
-
-/* KD_IOGROUP_BACKLIGHT: I/O group for backlight. */
-#define KD_IOGROUP_BACKLIGHT 0x5000
-#define KD_STATE_BACKLIGHT_AVAILABILITY (KD_IOGROUP_BACKLIGHT + 0)
-#define KD_OUTPUT_BACKLIGHT_FORCE (KD_IOGROUP_BACKLIGHT + 1)
-
-/* KD_IOGROUP_JOGDIAL: I/O group for a jog dial. */
-#define KD_IOGROUP_JOGDIAL 0x6000
-#define KD_STATE_JOGDIAL_AVAILABILITY (KD_IOGROUP_JOGDIAL + 0)
-#define KD_INPUT_JOGDIAL_UP (KD_IOGROUP_JOGDIAL + 1)
-#define KD_INPUT_JOGDIAL_LEFT (KD_IOGROUP_JOGDIAL + 2)
-#define KD_INPUT_JOGDIAL_RIGHT (KD_IOGROUP_JOGDIAL + 3)
-#define KD_INPUT_JOGDIAL_DOWN (KD_IOGROUP_JOGDIAL + 4)
-#define KD_INPUT_JOGDIAL_SELECT (KD_IOGROUP_JOGDIAL + 5)
-
-/* KD_IOGROUP_STICK: I/O group for joystick. */
-#define KD_IOGROUP_STICK 0x7000
-#define KD_STATE_STICK_AVAILABILITY (KD_IOGROUP_STICK + 0)
-#define KD_INPUT_STICK_X (KD_IOGROUP_STICK + 1)
-#define KD_INPUT_STICK_Y (KD_IOGROUP_STICK + 2)
-#define KD_INPUT_STICK_Z (KD_IOGROUP_STICK + 3)
-#define KD_INPUT_STICK_BUTTON (KD_IOGROUP_STICK + 4)
-#define KD_IO_STICK_STRIDE 8
-
-/* KD_IOGROUP_DPAD: I/O group for D-pad. */
-#define KD_IOGROUP_DPAD 0x8000
-#define KD_STATE_DPAD_AVAILABILITY (KD_IOGROUP_DPAD + 0)
-#define KD_STATE_DPAD_COPY (KD_IOGROUP_DPAD + 1)
-#define KD_INPUT_DPAD_UP (KD_IOGROUP_DPAD + 2)
-#define KD_INPUT_DPAD_LEFT (KD_IOGROUP_DPAD + 3)
-#define KD_INPUT_DPAD_RIGHT (KD_IOGROUP_DPAD + 4)
-#define KD_INPUT_DPAD_DOWN (KD_IOGROUP_DPAD + 5)
-#define KD_INPUT_DPAD_SELECT (KD_IOGROUP_DPAD + 6)
-#define KD_IO_DPAD_STRIDE 8
-
-/* KD_IOGROUP_BUTTONS: I/O group for buttons associated with joystick or D-pad. */
-#define KD_IOGROUP_BUTTONS 0x9000
-#define KD_STATE_BUTTONS_AVAILABILITY (KD_IOGROUP_BUTTONS + 0)
-#define KD_INPUT_BUTTONS_0 (KD_IOGROUP_BUTTONS + 1)
-
-/* KD_IO_UNDEFINED: I/O items reserved for implementation-dependent use. */
-#define KD_IO_UNDEFINED 0x40000000
-
-/*******************************************************
- * Windowing
- *******************************************************/
-#ifdef KD_WINDOW_SUPPORTED
-#include <EGL/egl.h>
-typedef struct KDWindow KDWindow;
-
-/* kdCreateWindow: Create a window. */
-KD_API KDWindow *KD_APIENTRY kdCreateWindow(EGLDisplay display, EGLConfig config, void *eventuserptr);
-
-/* kdDestroyWindow: Destroy a window. */
-KD_API KDint KD_APIENTRY kdDestroyWindow(KDWindow *window);
-
-/* kdSetWindowPropertybv, kdSetWindowPropertyiv, kdSetWindowPropertycv: Set a window property to request a change in the on-screen representation of the window. */
-KD_API KDint KD_APIENTRY kdSetWindowPropertybv(KDWindow *window, KDint pname, const KDboolean *param);
-KD_API KDint KD_APIENTRY kdSetWindowPropertyiv(KDWindow *window, KDint pname, const KDint32 *param);
-KD_API KDint KD_APIENTRY kdSetWindowPropertycv(KDWindow *window, KDint pname, const KDchar *param);
-
-/* kdGetWindowPropertybv, kdGetWindowPropertyiv, kdGetWindowPropertycv: Get the current value of a window property. */
-KD_API KDint KD_APIENTRY kdGetWindowPropertybv(KDWindow *window, KDint pname, KDboolean *param);
-KD_API KDint KD_APIENTRY kdGetWindowPropertyiv(KDWindow *window, KDint pname, KDint32 *param);
-KD_API KDint KD_APIENTRY kdGetWindowPropertycv(KDWindow *window, KDint pname, KDchar *param, KDsize *size);
-
-/* kdRealizeWindow: Realize the window as a displayable entity and get the native window handle for passing to EGL. */
-KD_API KDint KD_APIENTRY kdRealizeWindow(KDWindow *window, EGLNativeWindowType *nativewindow);
-
-/* KD_WINDOWPROPERTY_SIZE: Window client area width and height. */
-#define KD_WINDOWPROPERTY_SIZE 66
-
-/* KD_WINDOWPROPERTY_VISIBILITY: Window visibility status. */
-#define KD_WINDOWPROPERTY_VISIBILITY 67
-
-/* KD_WINDOWPROPERTY_FOCUS: Window input focus status. */
-#define KD_WINDOWPROPERTY_FOCUS 68
-
-/* KD_WINDOWPROPERTY_CAPTION: Window caption. */
-#define KD_WINDOWPROPERTY_CAPTION 69
-
-/* KD_EVENT_WINDOW_CLOSE: Event to request to close window. */
-#define KD_EVENT_WINDOW_CLOSE 44
-
-/* KD_EVENT_WINDOWPROPERTY_CHANGE: Notification about realized window property change. */
-#define KD_EVENT_WINDOWPROPERTY_CHANGE 47
-typedef struct KDEventWindowProperty {
- KDint32 pname;
-} KDEventWindowProperty;
-
-/* KD_EVENT_WINDOW_FOCUS: Event for change of window&#8217;s focus state. */
-#define KD_EVENT_WINDOW_FOCUS 60
-typedef struct KDEventWindowFocus {
- KDint32 focusstate;
-} KDEventWindowFocus;
-
-/* KD_EVENT_WINDOW_REDRAW: Event to notify need to redraw the window. */
-#define KD_EVENT_WINDOW_REDRAW 59
-#endif /* KD_WINDOW_SUPPORTED */
-
-/*******************************************************
- * Assertions and logging
- *******************************************************/
-
-/* kdHandleAssertion: Handle assertion failure. */
-KD_API void KD_APIENTRY kdHandleAssertion(const KDchar *condition, const KDchar *filename, KDint linenumber);
-
-/* kdLogMessage: Output a log message. */
-#ifdef KD_NDEBUG
-#define kdLogMessage(s)
-#else
-KD_API void KD_APIENTRY kdLogMessage(const KDchar *string);
-#endif
-
-/* struct KDEvent delayed to the end as it uses event data structs from
- * other parts of the .h file. */
-struct KDEvent {
- KDust timestamp;
- KDint32 type;
- void *userptr;
- union KDEventData {
- KDEventState state;
- KDEventInput input;
- KDEventInputJog inputjog;
- KDEventInputPointer inputpointer;
- KDEventInputStick inputstick;
- KDEventSocketReadable socketreadable;
- KDEventSocketWritable socketwritable;
- KDEventSocketConnect socketconnect;
- KDEventSocketIncoming socketincoming;
- KDEventNameLookup namelookup;
-#ifdef KD_WINDOW_SUPPORTED
- KDEventWindowProperty windowproperty;
- KDEventWindowFocus windowfocus;
-#endif /* KD_WINDOW_SUPPORTED */
- KDEventUser user;
- } data;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_h_ */
-
diff --git a/src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/kdplatform.h b/src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/kdplatform.h
deleted file mode 100644
index 3cf09f52..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Linux/PlatformLibs/KD/kdplatform.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/* Sample KD/kdplatform.h for OpenKODE Core 1.0.3 */
-#ifndef __kdplatform_h_
-#define __kdplatform_h_
-
-#define KD_API
-#define KD_APIENTRY
-
-typedef int KDint32;
-typedef unsigned int KDuint32;
-typedef long long KDint64;
-typedef unsigned long long KDuint64;
-typedef short KDint16;
-typedef unsigned short KDuint16;
-typedef unsigned long KDuintptr;
-typedef unsigned long KDsize;
-typedef long KDssize;
-#define KDINT_MIN (-0x7fffffff-1)
-#define KDINT_MAX 0x7fffffff
-#define KDUINT_MAX 0xffffffffU
-#define KDINT64_MIN (-0x7fffffffffffffffLL-1)
-#define KDINT64_MAX 0x7fffffffffffffffLL
-#define KDUINT64_MAX 0xffffffffffffffffULL
-#define KDSSIZE_MIN (-0x7fffffff-1)
-#define KDSSIZE_MAX 0x7fffffff
-#define KDSIZE_MAX 0xffffffffU
-#define KDUINTPTR_MAX 0xffffffffU
-#define KD_NORETURN
-#define KD_WINDOW_SUPPORTED
-#ifdef KD_NDEBUG
-#define kdAssert(c)
-#else
-#define kdAssert(c) ((void)( (c) ? 0 : (kdHandleAssertion(#c, __FILE__, __LINE__), 0)))
-#endif
-
-#define KD_INFINITY_BITS 0x7f800000u
-#define KD_INFINITY (kdBitsToFloatNV(KD_INFINITY_BITS))
-
-KD_API float KD_APIENTRY kdBitsToFloatNV(KDuint32 x);
-
-
-/** KHR_formatted extension */
-#include <stdarg.h>
-typedef va_list KDVaListKHR;
-
-// If there are problems with including stdarg.h here under any of the Windows
-// operating systems, we might want to change it back to using char* instead of
-// va_list
-//typedef char *KDVaListKHR;
-
-
-#define KD_VA_START_KHR(ap, parmN) \
- do {ap = (KDVaListKHR)&parmN + sizeof(parmN);} while(0)
-
-#define KD_VA_ARG_CHAR_KHR(ap) (KDchar)va_arg(ap, KDint)
-#define KD_VA_ARG_CHARPTR_KHR(ap) (KDchar*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_INT16_KHR(ap) (KDint16)va_arg(ap, KDint)
-#define KD_VA_ARG_INT32_KHR(ap) va_arg(ap, KDint32)
-#define KD_VA_ARG_INT_KHR(ap) va_arg(ap, KDint)
-#define KD_VA_ARG_INT64_KHR(ap) va_arg(ap, KDint64)
-#define KD_VA_ARG_INTPTR_KHR(ap) (KDint*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_INT16PTR_KHR(ap) (KDint16*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_FLOAT32_KHR(ap) (KDfloat32)(va_arg(ap, double))
-#define KD_VA_ARG_PTR_KHR(ap) (void *)va_arg(ap, char *)
-
-#define KD_VA_END_KHR(ap) \
- do {ap = (KDVaListKHR)0;} while(0)
-
-#endif /* __kdplatform_h_ */
-
diff --git a/src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/MinKD.c b/src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/MinKD.c
deleted file mode 100644
index 2e1bba20..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/MinKD.c
+++ /dev/null
@@ -1,328 +0,0 @@
-#include "kd.h"
-#include <stdio.h>
-#include <math.h>
-#include <string.h>
-#include <time.h>
-#ifndef __INTEGRITY
-#include <memory.h>
-#endif
-#include <pthread.h>
-#include <dirent.h>
-
-#ifdef __INTEGRITY
-#ifndef CLOCK_MONOTONIC
-#define CLOCK_MONOTONIC 4
-#endif
-#endif
-
-KDFile* kdFopen(const KDchar* pathname, const KDchar* mode)
-{
- FILE* retval;
- retval = fopen( pathname, mode );
- return (KDFile*)retval;
-}
-
-
-KDsize kdFread(void *buffer, KDsize size, KDsize count, KDFile *file)
-{
- return fread( buffer, size, count, (FILE*)file );
-}
-
-/* kdFwrite: Write to a file. */
-KDsize kdFwrite(const void *buffer, KDsize size, KDsize count, KDFile *file)
-{
- return fwrite( buffer, size, count, (FILE*)file );
-}
-
-KDint kdFclose(KDFile *file)
-{
- return fclose( (FILE*)file );
-}
-
-/* kdCosf: Cosine function. */
-KDfloat32 kdCosf(KDfloat32 x) { return cosf( x ); }
-
-/* kdSinf: Sine function. */
-KDfloat32 kdSinf(KDfloat32 x) { return sinf( x ); }
-
-KDfloat32 kdSqrtf(KDfloat32 x ) { return sqrtf( x ); }
-
-KDfloat32 kdTanf( KDfloat32 x ) { return tanf( x ); }
-
-KDint kdAbs(KDint i)
-{
- return i < 0 ? -i : i;
-}
-
-
-KDfloat32 kdFabsf(KDfloat32 i) { return fabs( i ); }
-
-/* kdStrcpy_s: Copy a string with an overrun check. */
-
-KDint kdStrcpy_s(KDchar* buf, KDsize buflen, const KDchar* src)
-{
- return kdStrncpy_s(buf, buflen, src, -1);
-}
-
-/* kdStrncpy_s: Copy a string with an overrun check. */
-KDint kdStrncpy_s(KDchar* buf, KDsize buflen, const KDchar* src, KDsize srclen)
-{
- const char* term;
- if ( srclen == (KDsize)-1)
- srclen = buflen;
- term = memchr(src, 0, srclen);
- if (term)
- srclen = term - src;
- if (srclen >= buflen) {
- if (buflen)
- *buf = 0;
- return KD_EINVAL;
- }
- memcpy(buf, src, srclen);
- buf[srclen] = 0;
- return 0;
-}
-
-/* kdStrncat_s: Concatenate two strings. */
-KDint kdStrncat_s(KDchar* buf, KDsize buflen, const KDchar* src, KDsize srcmaxlen)
-{
- size_t origlen = strlen(buf);
- const char* p = memchr(src, 0, srcmaxlen);
- if (p)
- srcmaxlen = p - src;
- if (origlen + srcmaxlen >= buflen)
- {
- /* spec says "buf[0] is set to 0". But that's bad if buflen == 0!
- * kdStrncpy_s's spec is better here. */
- if (buflen)
- buf[0] = 0;
- return KD_ERANGE;
- }
- memcpy(buf + origlen, src, srcmaxlen);
- buf[origlen + srcmaxlen] = 0;
- return 0;
-}
-/* kdMemset: Set bytes in memory to a value. */
-void* kdMemset(void *buf, KDint byte, KDsize len) { return memset( buf, byte, len ); }
-
-/* kdStrcmp: Compares two strings. */
-KDint kdStrcmp(const KDchar *str1, const KDchar *str2) { return strcmp( str1, str2); }
-
-/* kdStrlen: Determine the length of a string. */
-KDsize kdStrlen(const KDchar *str) { return strlen( str ); }
-
-void* kdMalloc( KDsize size ) { return malloc(size); }
-
-void kdFree( void* ptr ) { free( ptr ); }
-
-void* kdMemcpy(void *buf, const void *src, KDsize len) { return memcpy( buf, src, len ); }
-
-struct KDThreadMutex
-{
- pthread_mutex_t p_mutex;
-};
-
-/* kdThreadMutexCreate: Create a mutex. */
-KD_API KDThreadMutex* kdThreadMutexCreate(const void *mutexattr)
-{
- KDThreadMutex* mutex = malloc(sizeof(KDThreadMutex));
- if (mutex)
- {
- if (pthread_mutex_init(&mutex->p_mutex, NULL) == 0)
- {
- return mutex;
- }
- free(mutex);
- }
-
- return KD_NULL;
-}
-
-/* kdThreadMutexFree: Free a mutex. */
-KDint kdThreadMutexFree(KDThreadMutex *mutex)
-{
- int res;
- res = pthread_mutex_destroy(&mutex->p_mutex);
- // If the mutex destroy failed, don't free the memory.
- // Per OpenKODE spec, this is undefined behaviour, and
- // we can leak the memory. The reason for this is that
- // later allocations may fail if they happen to go
- // to the same memory
- if (!res)
- free(mutex);
- return 0;
-}
-
-/* kdThreadMutexLock: Lock a mutex. */
-KDint kdThreadMutexLock(KDThreadMutex *mutex)
-{
- (void)pthread_mutex_lock(&mutex->p_mutex);
- return 0;
-}
-
-/* kdThreadMutexUnlock: Unlock a mutex. */
-KDint kdThreadMutexUnlock(KDThreadMutex *mutex)
-{
- pthread_mutex_unlock(&mutex->p_mutex);
- return 0;
-}
-
-struct KDThreadAttr
-{
- pthread_attr_t p_attr;
-};
-
-struct KDThread
-{
- pthread_t Handle;
- uint8_t Detached;
- uint8_t IsRunning;
- uint8_t UserThread;
- void* (*UserThreadProc)(void*);
- void* UserArg;
-};
-/* kdThreadCreate: Create a new thread. */
-KDThread * kdThreadCreate(const KDThreadAttr *attr, void *(*start_routine)(void *), void *arg)
-{
- pthread_t thread;
- int retval;
- const pthread_attr_t* p_attr;
- KDThread* newThread;
- if ( attr )
- p_attr = &attr->p_attr;
- else
- p_attr = KD_NULL;
-
- retval = pthread_create( &thread, p_attr, start_routine, arg );
- if ( retval != 0 )
- {
- return KD_NULL;
- }
- newThread = (KDThread*)malloc( sizeof( KDThread ) );
- if ( newThread == KD_NULL ) return KD_NULL;
- newThread->Handle = thread;
- newThread->Detached = 0;
- newThread->IsRunning = 1;
- newThread->UserThread = 1;
- newThread->UserThreadProc = start_routine;
- newThread->UserArg = arg;
- return newThread;
-}
-
-/* kdThreadExit: Terminate this thread. */
-void kdThreadExit(void *retval)
-{
- pthread_exit( retval );
-}
-
-/* kdThreadJoin: Wait for termination of another thread. */
-KDint kdThreadJoin(KDThread *thread, void **retval)
-{
- int join_retval;
- join_retval = pthread_join( thread->Handle, retval );
- if ( join_retval == 0 ) free( thread );
- return join_retval;
-}
-
-typedef struct KDDirInternal {
- DIR *dir;
- KDDirent ent;
-} KDDirInternal;
-
-/* kdOpenDir: Open a directory ready for listing. */
-KDDir *kdOpenDir(const KDchar *pathname)
-{
- KDDirInternal* retval;
- DIR* dir = opendir( pathname );
- if ( dir == KD_NULL ) return KD_NULL;
- retval = (KDDirInternal*)malloc( sizeof( KDDirInternal ));
- if ( retval == KD_NULL ) return KD_NULL;
- memset( retval, 0, sizeof( *retval ) );
- retval->dir = dir;
- return (KDDir*)retval;
-}
-
-/* kdReadDir: Return the next file in a directory. */
-KDDirent* kdReadDir(KDDir *dir)
-{
- struct dirent *sysDirEnt;
- KDDirent *dirent = NULL;
-
- sysDirEnt = readdir(((KDDirInternal *)dir)->dir);
-
- if (sysDirEnt) {
- dirent = &((KDDirInternal *)dir)->ent;
- dirent->d_name = sysDirEnt->d_name;
- }
- return dirent;
-}
-
-/* kdCloseDir: Close a directory. */
-KDint kdCloseDir(KDDir *dir)
-{
- closedir(((KDDirInternal *)dir)->dir);
- free(dir);
- return 0;
-}
-
-KDint kdSetWindowPropertyiv(KDWindow * win, KDint prop, const KDint32 * val)
-{
- return 0;
-}
-
-void kdDefaultEvent(const KDEvent *event )
-{
-
-}
-
-typedef long long NvS64;
-
-KDust kdGetTimeUST(void)
-{
- struct timespec tp;
- clock_gettime(CLOCK_MONOTONIC, &tp);
-
- return (NvS64)tp.tv_sec * (NvS64)1000000000 +
- (NvS64)tp.tv_nsec;
-}
-
-static KDTm* gmlocaltime(
- const KDtime *timep,
- KDTm *result,
- struct tm* (* func)(const time_t* timep, struct tm* result))
-{
- struct tm tm;
- time_t t = *timep;
- (*func)(&t, &tm);
- result->tm_sec = tm.tm_sec;
- result->tm_min = tm.tm_min;
- result->tm_hour = tm.tm_hour;
- result->tm_mday = tm.tm_mday;
- result->tm_mon = tm.tm_mon;
- result->tm_year = tm.tm_year;
- result->tm_wday = tm.tm_wday;
- result->tm_yday = tm.tm_yday;
- return result;
-}
-
-/* kdGmtime_r, kdLocaltime_r: Convert a seconds-since-epoch time into broken-down time. */
-KDTm* kdGmtime_r(const KDtime* timep, KDTm* result)
-{
- return gmlocaltime(timep, result, &gmtime_r);
-}
-
-KDTm* kdLocaltime_r(const KDtime* timep, KDTm* result)
-{
- return gmlocaltime(timep, result, &localtime_r);
-}
-
-//===========================================================================
-// kdCreateEvent: Create an event for posting.
-//===========================================================================
-KDEvent* kdCreateEvent(void)
-{
- //Memory leak and there isn't much I am going to do about this now
- KDEvent* newEvent = (KDEvent*)malloc( sizeof( KDEvent ));
- memset( newEvent, 0, sizeof( KDEvent ));
- return newEvent;
-}
diff --git a/src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/Qt3DS_extwindowprops.h b/src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/Qt3DS_extwindowprops.h
deleted file mode 100644
index 4428a568..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/Qt3DS_extwindowprops.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef __kd_QT3DS_extwindowprops_h_
-#define __kd_QT3DS_extwindowprops_h_
-#include <KD/kd.h>
-#include <EGL/eglext.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* KD_WINDOWPROPERTY_FULLSCREEN: Control over resizing a window to fill the complete screen */
-
-// KDboolean - set the window to fullscreen mode
-#define KD_WINDOWPROPERTY_FULLSCREEN_QT3DS 9999
-
-// KDint - set which KD_DISPLAY_* display that the window should be opened on
-#define KD_WINDOWPROPERTY_DISPLAY_QT3DS 9998
-
-// KDboolean - sets whether overlay should be used to create window
-#define KD_WINDOWPROPERTY_OVERLAY_QT3DS 9997
-
-#define KD_DISPLAY_PRIMARY_QT3DS 0
-#define KD_DISPLAY_INTERNAL0_QT3DS 0
-#define KD_DISPLAY_INTERNAL1_QT3DS 1
-#define KD_DISPLAY_INTERNAL2_QT3DS 2
-#define KD_DISPLAY_INTERNAL3_QT3DS 3
-#define KD_DISPLAY_EXTERNAL0_QT3DS 1000
-#define KD_DISPLAY_EXTERNAL1_QT3DS 1001
-#define KD_DISPLAY_EXTERNAL2_QT3DS 1002
-#define KD_DISPLAY_EXTERNAL3_QT3DS 1003
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_QT3DS_extwindowprops_h_ */
diff --git a/src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/Qt3DS_multitouch.h b/src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/Qt3DS_multitouch.h
deleted file mode 100644
index e230b029..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/Qt3DS_multitouch.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef __kd_QT3DS_multitouch_h_
-#define __kd_QT3DS_multitouch_h_
-#include <KD/kd.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* KD_IOGROUP_MULTITOUCH: I/O group for Multitouch input devices. */
-#define KD_IOGROUP_MULTITOUCH_QT3DS 0x40004000
-#define KD_STATE_MULTITOUCH_AVAILABILITY_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 0)
-#define KD_INPUT_MULTITOUCH_FINGERS_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 1)
-#define KD_INPUT_MULTITOUCH_WIDTH_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 2)
-#define KD_INPUT_MULTITOUCH_X_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 3)
-#define KD_INPUT_MULTITOUCH_Y_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 4)
-#define KD_INPUT_MULTITOUCH_X2_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 5)
-#define KD_INPUT_MULTITOUCH_Y2_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 6)
-#define KD_INPUT_MULTITOUCH_PRESSURE_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 7)
-#define KD_INPUT_MULTITOUCH_GESTURES_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 8)
-#define KD_INPUT_MULTITOUCH_RELX_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 9)
-#define KD_INPUT_MULTITOUCH_RELY_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 10)
-
-/* KD_EVENT_INPUT_MULTITOUCH_QT3DS: Multitouch event. */
-#define KD_EVENT_INPUT_MULTITOUCH_QT3DS 1001
-typedef struct KDEventInputMultitouchDataNV
-{
- KDint32 index;
- KDint8 fingers;
- KDint8 width;
- KDint16 x;
- KDint16 y;
- KDint16 x2;
- KDint16 y2;
- KDint16 pressure;
-} KDEventInputMultitouchDataNV;
-
-/* KD_EVENT_INPUT_MULTITOUCH_GESTURE_QT3DS: Multitouch gesture event. */
-#define KD_EVENT_INPUT_MULTITOUCH_GESTURE_QT3DS 1002
-
-/* kdGetEventInputMultitouchDataNV: Get auxiliary event data for multitouch input. */
-KD_API KDint KD_APIENTRY kdGetEventInputMultitouchDataNV(const KDEvent *event,
- KDEventInputMultitouchDataNV *data);
-
-/* kdSetEventInputMultitouchActiveNV: Activate Multitouch input events */
-KD_API KDint KD_APIENTRY kdSetEventInputMultitouchActiveNV(KDboolean activate);
-
-/* kdEnableEventInputMultitouchMergeNV: Activate merging of Multitouch input events */
-KD_API void KD_APIENTRY kdEnableEventInputMultitouchMergeNV(KDboolean enable);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_QT3DS_multitouch_h_ */
diff --git a/src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/kd.h b/src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/kd.h
deleted file mode 100644
index f7ccea03..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/kd.h
+++ /dev/null
@@ -1,991 +0,0 @@
-/* Reference KD/kd.h for OpenKODE Core 1.0.3 */
-#ifndef __kd_h_
-#define __kd_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "kdplatform.h"
-
-
-
-/*******************************************************
- * Introduction
- *******************************************************/
-
-/*******************************************************
- * OpenKODE conformance
- *******************************************************/
-
-/*******************************************************
- * Overview
- *******************************************************/
-
-/*******************************************************
- * Programming environment
- *******************************************************/
-#define KD_VERSION_1_0 1
-typedef char KDchar;
-typedef signed char KDint8;
-typedef unsigned char KDuint8;
-typedef int KDint;
-typedef unsigned int KDuint;
-typedef float KDfloat32;
-typedef KDint KDboolean;
-typedef KDint64 KDtime;
-typedef KDint64 KDust;
-typedef KDint64 KDoff;
-typedef KDuint32 KDmode;
-#define KDINT32_MIN (-0x7fffffff-1)
-#define KDINT32_MAX 0x7fffffff
-#define KDUINT32_MAX 0xffffffffU
-#define KD_TRUE 1
-#define KD_FALSE 0
-#ifdef __cplusplus
- const int KD_NULL = 0; /* Yes, int. See Stroustrup 3rd edition. */
-#else
- #define KD_NULL ((void *)0)
-#endif
-
-/*******************************************************
- * Errors
- *******************************************************/
-#define KD_EACCES 1
-#define KD_EADDRINUSE 2
-#define KD_EADDRNOTAVAIL 3
-#define KD_EAFNOSUPPORT 4
-#define KD_EAGAIN (5)
-#define KD_EALREADY 6
-#define KD_EBADF 7
-#define KD_EBUSY 8
-#define KD_ECONNREFUSED 9
-#define KD_ECONNRESET 10
-#define KD_EDEADLK 11
-#define KD_EDESTADDRREQ 12
-#define KD_EEXIST 13
-#define KD_EFBIG 14
-#define KD_EHOSTUNREACH 15
-#define KD_EHOST_NOT_FOUND 16
-#define KD_EINVAL 17
-#define KD_EIO 18
-#define KD_EILSEQ 19
-#define KD_EISCONN 20
-#define KD_EISDIR 21
-#define KD_EMFILE 22
-#define KD_ENAMETOOLONG 23
-#define KD_ENOENT 24
-#define KD_ENOMEM 25
-#define KD_ENOSPC 26
-#define KD_ENOSYS 27
-#define KD_ENOTCONN 28
-#define KD_ENO_DATA 29
-#define KD_ENO_RECOVERY 30
-#define KD_EOPNOTSUPP 31
-#define KD_EOVERFLOW 32
-#define KD_EPERM 33
-#define KD_ERANGE 35
-#define KD_ETIMEDOUT (36)
-#define KD_ETRY_AGAIN 37
-
-/* kdGetError: Get last error indication. */
-KD_API KDint KD_APIENTRY kdGetError(void);
-
-/* kdSetError: Set last error indication. */
-KD_API void KD_APIENTRY kdSetError(KDint error);
-
-/*******************************************************
- * Versioning and attribute queries
- *******************************************************/
-
-/* kdQueryAttribi: Obtain the value of a numeric OpenKODE Core attribute. */
-KD_API KDint KD_APIENTRY kdQueryAttribi(KDint attribute, KDint *value);
-
-/* kdQueryAttribcv: Obtain the value of a string OpenKODE Core attribute. */
-KD_API const KDchar *KD_APIENTRY kdQueryAttribcv(KDint attribute);
-#define KD_ATTRIB_VENDOR 39
-#define KD_ATTRIB_VERSION 40
-#define KD_ATTRIB_PLATFORM 41
-
-/* kdQueryIndexedAttribcv: Obtain the value of an indexed string OpenKODE Core attribute. */
-KD_API const KDchar *KD_APIENTRY kdQueryIndexedAttribcv(KDint attribute, KDint index);
-
-/*******************************************************
- * Threads and synchronization
- *******************************************************/
-
-/* kdThreadAttrCreate: Create a thread attribute object. */
-typedef struct KDThreadAttr KDThreadAttr;
-KD_API KDThreadAttr *KD_APIENTRY kdThreadAttrCreate(void);
-
-/* kdThreadAttrFree: Free a thread attribute object. */
-KD_API KDint KD_APIENTRY kdThreadAttrFree(KDThreadAttr *attr);
-
-/* kdThreadAttrSetDetachState: Set detachstate attribute. */
-#define KD_THREAD_CREATE_JOINABLE 0
-#define KD_THREAD_CREATE_DETACHED 1
-KD_API KDint KD_APIENTRY kdThreadAttrSetDetachState(KDThreadAttr *attr, KDint detachstate);
-
-/* kdThreadAttrSetStackSize: Set stacksize attribute. */
-KD_API KDint KD_APIENTRY kdThreadAttrSetStackSize(KDThreadAttr *attr, KDsize stacksize);
-
-/* kdThreadCreate: Create a new thread. */
-typedef struct KDThread KDThread;
-KD_API KDThread *KD_APIENTRY kdThreadCreate(const KDThreadAttr *attr, void *(*start_routine)(void *), void *arg);
-
-/* kdThreadExit: Terminate this thread. */
-KD_API KD_NORETURN void KD_APIENTRY kdThreadExit(void *retval);
-
-/* kdThreadJoin: Wait for termination of another thread. */
-KD_API KDint KD_APIENTRY kdThreadJoin(KDThread *thread, void **retval);
-
-/* kdThreadDetach: Allow resources to be freed as soon as a thread terminates. */
-KD_API KDint KD_APIENTRY kdThreadDetach(KDThread *thread);
-
-/* kdThreadSelf: Return calling thread&#8217;s ID. */
-KD_API KDThread *KD_APIENTRY kdThreadSelf(void);
-
-/* kdThreadOnce: Wrap initialization code so it is executed only once. */
-#ifndef KD_NO_STATIC_DATA
-typedef struct KDThreadOnce {
- void *impl;
-} KDThreadOnce;
-#define KD_THREAD_ONCE_INIT { 0 }
-KD_API KDint KD_APIENTRY kdThreadOnce(KDThreadOnce *once_control, void (*init_routine)(void));
-#endif /* ndef KD_NO_STATIC_DATA */
-
-/* kdThreadMutexCreate: Create a mutex. */
-typedef struct KDThreadMutex KDThreadMutex;
-KD_API KDThreadMutex *KD_APIENTRY kdThreadMutexCreate(const void *mutexattr);
-
-/* kdThreadMutexFree: Free a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexFree(KDThreadMutex *mutex);
-
-/* kdThreadMutexLock: Lock a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexLock(KDThreadMutex *mutex);
-
-/* kdThreadMutexUnlock: Unlock a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexUnlock(KDThreadMutex *mutex);
-
-/* kdThreadCondCreate: Create a condition variable. */
-typedef struct KDThreadCond KDThreadCond;
-KD_API KDThreadCond *KD_APIENTRY kdThreadCondCreate(const void *attr);
-
-/* kdThreadCondFree: Free a condition variable. */
-KD_API KDint KD_APIENTRY kdThreadCondFree(KDThreadCond *cond);
-
-/* kdThreadCondSignal, kdThreadCondBroadcast: Signal a condition variable. */
-KD_API KDint KD_APIENTRY kdThreadCondSignal(KDThreadCond *cond);
-KD_API KDint KD_APIENTRY kdThreadCondBroadcast(KDThreadCond *cond);
-
-/* kdThreadCondWait: Wait for a condition variable to be signalled. */
-KD_API KDint KD_APIENTRY kdThreadCondWait(KDThreadCond *cond, KDThreadMutex *mutex);
-
-/* kdThreadSemCreate: Create a semaphore. */
-typedef struct KDThreadSem KDThreadSem;
-KD_API KDThreadSem *KD_APIENTRY kdThreadSemCreate(KDuint value);
-
-/* kdThreadSemFree: Free a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemFree(KDThreadSem *sem);
-
-/* kdThreadSemWait: Lock a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemWait(KDThreadSem *sem);
-
-/* kdThreadSemPost: Unlock a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemPost(KDThreadSem *sem);
-
-/*******************************************************
- * Events
- *******************************************************/
-
-/* KDEvent: Struct type containing an event. */
-typedef struct KDEvent KDEvent;
-#define KD_EVENT_USER 0x40000000
-
-/* kdWaitEvent: Get next event from thread&#8217;s event queue. */
-KD_API const KDEvent *KD_APIENTRY kdWaitEvent(KDust timeout);
-
-/* kdSetEventUserptr: Set the userptr for global events. */
-KD_API void KD_APIENTRY kdSetEventUserptr(void *userptr);
-
-/* kdDefaultEvent: Perform default processing on an unrecognized event. */
-KD_API void KD_APIENTRY kdDefaultEvent(const KDEvent *event);
-
-/* kdPumpEvents: Pump the thread&#8217;s event queue, performing callbacks. */
-KD_API KDint KD_APIENTRY kdPumpEvents(void);
-
-/* kdInstallCallback: Install or remove a callback function for event processing. */
-typedef void (KD_APIENTRY KDCallbackFunc)(const KDEvent *event);
-KD_API KDint KD_APIENTRY kdInstallCallback(KDCallbackFunc *func, KDint eventtype, void *eventuserptr);
-
-/* kdCreateEvent: Create an event for posting. */
-KD_API KDEvent *KD_APIENTRY kdCreateEvent(void);
-
-/* kdPostEvent, kdPostThreadEvent: Post an event into a queue. */
-KD_API KDint KD_APIENTRY kdPostEvent(KDEvent *event);
-KD_API KDint KD_APIENTRY kdPostThreadEvent(KDEvent *event, KDThread *thread);
-typedef struct KDEventUser {
- union {
- KDint64 i64;
- void *p;
- struct {
- KDint32 a;
- KDint32 b;
- } i32pair;
- } value1;
- union {
- KDint64 i64;
- struct {
- union {
- KDint32 i32;
- void *p;
- } value2;
- union {
- KDint32 i32;
- void *p;
- } value3;
- } i32orp;
- } value23;
-} KDEventUser;
-
-/* kdFreeEvent: Abandon an event instead of posting it. */
-KD_API void KD_APIENTRY kdFreeEvent(KDEvent *event);
-
-/*******************************************************
- * System events
- *******************************************************/
-
-/* KD_EVENT_QUIT: Event to request to quit application. */
-#define KD_EVENT_QUIT 43
-
-/* KD_EVENT_PAUSE: Application pause event. */
-#define KD_EVENT_PAUSE 45
-
-/* KD_EVENT_RESUME: Application resume event. */
-#define KD_EVENT_RESUME 46
-
-/* KD_EVENT_ORIENTATION: Orientation change event. */
-#define KD_EVENT_ORIENTATION 48
-
-/* KD_IOGROUP_EVENT: I/O group for OpenKODE Core system events implemented as state values. */
-#define KD_IOGROUP_EVENT 0x100
-#define KD_STATE_EVENT_USING_BATTERY (KD_IOGROUP_EVENT + 0)
-#define KD_STATE_EVENT_LOW_BATTERY (KD_IOGROUP_EVENT + 1)
-
-
-/* KD_IOGROUP_ORIENTATION: I/O group for OpenKODE Core orientation state. */
-#define KD_IOGROUP_ORIENTATION 0x200
-#define KD_STATE_ORIENTATION_OVERALL (KD_IOGROUP_ORIENTATION + 0)
-#define KD_STATE_ORIENTATION_SCREEN (KD_IOGROUP_ORIENTATION + 1)
-#define KD_STATE_ORIENTATION_RENDERING (KD_IOGROUP_ORIENTATION + 2)
-#define KD_STATE_ORIENTATION_LOCKSURFACE (KD_IOGROUP_ORIENTATION + 3)
-
-
-/*******************************************************
- * Application startup and exit.
- *******************************************************/
-
-/* kdMain: The application-defined main function. */
-KDint KD_APIENTRY kdMain(KDint argc, const KDchar *const *argv);
-
-/* kdExit: Exit the application. */
-KD_API KD_NORETURN void KD_APIENTRY kdExit(KDint status);
-
-/*******************************************************
- * Utility library functions
- *******************************************************/
-
-/* kdAbs: Compute the absolute value of an integer. */
-KD_API KDint KD_APIENTRY kdAbs(KDint i);
-
-/* kdStrtof: Convert a string to a floating point number. */
-KD_API KDfloat32 KD_APIENTRY kdStrtof(const KDchar *s, KDchar **endptr);
-
-/* kdStrtol, kdStrtoul: Convert a string to an integer. */
-KD_API KDint KD_APIENTRY kdStrtol(const KDchar *s, KDchar **endptr, KDint base);
-KD_API KDuint KD_APIENTRY kdStrtoul(const KDchar *s, KDchar **endptr, KDint base);
-
-/* kdLtostr, kdUltostr: Convert an integer to a string. */
-#define KD_LTOSTR_MAXLEN ((sizeof(KDint)*8*3+6)/10+2)
-#define KD_ULTOSTR_MAXLEN ((sizeof(KDint)*8+2)/3+1)
-KD_API KDssize KD_APIENTRY kdLtostr(KDchar *buffer, KDsize buflen, KDint number);
-KD_API KDssize KD_APIENTRY kdUltostr(KDchar *buffer, KDsize buflen, KDuint number, KDint base);
-
-/* kdFtostr: Convert a float to a string. */
-#define KD_FTOSTR_MAXLEN 16
-KD_API KDssize KD_APIENTRY kdFtostr(KDchar *buffer, KDsize buflen, KDfloat32 number);
-
-/* kdCryptoRandom: Return random data. */
-KD_API KDint KD_APIENTRY kdCryptoRandom(KDuint8 *buf, KDsize buflen);
-
-/*******************************************************
- * Locale specific functions
- *******************************************************/
-
-/* kdGetLocale: Determine the current language and locale. */
-KD_API const KDchar *KD_APIENTRY kdGetLocale(void);
-
-/*******************************************************
- * Memory allocation
- *******************************************************/
-
-/* kdMalloc: Allocate memory. */
-KD_API void *KD_APIENTRY kdMalloc(KDsize size);
-
-/* kdFree: Free allocated memory block. */
-KD_API void KD_APIENTRY kdFree(void *ptr);
-
-/* kdRealloc: Resize memory block. */
-KD_API void *KD_APIENTRY kdRealloc(void *ptr, KDsize size);
-
-/*******************************************************
- * Thread-local storage.
- *******************************************************/
-
-/* kdGetTLS: Get the thread-local storage pointer. */
-KD_API void *KD_APIENTRY kdGetTLS(void);
-
-/* kdSetTLS: Set the thread-local storage pointer. */
-KD_API void KD_APIENTRY kdSetTLS(void *ptr);
-
-/*******************************************************
- * Mathematical functions
- *******************************************************/
-#define KD_E_F 2.71828175F
-#define KD_PI_F 3.14159274F
-#define KD_PI_2_F 1.57079637F
-#define KD_2PI_F 6.28318548F
-#define KD_LOG2E_F 1.44269502F
-#define KD_LOG10E_F 0.434294492F
-#define KD_LN2_F 0.693147182F
-#define KD_LN10_F 2.30258512F
-#define KD_PI_4_F 0.785398185F
-#define KD_1_PI_F 0.318309873F
-#define KD_2_PI_F 0.636619747F
-#define KD_2_SQRTPI_F 1.12837923F
-#define KD_SQRT2_F 1.41421354F
-#define KD_SQRT1_2_F 0.707106769F
-#define KD_FLT_EPSILON 1.19209290E-07F
-#define KD_FLT_MAX 3.40282346638528860e+38F
-#define KD_FLT_MIN 1.17549435e-38F
-/* KD_INFINITY is defined in kdplatform.h since no portable definition
- * is possible. */
-#define kdIsNan(x) (((x) != (x)) ? 1 : 0)
-#define KD_HUGE_VALF KD_INFINITY
-#define KD_DEG_TO_RAD_F 0.0174532924F
-#define KD_RAD_TO_DEG_F 57.2957802F
-
-/* kdAcosf: Arc cosine function. */
-KD_API KDfloat32 KD_APIENTRY kdAcosf(KDfloat32 x);
-
-/* kdAsinf: Arc sine function. */
-KD_API KDfloat32 KD_APIENTRY kdAsinf(KDfloat32 x);
-
-/* kdAtanf: Arc tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdAtanf(KDfloat32 x);
-
-/* kdAtan2f: Arc tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdAtan2f(KDfloat32 y, KDfloat32 x);
-
-/* kdCosf: Cosine function. */
-KD_API KDfloat32 KD_APIENTRY kdCosf(KDfloat32 x);
-
-/* kdSinf: Sine function. */
-KD_API KDfloat32 KD_APIENTRY kdSinf(KDfloat32 x);
-
-/* kdTanf: Tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdTanf(KDfloat32 x);
-
-/* kdExpf: Exponential function. */
-KD_API KDfloat32 KD_APIENTRY kdExpf(KDfloat32 x);
-
-/* kdLogf: Natural logarithm function. */
-KD_API KDfloat32 KD_APIENTRY kdLogf(KDfloat32 x);
-
-/* kdFabsf: Absolute value. */
-KD_API KDfloat32 KD_APIENTRY kdFabsf(KDfloat32 x);
-
-/* kdPowf: Power function. */
-KD_API KDfloat32 KD_APIENTRY kdPowf(KDfloat32 x, KDfloat32 y);
-
-/* kdSqrtf: Square root function. */
-KD_API KDfloat32 KD_APIENTRY kdSqrtf(KDfloat32 x);
-
-/* kdCeilf: Return ceiling value. */
-KD_API KDfloat32 KD_APIENTRY kdCeilf(KDfloat32 x);
-
-/* kdFloorf: Return floor value. */
-KD_API KDfloat32 KD_APIENTRY kdFloorf(KDfloat32 x);
-
-/* kdRoundf: Round value to nearest integer. */
-KD_API KDfloat32 KD_APIENTRY kdRoundf(KDfloat32 x);
-
-/* kdInvsqrtf: Inverse square root function. */
-KD_API KDfloat32 KD_APIENTRY kdInvsqrtf(KDfloat32 x);
-
-/* kdFmodf: Calculate floating point remainder. */
-KD_API KDfloat32 KD_APIENTRY kdFmodf(KDfloat32 x, KDfloat32 y);
-
-/*******************************************************
- * String and memory functions
- *******************************************************/
-
-/* kdMemchr: Scan memory for a byte value. */
-KD_API void *KD_APIENTRY kdMemchr(const void *src, KDint byte, KDsize len);
-
-/* kdMemcmp: Compare two memory regions. */
-KD_API KDint KD_APIENTRY kdMemcmp(const void *src1, const void *src2, KDsize len);
-
-/* kdMemcpy: Copy a memory region, no overlapping. */
-KD_API void *KD_APIENTRY kdMemcpy(void *buf, const void *src, KDsize len);
-
-/* kdMemmove: Copy a memory region, overlapping allowed. */
-KD_API void *KD_APIENTRY kdMemmove(void *buf, const void *src, KDsize len);
-
-/* kdMemset: Set bytes in memory to a value. */
-KD_API void *KD_APIENTRY kdMemset(void *buf, KDint byte, KDsize len);
-
-/* kdStrchr: Scan string for a byte value. */
-KD_API KDchar *KD_APIENTRY kdStrchr(const KDchar *str, KDint ch);
-
-/* kdStrcmp: Compares two strings. */
-KD_API KDint KD_APIENTRY kdStrcmp(const KDchar *str1, const KDchar *str2);
-
-/* kdStrlen: Determine the length of a string. */
-KD_API KDsize KD_APIENTRY kdStrlen(const KDchar *str);
-
-/* kdStrnlen: Determine the length of a string. */
-KD_API KDsize KD_APIENTRY kdStrnlen(const KDchar *str, KDsize maxlen);
-
-/* kdStrncat_s: Concatenate two strings. */
-KD_API KDint KD_APIENTRY kdStrncat_s(KDchar *buf, KDsize buflen, const KDchar *src, KDsize srcmaxlen);
-
-/* kdStrncmp: Compares two strings with length limit. */
-KD_API KDint KD_APIENTRY kdStrncmp(const KDchar *str1, const KDchar *str2, KDsize maxlen);
-
-/* kdStrcpy_s: Copy a string with an overrun check. */
-KD_API KDint KD_APIENTRY kdStrcpy_s(KDchar *buf, KDsize buflen, const KDchar *src);
-
-/* kdStrncpy_s: Copy a string with an overrun check. */
-KD_API KDint KD_APIENTRY kdStrncpy_s(KDchar *buf, KDsize buflen, const KDchar *src, KDsize srclen);
-
-/*******************************************************
- * Time functions
- *******************************************************/
-
-/* kdGetTimeUST: Get the current unadjusted system time. */
-KD_API KDust KD_APIENTRY kdGetTimeUST(void);
-
-/* kdTime: Get the current wall clock time. */
-KD_API KDtime KD_APIENTRY kdTime(KDtime *timep);
-
-/* kdGmtime_r, kdLocaltime_r: Convert a seconds-since-epoch time into broken-down time. */
-typedef struct KDTm {
- KDint32 tm_sec;
- KDint32 tm_min;
- KDint32 tm_hour;
- KDint32 tm_mday;
- KDint32 tm_mon;
- KDint32 tm_year;
- KDint32 tm_wday;
- KDint32 tm_yday;
-} KDTm;
-KD_API KDTm *KD_APIENTRY kdGmtime_r(const KDtime *timep, KDTm *result);
-KD_API KDTm *KD_APIENTRY kdLocaltime_r(const KDtime *timep, KDTm *result);
-
-/* kdUSTAtEpoch: Get the UST corresponding to KDtime 0. */
-KD_API KDust KD_APIENTRY kdUSTAtEpoch(void);
-
-/*******************************************************
- * Timer functions
- *******************************************************/
-
-/* kdSetTimer: Set timer. */
-#define KD_TIMER_ONESHOT 61
-#define KD_TIMER_PERIODIC_AVERAGE 62
-#define KD_TIMER_PERIODIC_MINIMUM 63
-typedef struct KDTimer KDTimer;
-KD_API KDTimer *KD_APIENTRY kdSetTimer(KDint64 interval, KDint periodic, void *eventuserptr);
-
-/* kdCancelTimer: Cancel and free a timer. */
-KD_API KDint KD_APIENTRY kdCancelTimer(KDTimer *timer);
-
-/* KD_EVENT_TIMER: Timer fire event. */
-#define KD_EVENT_TIMER 42
-
-/*******************************************************
- * File system
- *******************************************************/
-#define KD_EOF (-1)
-
-/* kdFopen: Open a file from the file system. */
-typedef struct KDFile KDFile;
-KD_API KDFile *KD_APIENTRY kdFopen(const KDchar *pathname, const KDchar *mode);
-
-/* kdFclose: Close an open file. */
-KD_API KDint KD_APIENTRY kdFclose(KDFile *file);
-
-/* kdFflush: Flush an open file. */
-KD_API KDint KD_APIENTRY kdFflush(KDFile *file);
-
-/* kdFread: Read from a file. */
-KD_API KDsize KD_APIENTRY kdFread(void *buffer, KDsize size, KDsize count, KDFile *file);
-
-/* kdFwrite: Write to a file. */
-KD_API KDsize KD_APIENTRY kdFwrite(const void *buffer, KDsize size, KDsize count, KDFile *file);
-
-/* kdGetc: Read next byte from an open file. */
-KD_API KDint KD_APIENTRY kdGetc(KDFile *file);
-
-/* kdPutc: Write a byte to an open file. */
-KD_API KDint KD_APIENTRY kdPutc(KDint c, KDFile *file);
-
-/* kdFgets: Read a line of text from an open file. */
-KD_API KDchar *KD_APIENTRY kdFgets(KDchar *buffer, KDsize buflen, KDFile *file);
-
-/* kdFEOF: Check for end of file. */
-KD_API KDint KD_APIENTRY kdFEOF(KDFile *file);
-
-/* kdFerror: Check for an error condition on an open file. */
-KD_API KDint KD_APIENTRY kdFerror(KDFile *file);
-
-/* kdClearerr: Clear a file&#8217;s error and end-of-file indicators. */
-KD_API void KD_APIENTRY kdClearerr(KDFile *file);
-
-/* kdFseek: Reposition the file position indicator in a file. */
-typedef enum {
- KD_SEEK_SET = 0,
- KD_SEEK_CUR = 1,
- KD_SEEK_END = 2
-} KDfileSeekOrigin;
-KD_API KDint KD_APIENTRY kdFseek(KDFile *file, KDoff offset, KDfileSeekOrigin origin);
-
-/* kdFtell: Get the file position of an open file. */
-KD_API KDoff KD_APIENTRY kdFtell(KDFile *file);
-
-/* kdMkdir: Create new directory. */
-KD_API KDint KD_APIENTRY kdMkdir(const KDchar *pathname);
-
-/* kdRmdir: Delete a directory. */
-KD_API KDint KD_APIENTRY kdRmdir(const KDchar *pathname);
-
-/* kdRename: Rename a file. */
-KD_API KDint KD_APIENTRY kdRename(const KDchar *src, const KDchar *dest);
-
-/* kdRemove: Delete a file. */
-KD_API KDint KD_APIENTRY kdRemove(const KDchar *pathname);
-
-/* kdTruncate: Truncate or extend a file. */
-KD_API KDint KD_APIENTRY kdTruncate(const KDchar *pathname, KDoff length);
-
-/* kdStat, kdFstat: Return information about a file. */
-typedef struct KDStat {
- KDmode st_mode;
- KDoff st_size;
- KDtime st_mtime;
-} KDStat;
-KD_API KDint KD_APIENTRY kdStat(const KDchar *pathname, struct KDStat *buf);
-KD_API KDint KD_APIENTRY kdFstat(KDFile *file, struct KDStat *buf);
-#define KD_ISREG(m) ((m) & 0x8000)
-#define KD_ISDIR(m) ((m) & 0x4000)
-
-/* kdAccess: Determine whether the application can access a file or directory. */
-KD_API KDint KD_APIENTRY kdAccess(const KDchar *pathname, KDint amode);
-#define KD_R_OK 4
-#define KD_W_OK 2
-#define KD_X_OK 1
-
-/* kdOpenDir: Open a directory ready for listing. */
-typedef struct KDDir KDDir;
-KD_API KDDir *KD_APIENTRY kdOpenDir(const KDchar *pathname);
-
-/* kdReadDir: Return the next file in a directory. */
-typedef struct KDDirent {
- const KDchar *d_name;
-} KDDirent;
-KD_API KDDirent *KD_APIENTRY kdReadDir(KDDir *dir);
-
-/* kdCloseDir: Close a directory. */
-KD_API KDint KD_APIENTRY kdCloseDir(KDDir *dir);
-
-/* kdGetFree: Get free space on a drive. */
-KD_API KDoff KD_APIENTRY kdGetFree(const KDchar *pathname);
-
-/*******************************************************
- * Network sockets
- *******************************************************/
-
-/* KDSockaddr: Struct type for socket address. */
-typedef struct KDSockaddr {
- KDuint16 family;
- union {
-#define KD_AF_INET 70
- struct {
- KDuint16 port;
- KDuint32 address;
- } sin;
- } data;
-} KDSockaddr;
-
-/* kdNameLookup: Look up a hostname. */
-KD_API KDint KD_APIENTRY kdNameLookup(KDint af, const KDchar *hostname, void *eventuserptr);
-
-/* kdNameLookupCancel: Selectively cancels ongoing kdNameLookup operations. */
-KD_API void KD_APIENTRY kdNameLookupCancel(void *eventuserptr);
-
-/* kdSocketCreate: Creates a socket. */
-typedef struct KDSocket KDSocket;
-KD_API KDSocket *KD_APIENTRY kdSocketCreate(KDint type, void *eventuserptr);
-#define KD_SOCK_TCP 64
-#define KD_SOCK_UDP 65
-
-/* kdSocketClose: Closes a socket. */
-KD_API KDint KD_APIENTRY kdSocketClose(KDSocket *socket);
-
-/* kdSocketBind: Bind a socket. */
-KD_API KDint KD_APIENTRY kdSocketBind(KDSocket *socket, const struct KDSockaddr *addr, KDboolean reuse);
-#define KD_INADDR_ANY 0
-
-/* kdSocketGetName: Get the local address of a socket. */
-KD_API KDint KD_APIENTRY kdSocketGetName(KDSocket *socket, struct KDSockaddr *addr);
-
-/* kdSocketConnect: Connects a socket. */
-KD_API KDint KD_APIENTRY kdSocketConnect(KDSocket *socket, const KDSockaddr *addr);
-
-/* kdSocketListen: Listen on a socket. */
-KD_API KDint KD_APIENTRY kdSocketListen(KDSocket *socket, KDint backlog);
-
-/* kdSocketAccept: Accept an incoming connection. */
-KD_API KDSocket *KD_APIENTRY kdSocketAccept(KDSocket *socket, KDSockaddr *addr, void *eventuserptr);
-
-/* kdSocketSend, kdSocketSendTo: Send data to a socket. */
-KD_API KDint KD_APIENTRY kdSocketSend(KDSocket *socket, const void *buf, KDint len);
-KD_API KDint KD_APIENTRY kdSocketSendTo(KDSocket *socket, const void *buf, KDint len, const KDSockaddr *addr);
-
-/* kdSocketRecv, kdSocketRecvFrom: Receive data from a socket. */
-KD_API KDint KD_APIENTRY kdSocketRecv(KDSocket *socket, void *buf, KDint len);
-KD_API KDint KD_APIENTRY kdSocketRecvFrom(KDSocket *socket, void *buf, KDint len, KDSockaddr *addr);
-
-/* kdHtonl: Convert a 32-bit integer from host to network byte order. */
-KD_API KDuint32 KD_APIENTRY kdHtonl(KDuint32 hostlong);
-
-/* kdHtons: Convert a 16-bit integer from host to network byte order. */
-KD_API KDuint16 KD_APIENTRY kdHtons(KDuint16 hostshort);
-
-/* kdNtohl: Convert a 32-bit integer from network to host byte order. */
-KD_API KDuint32 KD_APIENTRY kdNtohl(KDuint32 netlong);
-
-/* kdNtohs: Convert a 16-bit integer from network to host byte order. */
-KD_API KDuint16 KD_APIENTRY kdNtohs(KDuint16 netshort);
-
-/* kdInetAton: Convert a &#8220;dotted quad&#8221; format address to an integer. */
-KD_API KDint KD_APIENTRY kdInetAton(const KDchar *cp, KDuint32 *inp);
-
-/* kdInetNtop: Convert a network address to textual form. */
-#define KD_INET_ADDRSTRLEN 16
-typedef struct KDInAddr {
- KDuint32 s_address; // Renamed this from s_addr as it causes a conflict with winsock2.h
-} KDInAddr;
-KD_API const KDchar *KD_APIENTRY kdInetNtop(KDuint af, const void *src, KDchar *dst, KDsize cnt);
-
-/* KD_EVENT_SOCKET_READABLE: Event to indicate that a socket is readable. */
-#define KD_EVENT_SOCKET_READABLE 49
-typedef struct KDEventSocketReadable {
- KDSocket *socket;
-} KDEventSocketReadable;
-
-/* KD_EVENT_SOCKET_WRITABLE: Event to indicate that a socket is writable. */
-#define KD_EVENT_SOCKET_WRITABLE 50
-typedef struct KDEventSocketWritable {
- KDSocket *socket;
-} KDEventSocketWritable;
-
-/* KD_EVENT_SOCKET_CONNECT_COMPLETE: Event generated when a socket connect is complete */
-#define KD_EVENT_SOCKET_CONNECT_COMPLETE 51
-typedef struct KDEventSocketConnect {
- KDSocket *socket;
- KDint32 error;
-} KDEventSocketConnect;
-
-/* KD_EVENT_SOCKET_INCOMING: Event generated when a listening socket detects an incoming connection or an error. */
-#define KD_EVENT_SOCKET_INCOMING 52
-typedef struct KDEventSocketIncoming {
- KDSocket *socket;
-} KDEventSocketIncoming;
-
-/* KD_EVENT_NAME_LOOKUP_COMPLETE: kdNameLookup complete event. */
-#define KD_EVENT_NAME_LOOKUP_COMPLETE 53
-typedef struct KDEventNameLookup {
- KDint32 error;
- KDint32 resultlen;
- const KDSockaddr *result;
- KDboolean more;
-} KDEventNameLookup;
-
-/*******************************************************
- * Input/output
- *******************************************************/
-
-/* KD_EVENT_STATE: State changed event. */
-#define KD_EVENT_STATE 55
-
-typedef struct KDEventState {
- KDint32 index;
- union {
- KDint32 i;
- KDint64 l;
- KDfloat32 f;
- } value;
-} KDEventState;
-
-/* KD_EVENT_INPUT: Input changed event. */
-#define KD_EVENT_INPUT 56
-
-typedef struct KDEventInput {
- KDint32 index;
- union {
- KDint32 i;
- KDint64 l;
- KDfloat32 f;
- } value;
-} KDEventInput;
-
-/* KD_EVENT_INPUT_JOG: Jogdial jog event. */
-#define KD_EVENT_INPUT_JOG 71
-typedef struct KDEventInputJog {
- KDint32 index;
- KDint32 count;
-} KDEventInputJog;
-
-/* KD_EVENT_INPUT_POINTER: Pointer input changed event. */
-#define KD_EVENT_INPUT_POINTER 57
-typedef struct KDEventInputPointer {
- KDint32 index;
- KDint32 select;
- KDint32 x;
- KDint32 y;
-} KDEventInputPointer;
-
-/* KD_EVENT_INPUT_STICK: Joystick stick changed event. */
-#define KD_EVENT_INPUT_STICK 58
-typedef struct KDEventInputStick {
- KDint32 index;
- KDint32 x;
- KDint32 y;
- KDint32 z;
-} KDEventInputStick;
-
-/* kdStateGeti, kdStateGetl, kdStateGetf: get state value(s) */
-KD_API KDint KD_APIENTRY kdStateGeti(KDint startidx, KDuint numidxs, KDint32 *buffer);
-KD_API KDint KD_APIENTRY kdStateGetl(KDint startidx, KDuint numidxs, KDint64 *buffer);
-KD_API KDint KD_APIENTRY kdStateGetf(KDint startidx, KDuint numidxs, KDfloat32 *buffer);
-
-/* kdOutputSeti, kdOutputSetf: set outputs */
-KD_API KDint KD_APIENTRY kdOutputSeti(KDint startidx, KDuint numidxs, const KDint32 *buffer);
-KD_API KDint KD_APIENTRY kdOutputSetf(KDint startidx, KDuint numidxs, const KDfloat32 *buffer);
-#define KD_IO_CONTROLLER_STRIDE 64
-
-/* KD_IOGROUP_GAMEKEYS: I/O group for game keys. */
-#define KD_IOGROUP_GAMEKEYS 0x1000
-#define KD_STATE_GAMEKEYS_AVAILABILITY (KD_IOGROUP_GAMEKEYS + 0)
-#define KD_INPUT_GAMEKEYS_UP (KD_IOGROUP_GAMEKEYS + 1)
-#define KD_INPUT_GAMEKEYS_LEFT (KD_IOGROUP_GAMEKEYS + 2)
-#define KD_INPUT_GAMEKEYS_RIGHT (KD_IOGROUP_GAMEKEYS + 3)
-#define KD_INPUT_GAMEKEYS_DOWN (KD_IOGROUP_GAMEKEYS + 4)
-#define KD_INPUT_GAMEKEYS_FIRE (KD_IOGROUP_GAMEKEYS + 5)
-#define KD_INPUT_GAMEKEYS_A (KD_IOGROUP_GAMEKEYS + 6)
-#define KD_INPUT_GAMEKEYS_B (KD_IOGROUP_GAMEKEYS + 7)
-#define KD_INPUT_GAMEKEYS_C (KD_IOGROUP_GAMEKEYS + 8)
-#define KD_INPUT_GAMEKEYS_D (KD_IOGROUP_GAMEKEYS + 9)
-
-/* KD_IOGROUP_GAMEKEYSNC: I/O group for game keys, no chording. */
-#define KD_IOGROUP_GAMEKEYSNC 0x1100
-#define KD_STATE_GAMEKEYSNC_AVAILABILITY (KD_IOGROUP_GAMEKEYSNC + 0)
-#define KD_INPUT_GAMEKEYSNC_UP (KD_IOGROUP_GAMEKEYSNC + 1)
-#define KD_INPUT_GAMEKEYSNC_LEFT (KD_IOGROUP_GAMEKEYSNC + 2)
-#define KD_INPUT_GAMEKEYSNC_RIGHT (KD_IOGROUP_GAMEKEYSNC + 3)
-#define KD_INPUT_GAMEKEYSNC_DOWN (KD_IOGROUP_GAMEKEYSNC + 4)
-#define KD_INPUT_GAMEKEYSNC_FIRE (KD_IOGROUP_GAMEKEYSNC + 5)
-#define KD_INPUT_GAMEKEYSNC_A (KD_IOGROUP_GAMEKEYSNC + 6)
-#define KD_INPUT_GAMEKEYSNC_B (KD_IOGROUP_GAMEKEYSNC + 7)
-#define KD_INPUT_GAMEKEYSNC_C (KD_IOGROUP_GAMEKEYSNC + 8)
-#define KD_INPUT_GAMEKEYSNC_D (KD_IOGROUP_GAMEKEYSNC + 9)
-
-/* KD_IOGROUP_PHONEKEYPAD: I/O group for phone keypad. */
-#define KD_IOGROUP_PHONEKEYPAD 0x2000
-#define KD_STATE_PHONEKEYPAD_AVAILABILITY (KD_IOGROUP_PHONEKEYPAD + 0)
-#define KD_INPUT_PHONEKEYPAD_0 (KD_IOGROUP_PHONEKEYPAD + 1)
-#define KD_INPUT_PHONEKEYPAD_1 (KD_IOGROUP_PHONEKEYPAD + 2)
-#define KD_INPUT_PHONEKEYPAD_2 (KD_IOGROUP_PHONEKEYPAD + 3)
-#define KD_INPUT_PHONEKEYPAD_3 (KD_IOGROUP_PHONEKEYPAD + 4)
-#define KD_INPUT_PHONEKEYPAD_4 (KD_IOGROUP_PHONEKEYPAD + 5)
-#define KD_INPUT_PHONEKEYPAD_5 (KD_IOGROUP_PHONEKEYPAD + 6)
-#define KD_INPUT_PHONEKEYPAD_6 (KD_IOGROUP_PHONEKEYPAD + 7)
-#define KD_INPUT_PHONEKEYPAD_7 (KD_IOGROUP_PHONEKEYPAD + 8)
-#define KD_INPUT_PHONEKEYPAD_8 (KD_IOGROUP_PHONEKEYPAD + 9)
-#define KD_INPUT_PHONEKEYPAD_9 (KD_IOGROUP_PHONEKEYPAD + 10)
-#define KD_INPUT_PHONEKEYPAD_STAR (KD_IOGROUP_PHONEKEYPAD + 11)
-#define KD_INPUT_PHONEKEYPAD_HASH (KD_IOGROUP_PHONEKEYPAD + 12)
-#define KD_INPUT_PHONEKEYPAD_LEFTSOFT (KD_IOGROUP_PHONEKEYPAD + 13)
-#define KD_INPUT_PHONEKEYPAD_RIGHTSOFT (KD_IOGROUP_PHONEKEYPAD + 14)
-#define KD_STATE_PHONEKEYPAD_ORIENTATION (KD_IOGROUP_PHONEKEYPAD + 15)
-
-/* KD_IOGROUP_VIBRATE: I/O group for vibrate. */
-#define KD_IOGROUP_VIBRATE 0x3000
-#define KD_STATE_VIBRATE_AVAILABILITY (KD_IOGROUP_VIBRATE + 0)
-#define KD_STATE_VIBRATE_MINFREQUENCY (KD_IOGROUP_VIBRATE + 1)
-#define KD_STATE_VIBRATE_MAXFREQUENCY (KD_IOGROUP_VIBRATE + 2)
-#define KD_OUTPUT_VIBRATE_VOLUME (KD_IOGROUP_VIBRATE + 3)
-#define KD_OUTPUT_VIBRATE_FREQUENCY (KD_IOGROUP_VIBRATE + 4)
-
-/* KD_IOGROUP_POINTER: I/O group for pointer. */
-#define KD_IOGROUP_POINTER 0x4000
-#define KD_STATE_POINTER_AVAILABILITY (KD_IOGROUP_POINTER + 0)
-#define KD_INPUT_POINTER_X (KD_IOGROUP_POINTER + 1)
-#define KD_INPUT_POINTER_Y (KD_IOGROUP_POINTER + 2)
-#define KD_INPUT_POINTER_SELECT (KD_IOGROUP_POINTER + 3)
-
-/* KD_IOGROUP_BACKLIGHT: I/O group for backlight. */
-#define KD_IOGROUP_BACKLIGHT 0x5000
-#define KD_STATE_BACKLIGHT_AVAILABILITY (KD_IOGROUP_BACKLIGHT + 0)
-#define KD_OUTPUT_BACKLIGHT_FORCE (KD_IOGROUP_BACKLIGHT + 1)
-
-/* KD_IOGROUP_JOGDIAL: I/O group for a jog dial. */
-#define KD_IOGROUP_JOGDIAL 0x6000
-#define KD_STATE_JOGDIAL_AVAILABILITY (KD_IOGROUP_JOGDIAL + 0)
-#define KD_INPUT_JOGDIAL_UP (KD_IOGROUP_JOGDIAL + 1)
-#define KD_INPUT_JOGDIAL_LEFT (KD_IOGROUP_JOGDIAL + 2)
-#define KD_INPUT_JOGDIAL_RIGHT (KD_IOGROUP_JOGDIAL + 3)
-#define KD_INPUT_JOGDIAL_DOWN (KD_IOGROUP_JOGDIAL + 4)
-#define KD_INPUT_JOGDIAL_SELECT (KD_IOGROUP_JOGDIAL + 5)
-
-/* KD_IOGROUP_STICK: I/O group for joystick. */
-#define KD_IOGROUP_STICK 0x7000
-#define KD_STATE_STICK_AVAILABILITY (KD_IOGROUP_STICK + 0)
-#define KD_INPUT_STICK_X (KD_IOGROUP_STICK + 1)
-#define KD_INPUT_STICK_Y (KD_IOGROUP_STICK + 2)
-#define KD_INPUT_STICK_Z (KD_IOGROUP_STICK + 3)
-#define KD_INPUT_STICK_BUTTON (KD_IOGROUP_STICK + 4)
-#define KD_IO_STICK_STRIDE 8
-
-/* KD_IOGROUP_DPAD: I/O group for D-pad. */
-#define KD_IOGROUP_DPAD 0x8000
-#define KD_STATE_DPAD_AVAILABILITY (KD_IOGROUP_DPAD + 0)
-#define KD_STATE_DPAD_COPY (KD_IOGROUP_DPAD + 1)
-#define KD_INPUT_DPAD_UP (KD_IOGROUP_DPAD + 2)
-#define KD_INPUT_DPAD_LEFT (KD_IOGROUP_DPAD + 3)
-#define KD_INPUT_DPAD_RIGHT (KD_IOGROUP_DPAD + 4)
-#define KD_INPUT_DPAD_DOWN (KD_IOGROUP_DPAD + 5)
-#define KD_INPUT_DPAD_SELECT (KD_IOGROUP_DPAD + 6)
-#define KD_IO_DPAD_STRIDE 8
-
-/* KD_IOGROUP_BUTTONS: I/O group for buttons associated with joystick or D-pad. */
-#define KD_IOGROUP_BUTTONS 0x9000
-#define KD_STATE_BUTTONS_AVAILABILITY (KD_IOGROUP_BUTTONS + 0)
-#define KD_INPUT_BUTTONS_0 (KD_IOGROUP_BUTTONS + 1)
-
-/* KD_IO_UNDEFINED: I/O items reserved for implementation-dependent use. */
-#define KD_IO_UNDEFINED 0x40000000
-
-/*******************************************************
- * Windowing
- *******************************************************/
-#ifdef KD_WINDOW_SUPPORTED
-#include <EGL/egl.h>
-typedef struct KDWindow KDWindow;
-
-/* kdCreateWindow: Create a window. */
-KD_API KDWindow *KD_APIENTRY kdCreateWindow(EGLDisplay display, EGLConfig config, void *eventuserptr);
-
-/* kdDestroyWindow: Destroy a window. */
-KD_API KDint KD_APIENTRY kdDestroyWindow(KDWindow *window);
-
-/* kdSetWindowPropertybv, kdSetWindowPropertyiv, kdSetWindowPropertycv: Set a window property to request a change in the on-screen representation of the window. */
-KD_API KDint KD_APIENTRY kdSetWindowPropertybv(KDWindow *window, KDint pname, const KDboolean *param);
-KD_API KDint KD_APIENTRY kdSetWindowPropertyiv(KDWindow *window, KDint pname, const KDint32 *param);
-KD_API KDint KD_APIENTRY kdSetWindowPropertycv(KDWindow *window, KDint pname, const KDchar *param);
-
-/* kdGetWindowPropertybv, kdGetWindowPropertyiv, kdGetWindowPropertycv: Get the current value of a window property. */
-KD_API KDint KD_APIENTRY kdGetWindowPropertybv(KDWindow *window, KDint pname, KDboolean *param);
-KD_API KDint KD_APIENTRY kdGetWindowPropertyiv(KDWindow *window, KDint pname, KDint32 *param);
-KD_API KDint KD_APIENTRY kdGetWindowPropertycv(KDWindow *window, KDint pname, KDchar *param, KDsize *size);
-
-/* kdRealizeWindow: Realize the window as a displayable entity and get the native window handle for passing to EGL. */
-KD_API KDint KD_APIENTRY kdRealizeWindow(KDWindow *window, EGLNativeWindowType *nativewindow);
-
-/* KD_WINDOWPROPERTY_SIZE: Window client area width and height. */
-#define KD_WINDOWPROPERTY_SIZE 66
-
-/* KD_WINDOWPROPERTY_VISIBILITY: Window visibility status. */
-#define KD_WINDOWPROPERTY_VISIBILITY 67
-
-/* KD_WINDOWPROPERTY_FOCUS: Window input focus status. */
-#define KD_WINDOWPROPERTY_FOCUS 68
-
-/* KD_WINDOWPROPERTY_CAPTION: Window caption. */
-#define KD_WINDOWPROPERTY_CAPTION 69
-
-/* KD_EVENT_WINDOW_CLOSE: Event to request to close window. */
-#define KD_EVENT_WINDOW_CLOSE 44
-
-/* KD_EVENT_WINDOWPROPERTY_CHANGE: Notification about realized window property change. */
-#define KD_EVENT_WINDOWPROPERTY_CHANGE 47
-typedef struct KDEventWindowProperty {
- KDint32 pname;
-} KDEventWindowProperty;
-
-/* KD_EVENT_WINDOW_FOCUS: Event for change of window&#8217;s focus state. */
-#define KD_EVENT_WINDOW_FOCUS 60
-typedef struct KDEventWindowFocus {
- KDint32 focusstate;
-} KDEventWindowFocus;
-
-/* KD_EVENT_WINDOW_REDRAW: Event to notify need to redraw the window. */
-#define KD_EVENT_WINDOW_REDRAW 59
-#endif /* KD_WINDOW_SUPPORTED */
-
-/*******************************************************
- * Assertions and logging
- *******************************************************/
-
-/* kdHandleAssertion: Handle assertion failure. */
-KD_API void KD_APIENTRY kdHandleAssertion(const KDchar *condition, const KDchar *filename, KDint linenumber);
-
-/* kdLogMessage: Output a log message. */
-#ifdef KD_NDEBUG
-#define kdLogMessage(s)
-#else
-KD_API void KD_APIENTRY kdLogMessage(const KDchar *string);
-#endif
-
-/* struct KDEvent delayed to the end as it uses event data structs from
- * other parts of the .h file. */
-struct KDEvent {
- KDust timestamp;
- KDint32 type;
- void *userptr;
- union KDEventData {
- KDEventState state;
- KDEventInput input;
- KDEventInputJog inputjog;
- KDEventInputPointer inputpointer;
- KDEventInputStick inputstick;
- KDEventSocketReadable socketreadable;
- KDEventSocketWritable socketwritable;
- KDEventSocketConnect socketconnect;
- KDEventSocketIncoming socketincoming;
- KDEventNameLookup namelookup;
-#ifdef KD_WINDOW_SUPPORTED
- KDEventWindowProperty windowproperty;
- KDEventWindowFocus windowfocus;
-#endif /* KD_WINDOW_SUPPORTED */
- KDEventUser user;
- } data;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_h_ */
-
diff --git a/src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/kdplatform.h b/src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/kdplatform.h
deleted file mode 100644
index 3cf09f52..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Linux/Qt3DSLibs/KD/kdplatform.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/* Sample KD/kdplatform.h for OpenKODE Core 1.0.3 */
-#ifndef __kdplatform_h_
-#define __kdplatform_h_
-
-#define KD_API
-#define KD_APIENTRY
-
-typedef int KDint32;
-typedef unsigned int KDuint32;
-typedef long long KDint64;
-typedef unsigned long long KDuint64;
-typedef short KDint16;
-typedef unsigned short KDuint16;
-typedef unsigned long KDuintptr;
-typedef unsigned long KDsize;
-typedef long KDssize;
-#define KDINT_MIN (-0x7fffffff-1)
-#define KDINT_MAX 0x7fffffff
-#define KDUINT_MAX 0xffffffffU
-#define KDINT64_MIN (-0x7fffffffffffffffLL-1)
-#define KDINT64_MAX 0x7fffffffffffffffLL
-#define KDUINT64_MAX 0xffffffffffffffffULL
-#define KDSSIZE_MIN (-0x7fffffff-1)
-#define KDSSIZE_MAX 0x7fffffff
-#define KDSIZE_MAX 0xffffffffU
-#define KDUINTPTR_MAX 0xffffffffU
-#define KD_NORETURN
-#define KD_WINDOW_SUPPORTED
-#ifdef KD_NDEBUG
-#define kdAssert(c)
-#else
-#define kdAssert(c) ((void)( (c) ? 0 : (kdHandleAssertion(#c, __FILE__, __LINE__), 0)))
-#endif
-
-#define KD_INFINITY_BITS 0x7f800000u
-#define KD_INFINITY (kdBitsToFloatNV(KD_INFINITY_BITS))
-
-KD_API float KD_APIENTRY kdBitsToFloatNV(KDuint32 x);
-
-
-/** KHR_formatted extension */
-#include <stdarg.h>
-typedef va_list KDVaListKHR;
-
-// If there are problems with including stdarg.h here under any of the Windows
-// operating systems, we might want to change it back to using char* instead of
-// va_list
-//typedef char *KDVaListKHR;
-
-
-#define KD_VA_START_KHR(ap, parmN) \
- do {ap = (KDVaListKHR)&parmN + sizeof(parmN);} while(0)
-
-#define KD_VA_ARG_CHAR_KHR(ap) (KDchar)va_arg(ap, KDint)
-#define KD_VA_ARG_CHARPTR_KHR(ap) (KDchar*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_INT16_KHR(ap) (KDint16)va_arg(ap, KDint)
-#define KD_VA_ARG_INT32_KHR(ap) va_arg(ap, KDint32)
-#define KD_VA_ARG_INT_KHR(ap) va_arg(ap, KDint)
-#define KD_VA_ARG_INT64_KHR(ap) va_arg(ap, KDint64)
-#define KD_VA_ARG_INTPTR_KHR(ap) (KDint*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_INT16PTR_KHR(ap) (KDint16*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_FLOAT32_KHR(ap) (KDfloat32)(va_arg(ap, double))
-#define KD_VA_ARG_PTR_KHR(ap) (void *)va_arg(ap, char *)
-
-#define KD_VA_END_KHR(ap) \
- do {ap = (KDVaListKHR)0;} while(0)
-
-#endif /* __kdplatform_h_ */
-
diff --git a/src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/Qt3DS_extwindowprops.h b/src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/Qt3DS_extwindowprops.h
deleted file mode 100644
index 4428a568..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/Qt3DS_extwindowprops.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef __kd_QT3DS_extwindowprops_h_
-#define __kd_QT3DS_extwindowprops_h_
-#include <KD/kd.h>
-#include <EGL/eglext.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* KD_WINDOWPROPERTY_FULLSCREEN: Control over resizing a window to fill the complete screen */
-
-// KDboolean - set the window to fullscreen mode
-#define KD_WINDOWPROPERTY_FULLSCREEN_QT3DS 9999
-
-// KDint - set which KD_DISPLAY_* display that the window should be opened on
-#define KD_WINDOWPROPERTY_DISPLAY_QT3DS 9998
-
-// KDboolean - sets whether overlay should be used to create window
-#define KD_WINDOWPROPERTY_OVERLAY_QT3DS 9997
-
-#define KD_DISPLAY_PRIMARY_QT3DS 0
-#define KD_DISPLAY_INTERNAL0_QT3DS 0
-#define KD_DISPLAY_INTERNAL1_QT3DS 1
-#define KD_DISPLAY_INTERNAL2_QT3DS 2
-#define KD_DISPLAY_INTERNAL3_QT3DS 3
-#define KD_DISPLAY_EXTERNAL0_QT3DS 1000
-#define KD_DISPLAY_EXTERNAL1_QT3DS 1001
-#define KD_DISPLAY_EXTERNAL2_QT3DS 1002
-#define KD_DISPLAY_EXTERNAL3_QT3DS 1003
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_QT3DS_extwindowprops_h_ */
diff --git a/src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/Qt3DS_multitouch.h b/src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/Qt3DS_multitouch.h
deleted file mode 100644
index e230b029..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/Qt3DS_multitouch.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef __kd_QT3DS_multitouch_h_
-#define __kd_QT3DS_multitouch_h_
-#include <KD/kd.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* KD_IOGROUP_MULTITOUCH: I/O group for Multitouch input devices. */
-#define KD_IOGROUP_MULTITOUCH_QT3DS 0x40004000
-#define KD_STATE_MULTITOUCH_AVAILABILITY_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 0)
-#define KD_INPUT_MULTITOUCH_FINGERS_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 1)
-#define KD_INPUT_MULTITOUCH_WIDTH_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 2)
-#define KD_INPUT_MULTITOUCH_X_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 3)
-#define KD_INPUT_MULTITOUCH_Y_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 4)
-#define KD_INPUT_MULTITOUCH_X2_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 5)
-#define KD_INPUT_MULTITOUCH_Y2_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 6)
-#define KD_INPUT_MULTITOUCH_PRESSURE_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 7)
-#define KD_INPUT_MULTITOUCH_GESTURES_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 8)
-#define KD_INPUT_MULTITOUCH_RELX_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 9)
-#define KD_INPUT_MULTITOUCH_RELY_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 10)
-
-/* KD_EVENT_INPUT_MULTITOUCH_QT3DS: Multitouch event. */
-#define KD_EVENT_INPUT_MULTITOUCH_QT3DS 1001
-typedef struct KDEventInputMultitouchDataNV
-{
- KDint32 index;
- KDint8 fingers;
- KDint8 width;
- KDint16 x;
- KDint16 y;
- KDint16 x2;
- KDint16 y2;
- KDint16 pressure;
-} KDEventInputMultitouchDataNV;
-
-/* KD_EVENT_INPUT_MULTITOUCH_GESTURE_QT3DS: Multitouch gesture event. */
-#define KD_EVENT_INPUT_MULTITOUCH_GESTURE_QT3DS 1002
-
-/* kdGetEventInputMultitouchDataNV: Get auxiliary event data for multitouch input. */
-KD_API KDint KD_APIENTRY kdGetEventInputMultitouchDataNV(const KDEvent *event,
- KDEventInputMultitouchDataNV *data);
-
-/* kdSetEventInputMultitouchActiveNV: Activate Multitouch input events */
-KD_API KDint KD_APIENTRY kdSetEventInputMultitouchActiveNV(KDboolean activate);
-
-/* kdEnableEventInputMultitouchMergeNV: Activate merging of Multitouch input events */
-KD_API void KD_APIENTRY kdEnableEventInputMultitouchMergeNV(KDboolean enable);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_QT3DS_multitouch_h_ */
diff --git a/src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/kd.h b/src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/kd.h
deleted file mode 100644
index f7ccea03..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/kd.h
+++ /dev/null
@@ -1,991 +0,0 @@
-/* Reference KD/kd.h for OpenKODE Core 1.0.3 */
-#ifndef __kd_h_
-#define __kd_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "kdplatform.h"
-
-
-
-/*******************************************************
- * Introduction
- *******************************************************/
-
-/*******************************************************
- * OpenKODE conformance
- *******************************************************/
-
-/*******************************************************
- * Overview
- *******************************************************/
-
-/*******************************************************
- * Programming environment
- *******************************************************/
-#define KD_VERSION_1_0 1
-typedef char KDchar;
-typedef signed char KDint8;
-typedef unsigned char KDuint8;
-typedef int KDint;
-typedef unsigned int KDuint;
-typedef float KDfloat32;
-typedef KDint KDboolean;
-typedef KDint64 KDtime;
-typedef KDint64 KDust;
-typedef KDint64 KDoff;
-typedef KDuint32 KDmode;
-#define KDINT32_MIN (-0x7fffffff-1)
-#define KDINT32_MAX 0x7fffffff
-#define KDUINT32_MAX 0xffffffffU
-#define KD_TRUE 1
-#define KD_FALSE 0
-#ifdef __cplusplus
- const int KD_NULL = 0; /* Yes, int. See Stroustrup 3rd edition. */
-#else
- #define KD_NULL ((void *)0)
-#endif
-
-/*******************************************************
- * Errors
- *******************************************************/
-#define KD_EACCES 1
-#define KD_EADDRINUSE 2
-#define KD_EADDRNOTAVAIL 3
-#define KD_EAFNOSUPPORT 4
-#define KD_EAGAIN (5)
-#define KD_EALREADY 6
-#define KD_EBADF 7
-#define KD_EBUSY 8
-#define KD_ECONNREFUSED 9
-#define KD_ECONNRESET 10
-#define KD_EDEADLK 11
-#define KD_EDESTADDRREQ 12
-#define KD_EEXIST 13
-#define KD_EFBIG 14
-#define KD_EHOSTUNREACH 15
-#define KD_EHOST_NOT_FOUND 16
-#define KD_EINVAL 17
-#define KD_EIO 18
-#define KD_EILSEQ 19
-#define KD_EISCONN 20
-#define KD_EISDIR 21
-#define KD_EMFILE 22
-#define KD_ENAMETOOLONG 23
-#define KD_ENOENT 24
-#define KD_ENOMEM 25
-#define KD_ENOSPC 26
-#define KD_ENOSYS 27
-#define KD_ENOTCONN 28
-#define KD_ENO_DATA 29
-#define KD_ENO_RECOVERY 30
-#define KD_EOPNOTSUPP 31
-#define KD_EOVERFLOW 32
-#define KD_EPERM 33
-#define KD_ERANGE 35
-#define KD_ETIMEDOUT (36)
-#define KD_ETRY_AGAIN 37
-
-/* kdGetError: Get last error indication. */
-KD_API KDint KD_APIENTRY kdGetError(void);
-
-/* kdSetError: Set last error indication. */
-KD_API void KD_APIENTRY kdSetError(KDint error);
-
-/*******************************************************
- * Versioning and attribute queries
- *******************************************************/
-
-/* kdQueryAttribi: Obtain the value of a numeric OpenKODE Core attribute. */
-KD_API KDint KD_APIENTRY kdQueryAttribi(KDint attribute, KDint *value);
-
-/* kdQueryAttribcv: Obtain the value of a string OpenKODE Core attribute. */
-KD_API const KDchar *KD_APIENTRY kdQueryAttribcv(KDint attribute);
-#define KD_ATTRIB_VENDOR 39
-#define KD_ATTRIB_VERSION 40
-#define KD_ATTRIB_PLATFORM 41
-
-/* kdQueryIndexedAttribcv: Obtain the value of an indexed string OpenKODE Core attribute. */
-KD_API const KDchar *KD_APIENTRY kdQueryIndexedAttribcv(KDint attribute, KDint index);
-
-/*******************************************************
- * Threads and synchronization
- *******************************************************/
-
-/* kdThreadAttrCreate: Create a thread attribute object. */
-typedef struct KDThreadAttr KDThreadAttr;
-KD_API KDThreadAttr *KD_APIENTRY kdThreadAttrCreate(void);
-
-/* kdThreadAttrFree: Free a thread attribute object. */
-KD_API KDint KD_APIENTRY kdThreadAttrFree(KDThreadAttr *attr);
-
-/* kdThreadAttrSetDetachState: Set detachstate attribute. */
-#define KD_THREAD_CREATE_JOINABLE 0
-#define KD_THREAD_CREATE_DETACHED 1
-KD_API KDint KD_APIENTRY kdThreadAttrSetDetachState(KDThreadAttr *attr, KDint detachstate);
-
-/* kdThreadAttrSetStackSize: Set stacksize attribute. */
-KD_API KDint KD_APIENTRY kdThreadAttrSetStackSize(KDThreadAttr *attr, KDsize stacksize);
-
-/* kdThreadCreate: Create a new thread. */
-typedef struct KDThread KDThread;
-KD_API KDThread *KD_APIENTRY kdThreadCreate(const KDThreadAttr *attr, void *(*start_routine)(void *), void *arg);
-
-/* kdThreadExit: Terminate this thread. */
-KD_API KD_NORETURN void KD_APIENTRY kdThreadExit(void *retval);
-
-/* kdThreadJoin: Wait for termination of another thread. */
-KD_API KDint KD_APIENTRY kdThreadJoin(KDThread *thread, void **retval);
-
-/* kdThreadDetach: Allow resources to be freed as soon as a thread terminates. */
-KD_API KDint KD_APIENTRY kdThreadDetach(KDThread *thread);
-
-/* kdThreadSelf: Return calling thread&#8217;s ID. */
-KD_API KDThread *KD_APIENTRY kdThreadSelf(void);
-
-/* kdThreadOnce: Wrap initialization code so it is executed only once. */
-#ifndef KD_NO_STATIC_DATA
-typedef struct KDThreadOnce {
- void *impl;
-} KDThreadOnce;
-#define KD_THREAD_ONCE_INIT { 0 }
-KD_API KDint KD_APIENTRY kdThreadOnce(KDThreadOnce *once_control, void (*init_routine)(void));
-#endif /* ndef KD_NO_STATIC_DATA */
-
-/* kdThreadMutexCreate: Create a mutex. */
-typedef struct KDThreadMutex KDThreadMutex;
-KD_API KDThreadMutex *KD_APIENTRY kdThreadMutexCreate(const void *mutexattr);
-
-/* kdThreadMutexFree: Free a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexFree(KDThreadMutex *mutex);
-
-/* kdThreadMutexLock: Lock a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexLock(KDThreadMutex *mutex);
-
-/* kdThreadMutexUnlock: Unlock a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexUnlock(KDThreadMutex *mutex);
-
-/* kdThreadCondCreate: Create a condition variable. */
-typedef struct KDThreadCond KDThreadCond;
-KD_API KDThreadCond *KD_APIENTRY kdThreadCondCreate(const void *attr);
-
-/* kdThreadCondFree: Free a condition variable. */
-KD_API KDint KD_APIENTRY kdThreadCondFree(KDThreadCond *cond);
-
-/* kdThreadCondSignal, kdThreadCondBroadcast: Signal a condition variable. */
-KD_API KDint KD_APIENTRY kdThreadCondSignal(KDThreadCond *cond);
-KD_API KDint KD_APIENTRY kdThreadCondBroadcast(KDThreadCond *cond);
-
-/* kdThreadCondWait: Wait for a condition variable to be signalled. */
-KD_API KDint KD_APIENTRY kdThreadCondWait(KDThreadCond *cond, KDThreadMutex *mutex);
-
-/* kdThreadSemCreate: Create a semaphore. */
-typedef struct KDThreadSem KDThreadSem;
-KD_API KDThreadSem *KD_APIENTRY kdThreadSemCreate(KDuint value);
-
-/* kdThreadSemFree: Free a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemFree(KDThreadSem *sem);
-
-/* kdThreadSemWait: Lock a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemWait(KDThreadSem *sem);
-
-/* kdThreadSemPost: Unlock a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemPost(KDThreadSem *sem);
-
-/*******************************************************
- * Events
- *******************************************************/
-
-/* KDEvent: Struct type containing an event. */
-typedef struct KDEvent KDEvent;
-#define KD_EVENT_USER 0x40000000
-
-/* kdWaitEvent: Get next event from thread&#8217;s event queue. */
-KD_API const KDEvent *KD_APIENTRY kdWaitEvent(KDust timeout);
-
-/* kdSetEventUserptr: Set the userptr for global events. */
-KD_API void KD_APIENTRY kdSetEventUserptr(void *userptr);
-
-/* kdDefaultEvent: Perform default processing on an unrecognized event. */
-KD_API void KD_APIENTRY kdDefaultEvent(const KDEvent *event);
-
-/* kdPumpEvents: Pump the thread&#8217;s event queue, performing callbacks. */
-KD_API KDint KD_APIENTRY kdPumpEvents(void);
-
-/* kdInstallCallback: Install or remove a callback function for event processing. */
-typedef void (KD_APIENTRY KDCallbackFunc)(const KDEvent *event);
-KD_API KDint KD_APIENTRY kdInstallCallback(KDCallbackFunc *func, KDint eventtype, void *eventuserptr);
-
-/* kdCreateEvent: Create an event for posting. */
-KD_API KDEvent *KD_APIENTRY kdCreateEvent(void);
-
-/* kdPostEvent, kdPostThreadEvent: Post an event into a queue. */
-KD_API KDint KD_APIENTRY kdPostEvent(KDEvent *event);
-KD_API KDint KD_APIENTRY kdPostThreadEvent(KDEvent *event, KDThread *thread);
-typedef struct KDEventUser {
- union {
- KDint64 i64;
- void *p;
- struct {
- KDint32 a;
- KDint32 b;
- } i32pair;
- } value1;
- union {
- KDint64 i64;
- struct {
- union {
- KDint32 i32;
- void *p;
- } value2;
- union {
- KDint32 i32;
- void *p;
- } value3;
- } i32orp;
- } value23;
-} KDEventUser;
-
-/* kdFreeEvent: Abandon an event instead of posting it. */
-KD_API void KD_APIENTRY kdFreeEvent(KDEvent *event);
-
-/*******************************************************
- * System events
- *******************************************************/
-
-/* KD_EVENT_QUIT: Event to request to quit application. */
-#define KD_EVENT_QUIT 43
-
-/* KD_EVENT_PAUSE: Application pause event. */
-#define KD_EVENT_PAUSE 45
-
-/* KD_EVENT_RESUME: Application resume event. */
-#define KD_EVENT_RESUME 46
-
-/* KD_EVENT_ORIENTATION: Orientation change event. */
-#define KD_EVENT_ORIENTATION 48
-
-/* KD_IOGROUP_EVENT: I/O group for OpenKODE Core system events implemented as state values. */
-#define KD_IOGROUP_EVENT 0x100
-#define KD_STATE_EVENT_USING_BATTERY (KD_IOGROUP_EVENT + 0)
-#define KD_STATE_EVENT_LOW_BATTERY (KD_IOGROUP_EVENT + 1)
-
-
-/* KD_IOGROUP_ORIENTATION: I/O group for OpenKODE Core orientation state. */
-#define KD_IOGROUP_ORIENTATION 0x200
-#define KD_STATE_ORIENTATION_OVERALL (KD_IOGROUP_ORIENTATION + 0)
-#define KD_STATE_ORIENTATION_SCREEN (KD_IOGROUP_ORIENTATION + 1)
-#define KD_STATE_ORIENTATION_RENDERING (KD_IOGROUP_ORIENTATION + 2)
-#define KD_STATE_ORIENTATION_LOCKSURFACE (KD_IOGROUP_ORIENTATION + 3)
-
-
-/*******************************************************
- * Application startup and exit.
- *******************************************************/
-
-/* kdMain: The application-defined main function. */
-KDint KD_APIENTRY kdMain(KDint argc, const KDchar *const *argv);
-
-/* kdExit: Exit the application. */
-KD_API KD_NORETURN void KD_APIENTRY kdExit(KDint status);
-
-/*******************************************************
- * Utility library functions
- *******************************************************/
-
-/* kdAbs: Compute the absolute value of an integer. */
-KD_API KDint KD_APIENTRY kdAbs(KDint i);
-
-/* kdStrtof: Convert a string to a floating point number. */
-KD_API KDfloat32 KD_APIENTRY kdStrtof(const KDchar *s, KDchar **endptr);
-
-/* kdStrtol, kdStrtoul: Convert a string to an integer. */
-KD_API KDint KD_APIENTRY kdStrtol(const KDchar *s, KDchar **endptr, KDint base);
-KD_API KDuint KD_APIENTRY kdStrtoul(const KDchar *s, KDchar **endptr, KDint base);
-
-/* kdLtostr, kdUltostr: Convert an integer to a string. */
-#define KD_LTOSTR_MAXLEN ((sizeof(KDint)*8*3+6)/10+2)
-#define KD_ULTOSTR_MAXLEN ((sizeof(KDint)*8+2)/3+1)
-KD_API KDssize KD_APIENTRY kdLtostr(KDchar *buffer, KDsize buflen, KDint number);
-KD_API KDssize KD_APIENTRY kdUltostr(KDchar *buffer, KDsize buflen, KDuint number, KDint base);
-
-/* kdFtostr: Convert a float to a string. */
-#define KD_FTOSTR_MAXLEN 16
-KD_API KDssize KD_APIENTRY kdFtostr(KDchar *buffer, KDsize buflen, KDfloat32 number);
-
-/* kdCryptoRandom: Return random data. */
-KD_API KDint KD_APIENTRY kdCryptoRandom(KDuint8 *buf, KDsize buflen);
-
-/*******************************************************
- * Locale specific functions
- *******************************************************/
-
-/* kdGetLocale: Determine the current language and locale. */
-KD_API const KDchar *KD_APIENTRY kdGetLocale(void);
-
-/*******************************************************
- * Memory allocation
- *******************************************************/
-
-/* kdMalloc: Allocate memory. */
-KD_API void *KD_APIENTRY kdMalloc(KDsize size);
-
-/* kdFree: Free allocated memory block. */
-KD_API void KD_APIENTRY kdFree(void *ptr);
-
-/* kdRealloc: Resize memory block. */
-KD_API void *KD_APIENTRY kdRealloc(void *ptr, KDsize size);
-
-/*******************************************************
- * Thread-local storage.
- *******************************************************/
-
-/* kdGetTLS: Get the thread-local storage pointer. */
-KD_API void *KD_APIENTRY kdGetTLS(void);
-
-/* kdSetTLS: Set the thread-local storage pointer. */
-KD_API void KD_APIENTRY kdSetTLS(void *ptr);
-
-/*******************************************************
- * Mathematical functions
- *******************************************************/
-#define KD_E_F 2.71828175F
-#define KD_PI_F 3.14159274F
-#define KD_PI_2_F 1.57079637F
-#define KD_2PI_F 6.28318548F
-#define KD_LOG2E_F 1.44269502F
-#define KD_LOG10E_F 0.434294492F
-#define KD_LN2_F 0.693147182F
-#define KD_LN10_F 2.30258512F
-#define KD_PI_4_F 0.785398185F
-#define KD_1_PI_F 0.318309873F
-#define KD_2_PI_F 0.636619747F
-#define KD_2_SQRTPI_F 1.12837923F
-#define KD_SQRT2_F 1.41421354F
-#define KD_SQRT1_2_F 0.707106769F
-#define KD_FLT_EPSILON 1.19209290E-07F
-#define KD_FLT_MAX 3.40282346638528860e+38F
-#define KD_FLT_MIN 1.17549435e-38F
-/* KD_INFINITY is defined in kdplatform.h since no portable definition
- * is possible. */
-#define kdIsNan(x) (((x) != (x)) ? 1 : 0)
-#define KD_HUGE_VALF KD_INFINITY
-#define KD_DEG_TO_RAD_F 0.0174532924F
-#define KD_RAD_TO_DEG_F 57.2957802F
-
-/* kdAcosf: Arc cosine function. */
-KD_API KDfloat32 KD_APIENTRY kdAcosf(KDfloat32 x);
-
-/* kdAsinf: Arc sine function. */
-KD_API KDfloat32 KD_APIENTRY kdAsinf(KDfloat32 x);
-
-/* kdAtanf: Arc tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdAtanf(KDfloat32 x);
-
-/* kdAtan2f: Arc tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdAtan2f(KDfloat32 y, KDfloat32 x);
-
-/* kdCosf: Cosine function. */
-KD_API KDfloat32 KD_APIENTRY kdCosf(KDfloat32 x);
-
-/* kdSinf: Sine function. */
-KD_API KDfloat32 KD_APIENTRY kdSinf(KDfloat32 x);
-
-/* kdTanf: Tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdTanf(KDfloat32 x);
-
-/* kdExpf: Exponential function. */
-KD_API KDfloat32 KD_APIENTRY kdExpf(KDfloat32 x);
-
-/* kdLogf: Natural logarithm function. */
-KD_API KDfloat32 KD_APIENTRY kdLogf(KDfloat32 x);
-
-/* kdFabsf: Absolute value. */
-KD_API KDfloat32 KD_APIENTRY kdFabsf(KDfloat32 x);
-
-/* kdPowf: Power function. */
-KD_API KDfloat32 KD_APIENTRY kdPowf(KDfloat32 x, KDfloat32 y);
-
-/* kdSqrtf: Square root function. */
-KD_API KDfloat32 KD_APIENTRY kdSqrtf(KDfloat32 x);
-
-/* kdCeilf: Return ceiling value. */
-KD_API KDfloat32 KD_APIENTRY kdCeilf(KDfloat32 x);
-
-/* kdFloorf: Return floor value. */
-KD_API KDfloat32 KD_APIENTRY kdFloorf(KDfloat32 x);
-
-/* kdRoundf: Round value to nearest integer. */
-KD_API KDfloat32 KD_APIENTRY kdRoundf(KDfloat32 x);
-
-/* kdInvsqrtf: Inverse square root function. */
-KD_API KDfloat32 KD_APIENTRY kdInvsqrtf(KDfloat32 x);
-
-/* kdFmodf: Calculate floating point remainder. */
-KD_API KDfloat32 KD_APIENTRY kdFmodf(KDfloat32 x, KDfloat32 y);
-
-/*******************************************************
- * String and memory functions
- *******************************************************/
-
-/* kdMemchr: Scan memory for a byte value. */
-KD_API void *KD_APIENTRY kdMemchr(const void *src, KDint byte, KDsize len);
-
-/* kdMemcmp: Compare two memory regions. */
-KD_API KDint KD_APIENTRY kdMemcmp(const void *src1, const void *src2, KDsize len);
-
-/* kdMemcpy: Copy a memory region, no overlapping. */
-KD_API void *KD_APIENTRY kdMemcpy(void *buf, const void *src, KDsize len);
-
-/* kdMemmove: Copy a memory region, overlapping allowed. */
-KD_API void *KD_APIENTRY kdMemmove(void *buf, const void *src, KDsize len);
-
-/* kdMemset: Set bytes in memory to a value. */
-KD_API void *KD_APIENTRY kdMemset(void *buf, KDint byte, KDsize len);
-
-/* kdStrchr: Scan string for a byte value. */
-KD_API KDchar *KD_APIENTRY kdStrchr(const KDchar *str, KDint ch);
-
-/* kdStrcmp: Compares two strings. */
-KD_API KDint KD_APIENTRY kdStrcmp(const KDchar *str1, const KDchar *str2);
-
-/* kdStrlen: Determine the length of a string. */
-KD_API KDsize KD_APIENTRY kdStrlen(const KDchar *str);
-
-/* kdStrnlen: Determine the length of a string. */
-KD_API KDsize KD_APIENTRY kdStrnlen(const KDchar *str, KDsize maxlen);
-
-/* kdStrncat_s: Concatenate two strings. */
-KD_API KDint KD_APIENTRY kdStrncat_s(KDchar *buf, KDsize buflen, const KDchar *src, KDsize srcmaxlen);
-
-/* kdStrncmp: Compares two strings with length limit. */
-KD_API KDint KD_APIENTRY kdStrncmp(const KDchar *str1, const KDchar *str2, KDsize maxlen);
-
-/* kdStrcpy_s: Copy a string with an overrun check. */
-KD_API KDint KD_APIENTRY kdStrcpy_s(KDchar *buf, KDsize buflen, const KDchar *src);
-
-/* kdStrncpy_s: Copy a string with an overrun check. */
-KD_API KDint KD_APIENTRY kdStrncpy_s(KDchar *buf, KDsize buflen, const KDchar *src, KDsize srclen);
-
-/*******************************************************
- * Time functions
- *******************************************************/
-
-/* kdGetTimeUST: Get the current unadjusted system time. */
-KD_API KDust KD_APIENTRY kdGetTimeUST(void);
-
-/* kdTime: Get the current wall clock time. */
-KD_API KDtime KD_APIENTRY kdTime(KDtime *timep);
-
-/* kdGmtime_r, kdLocaltime_r: Convert a seconds-since-epoch time into broken-down time. */
-typedef struct KDTm {
- KDint32 tm_sec;
- KDint32 tm_min;
- KDint32 tm_hour;
- KDint32 tm_mday;
- KDint32 tm_mon;
- KDint32 tm_year;
- KDint32 tm_wday;
- KDint32 tm_yday;
-} KDTm;
-KD_API KDTm *KD_APIENTRY kdGmtime_r(const KDtime *timep, KDTm *result);
-KD_API KDTm *KD_APIENTRY kdLocaltime_r(const KDtime *timep, KDTm *result);
-
-/* kdUSTAtEpoch: Get the UST corresponding to KDtime 0. */
-KD_API KDust KD_APIENTRY kdUSTAtEpoch(void);
-
-/*******************************************************
- * Timer functions
- *******************************************************/
-
-/* kdSetTimer: Set timer. */
-#define KD_TIMER_ONESHOT 61
-#define KD_TIMER_PERIODIC_AVERAGE 62
-#define KD_TIMER_PERIODIC_MINIMUM 63
-typedef struct KDTimer KDTimer;
-KD_API KDTimer *KD_APIENTRY kdSetTimer(KDint64 interval, KDint periodic, void *eventuserptr);
-
-/* kdCancelTimer: Cancel and free a timer. */
-KD_API KDint KD_APIENTRY kdCancelTimer(KDTimer *timer);
-
-/* KD_EVENT_TIMER: Timer fire event. */
-#define KD_EVENT_TIMER 42
-
-/*******************************************************
- * File system
- *******************************************************/
-#define KD_EOF (-1)
-
-/* kdFopen: Open a file from the file system. */
-typedef struct KDFile KDFile;
-KD_API KDFile *KD_APIENTRY kdFopen(const KDchar *pathname, const KDchar *mode);
-
-/* kdFclose: Close an open file. */
-KD_API KDint KD_APIENTRY kdFclose(KDFile *file);
-
-/* kdFflush: Flush an open file. */
-KD_API KDint KD_APIENTRY kdFflush(KDFile *file);
-
-/* kdFread: Read from a file. */
-KD_API KDsize KD_APIENTRY kdFread(void *buffer, KDsize size, KDsize count, KDFile *file);
-
-/* kdFwrite: Write to a file. */
-KD_API KDsize KD_APIENTRY kdFwrite(const void *buffer, KDsize size, KDsize count, KDFile *file);
-
-/* kdGetc: Read next byte from an open file. */
-KD_API KDint KD_APIENTRY kdGetc(KDFile *file);
-
-/* kdPutc: Write a byte to an open file. */
-KD_API KDint KD_APIENTRY kdPutc(KDint c, KDFile *file);
-
-/* kdFgets: Read a line of text from an open file. */
-KD_API KDchar *KD_APIENTRY kdFgets(KDchar *buffer, KDsize buflen, KDFile *file);
-
-/* kdFEOF: Check for end of file. */
-KD_API KDint KD_APIENTRY kdFEOF(KDFile *file);
-
-/* kdFerror: Check for an error condition on an open file. */
-KD_API KDint KD_APIENTRY kdFerror(KDFile *file);
-
-/* kdClearerr: Clear a file&#8217;s error and end-of-file indicators. */
-KD_API void KD_APIENTRY kdClearerr(KDFile *file);
-
-/* kdFseek: Reposition the file position indicator in a file. */
-typedef enum {
- KD_SEEK_SET = 0,
- KD_SEEK_CUR = 1,
- KD_SEEK_END = 2
-} KDfileSeekOrigin;
-KD_API KDint KD_APIENTRY kdFseek(KDFile *file, KDoff offset, KDfileSeekOrigin origin);
-
-/* kdFtell: Get the file position of an open file. */
-KD_API KDoff KD_APIENTRY kdFtell(KDFile *file);
-
-/* kdMkdir: Create new directory. */
-KD_API KDint KD_APIENTRY kdMkdir(const KDchar *pathname);
-
-/* kdRmdir: Delete a directory. */
-KD_API KDint KD_APIENTRY kdRmdir(const KDchar *pathname);
-
-/* kdRename: Rename a file. */
-KD_API KDint KD_APIENTRY kdRename(const KDchar *src, const KDchar *dest);
-
-/* kdRemove: Delete a file. */
-KD_API KDint KD_APIENTRY kdRemove(const KDchar *pathname);
-
-/* kdTruncate: Truncate or extend a file. */
-KD_API KDint KD_APIENTRY kdTruncate(const KDchar *pathname, KDoff length);
-
-/* kdStat, kdFstat: Return information about a file. */
-typedef struct KDStat {
- KDmode st_mode;
- KDoff st_size;
- KDtime st_mtime;
-} KDStat;
-KD_API KDint KD_APIENTRY kdStat(const KDchar *pathname, struct KDStat *buf);
-KD_API KDint KD_APIENTRY kdFstat(KDFile *file, struct KDStat *buf);
-#define KD_ISREG(m) ((m) & 0x8000)
-#define KD_ISDIR(m) ((m) & 0x4000)
-
-/* kdAccess: Determine whether the application can access a file or directory. */
-KD_API KDint KD_APIENTRY kdAccess(const KDchar *pathname, KDint amode);
-#define KD_R_OK 4
-#define KD_W_OK 2
-#define KD_X_OK 1
-
-/* kdOpenDir: Open a directory ready for listing. */
-typedef struct KDDir KDDir;
-KD_API KDDir *KD_APIENTRY kdOpenDir(const KDchar *pathname);
-
-/* kdReadDir: Return the next file in a directory. */
-typedef struct KDDirent {
- const KDchar *d_name;
-} KDDirent;
-KD_API KDDirent *KD_APIENTRY kdReadDir(KDDir *dir);
-
-/* kdCloseDir: Close a directory. */
-KD_API KDint KD_APIENTRY kdCloseDir(KDDir *dir);
-
-/* kdGetFree: Get free space on a drive. */
-KD_API KDoff KD_APIENTRY kdGetFree(const KDchar *pathname);
-
-/*******************************************************
- * Network sockets
- *******************************************************/
-
-/* KDSockaddr: Struct type for socket address. */
-typedef struct KDSockaddr {
- KDuint16 family;
- union {
-#define KD_AF_INET 70
- struct {
- KDuint16 port;
- KDuint32 address;
- } sin;
- } data;
-} KDSockaddr;
-
-/* kdNameLookup: Look up a hostname. */
-KD_API KDint KD_APIENTRY kdNameLookup(KDint af, const KDchar *hostname, void *eventuserptr);
-
-/* kdNameLookupCancel: Selectively cancels ongoing kdNameLookup operations. */
-KD_API void KD_APIENTRY kdNameLookupCancel(void *eventuserptr);
-
-/* kdSocketCreate: Creates a socket. */
-typedef struct KDSocket KDSocket;
-KD_API KDSocket *KD_APIENTRY kdSocketCreate(KDint type, void *eventuserptr);
-#define KD_SOCK_TCP 64
-#define KD_SOCK_UDP 65
-
-/* kdSocketClose: Closes a socket. */
-KD_API KDint KD_APIENTRY kdSocketClose(KDSocket *socket);
-
-/* kdSocketBind: Bind a socket. */
-KD_API KDint KD_APIENTRY kdSocketBind(KDSocket *socket, const struct KDSockaddr *addr, KDboolean reuse);
-#define KD_INADDR_ANY 0
-
-/* kdSocketGetName: Get the local address of a socket. */
-KD_API KDint KD_APIENTRY kdSocketGetName(KDSocket *socket, struct KDSockaddr *addr);
-
-/* kdSocketConnect: Connects a socket. */
-KD_API KDint KD_APIENTRY kdSocketConnect(KDSocket *socket, const KDSockaddr *addr);
-
-/* kdSocketListen: Listen on a socket. */
-KD_API KDint KD_APIENTRY kdSocketListen(KDSocket *socket, KDint backlog);
-
-/* kdSocketAccept: Accept an incoming connection. */
-KD_API KDSocket *KD_APIENTRY kdSocketAccept(KDSocket *socket, KDSockaddr *addr, void *eventuserptr);
-
-/* kdSocketSend, kdSocketSendTo: Send data to a socket. */
-KD_API KDint KD_APIENTRY kdSocketSend(KDSocket *socket, const void *buf, KDint len);
-KD_API KDint KD_APIENTRY kdSocketSendTo(KDSocket *socket, const void *buf, KDint len, const KDSockaddr *addr);
-
-/* kdSocketRecv, kdSocketRecvFrom: Receive data from a socket. */
-KD_API KDint KD_APIENTRY kdSocketRecv(KDSocket *socket, void *buf, KDint len);
-KD_API KDint KD_APIENTRY kdSocketRecvFrom(KDSocket *socket, void *buf, KDint len, KDSockaddr *addr);
-
-/* kdHtonl: Convert a 32-bit integer from host to network byte order. */
-KD_API KDuint32 KD_APIENTRY kdHtonl(KDuint32 hostlong);
-
-/* kdHtons: Convert a 16-bit integer from host to network byte order. */
-KD_API KDuint16 KD_APIENTRY kdHtons(KDuint16 hostshort);
-
-/* kdNtohl: Convert a 32-bit integer from network to host byte order. */
-KD_API KDuint32 KD_APIENTRY kdNtohl(KDuint32 netlong);
-
-/* kdNtohs: Convert a 16-bit integer from network to host byte order. */
-KD_API KDuint16 KD_APIENTRY kdNtohs(KDuint16 netshort);
-
-/* kdInetAton: Convert a &#8220;dotted quad&#8221; format address to an integer. */
-KD_API KDint KD_APIENTRY kdInetAton(const KDchar *cp, KDuint32 *inp);
-
-/* kdInetNtop: Convert a network address to textual form. */
-#define KD_INET_ADDRSTRLEN 16
-typedef struct KDInAddr {
- KDuint32 s_address; // Renamed this from s_addr as it causes a conflict with winsock2.h
-} KDInAddr;
-KD_API const KDchar *KD_APIENTRY kdInetNtop(KDuint af, const void *src, KDchar *dst, KDsize cnt);
-
-/* KD_EVENT_SOCKET_READABLE: Event to indicate that a socket is readable. */
-#define KD_EVENT_SOCKET_READABLE 49
-typedef struct KDEventSocketReadable {
- KDSocket *socket;
-} KDEventSocketReadable;
-
-/* KD_EVENT_SOCKET_WRITABLE: Event to indicate that a socket is writable. */
-#define KD_EVENT_SOCKET_WRITABLE 50
-typedef struct KDEventSocketWritable {
- KDSocket *socket;
-} KDEventSocketWritable;
-
-/* KD_EVENT_SOCKET_CONNECT_COMPLETE: Event generated when a socket connect is complete */
-#define KD_EVENT_SOCKET_CONNECT_COMPLETE 51
-typedef struct KDEventSocketConnect {
- KDSocket *socket;
- KDint32 error;
-} KDEventSocketConnect;
-
-/* KD_EVENT_SOCKET_INCOMING: Event generated when a listening socket detects an incoming connection or an error. */
-#define KD_EVENT_SOCKET_INCOMING 52
-typedef struct KDEventSocketIncoming {
- KDSocket *socket;
-} KDEventSocketIncoming;
-
-/* KD_EVENT_NAME_LOOKUP_COMPLETE: kdNameLookup complete event. */
-#define KD_EVENT_NAME_LOOKUP_COMPLETE 53
-typedef struct KDEventNameLookup {
- KDint32 error;
- KDint32 resultlen;
- const KDSockaddr *result;
- KDboolean more;
-} KDEventNameLookup;
-
-/*******************************************************
- * Input/output
- *******************************************************/
-
-/* KD_EVENT_STATE: State changed event. */
-#define KD_EVENT_STATE 55
-
-typedef struct KDEventState {
- KDint32 index;
- union {
- KDint32 i;
- KDint64 l;
- KDfloat32 f;
- } value;
-} KDEventState;
-
-/* KD_EVENT_INPUT: Input changed event. */
-#define KD_EVENT_INPUT 56
-
-typedef struct KDEventInput {
- KDint32 index;
- union {
- KDint32 i;
- KDint64 l;
- KDfloat32 f;
- } value;
-} KDEventInput;
-
-/* KD_EVENT_INPUT_JOG: Jogdial jog event. */
-#define KD_EVENT_INPUT_JOG 71
-typedef struct KDEventInputJog {
- KDint32 index;
- KDint32 count;
-} KDEventInputJog;
-
-/* KD_EVENT_INPUT_POINTER: Pointer input changed event. */
-#define KD_EVENT_INPUT_POINTER 57
-typedef struct KDEventInputPointer {
- KDint32 index;
- KDint32 select;
- KDint32 x;
- KDint32 y;
-} KDEventInputPointer;
-
-/* KD_EVENT_INPUT_STICK: Joystick stick changed event. */
-#define KD_EVENT_INPUT_STICK 58
-typedef struct KDEventInputStick {
- KDint32 index;
- KDint32 x;
- KDint32 y;
- KDint32 z;
-} KDEventInputStick;
-
-/* kdStateGeti, kdStateGetl, kdStateGetf: get state value(s) */
-KD_API KDint KD_APIENTRY kdStateGeti(KDint startidx, KDuint numidxs, KDint32 *buffer);
-KD_API KDint KD_APIENTRY kdStateGetl(KDint startidx, KDuint numidxs, KDint64 *buffer);
-KD_API KDint KD_APIENTRY kdStateGetf(KDint startidx, KDuint numidxs, KDfloat32 *buffer);
-
-/* kdOutputSeti, kdOutputSetf: set outputs */
-KD_API KDint KD_APIENTRY kdOutputSeti(KDint startidx, KDuint numidxs, const KDint32 *buffer);
-KD_API KDint KD_APIENTRY kdOutputSetf(KDint startidx, KDuint numidxs, const KDfloat32 *buffer);
-#define KD_IO_CONTROLLER_STRIDE 64
-
-/* KD_IOGROUP_GAMEKEYS: I/O group for game keys. */
-#define KD_IOGROUP_GAMEKEYS 0x1000
-#define KD_STATE_GAMEKEYS_AVAILABILITY (KD_IOGROUP_GAMEKEYS + 0)
-#define KD_INPUT_GAMEKEYS_UP (KD_IOGROUP_GAMEKEYS + 1)
-#define KD_INPUT_GAMEKEYS_LEFT (KD_IOGROUP_GAMEKEYS + 2)
-#define KD_INPUT_GAMEKEYS_RIGHT (KD_IOGROUP_GAMEKEYS + 3)
-#define KD_INPUT_GAMEKEYS_DOWN (KD_IOGROUP_GAMEKEYS + 4)
-#define KD_INPUT_GAMEKEYS_FIRE (KD_IOGROUP_GAMEKEYS + 5)
-#define KD_INPUT_GAMEKEYS_A (KD_IOGROUP_GAMEKEYS + 6)
-#define KD_INPUT_GAMEKEYS_B (KD_IOGROUP_GAMEKEYS + 7)
-#define KD_INPUT_GAMEKEYS_C (KD_IOGROUP_GAMEKEYS + 8)
-#define KD_INPUT_GAMEKEYS_D (KD_IOGROUP_GAMEKEYS + 9)
-
-/* KD_IOGROUP_GAMEKEYSNC: I/O group for game keys, no chording. */
-#define KD_IOGROUP_GAMEKEYSNC 0x1100
-#define KD_STATE_GAMEKEYSNC_AVAILABILITY (KD_IOGROUP_GAMEKEYSNC + 0)
-#define KD_INPUT_GAMEKEYSNC_UP (KD_IOGROUP_GAMEKEYSNC + 1)
-#define KD_INPUT_GAMEKEYSNC_LEFT (KD_IOGROUP_GAMEKEYSNC + 2)
-#define KD_INPUT_GAMEKEYSNC_RIGHT (KD_IOGROUP_GAMEKEYSNC + 3)
-#define KD_INPUT_GAMEKEYSNC_DOWN (KD_IOGROUP_GAMEKEYSNC + 4)
-#define KD_INPUT_GAMEKEYSNC_FIRE (KD_IOGROUP_GAMEKEYSNC + 5)
-#define KD_INPUT_GAMEKEYSNC_A (KD_IOGROUP_GAMEKEYSNC + 6)
-#define KD_INPUT_GAMEKEYSNC_B (KD_IOGROUP_GAMEKEYSNC + 7)
-#define KD_INPUT_GAMEKEYSNC_C (KD_IOGROUP_GAMEKEYSNC + 8)
-#define KD_INPUT_GAMEKEYSNC_D (KD_IOGROUP_GAMEKEYSNC + 9)
-
-/* KD_IOGROUP_PHONEKEYPAD: I/O group for phone keypad. */
-#define KD_IOGROUP_PHONEKEYPAD 0x2000
-#define KD_STATE_PHONEKEYPAD_AVAILABILITY (KD_IOGROUP_PHONEKEYPAD + 0)
-#define KD_INPUT_PHONEKEYPAD_0 (KD_IOGROUP_PHONEKEYPAD + 1)
-#define KD_INPUT_PHONEKEYPAD_1 (KD_IOGROUP_PHONEKEYPAD + 2)
-#define KD_INPUT_PHONEKEYPAD_2 (KD_IOGROUP_PHONEKEYPAD + 3)
-#define KD_INPUT_PHONEKEYPAD_3 (KD_IOGROUP_PHONEKEYPAD + 4)
-#define KD_INPUT_PHONEKEYPAD_4 (KD_IOGROUP_PHONEKEYPAD + 5)
-#define KD_INPUT_PHONEKEYPAD_5 (KD_IOGROUP_PHONEKEYPAD + 6)
-#define KD_INPUT_PHONEKEYPAD_6 (KD_IOGROUP_PHONEKEYPAD + 7)
-#define KD_INPUT_PHONEKEYPAD_7 (KD_IOGROUP_PHONEKEYPAD + 8)
-#define KD_INPUT_PHONEKEYPAD_8 (KD_IOGROUP_PHONEKEYPAD + 9)
-#define KD_INPUT_PHONEKEYPAD_9 (KD_IOGROUP_PHONEKEYPAD + 10)
-#define KD_INPUT_PHONEKEYPAD_STAR (KD_IOGROUP_PHONEKEYPAD + 11)
-#define KD_INPUT_PHONEKEYPAD_HASH (KD_IOGROUP_PHONEKEYPAD + 12)
-#define KD_INPUT_PHONEKEYPAD_LEFTSOFT (KD_IOGROUP_PHONEKEYPAD + 13)
-#define KD_INPUT_PHONEKEYPAD_RIGHTSOFT (KD_IOGROUP_PHONEKEYPAD + 14)
-#define KD_STATE_PHONEKEYPAD_ORIENTATION (KD_IOGROUP_PHONEKEYPAD + 15)
-
-/* KD_IOGROUP_VIBRATE: I/O group for vibrate. */
-#define KD_IOGROUP_VIBRATE 0x3000
-#define KD_STATE_VIBRATE_AVAILABILITY (KD_IOGROUP_VIBRATE + 0)
-#define KD_STATE_VIBRATE_MINFREQUENCY (KD_IOGROUP_VIBRATE + 1)
-#define KD_STATE_VIBRATE_MAXFREQUENCY (KD_IOGROUP_VIBRATE + 2)
-#define KD_OUTPUT_VIBRATE_VOLUME (KD_IOGROUP_VIBRATE + 3)
-#define KD_OUTPUT_VIBRATE_FREQUENCY (KD_IOGROUP_VIBRATE + 4)
-
-/* KD_IOGROUP_POINTER: I/O group for pointer. */
-#define KD_IOGROUP_POINTER 0x4000
-#define KD_STATE_POINTER_AVAILABILITY (KD_IOGROUP_POINTER + 0)
-#define KD_INPUT_POINTER_X (KD_IOGROUP_POINTER + 1)
-#define KD_INPUT_POINTER_Y (KD_IOGROUP_POINTER + 2)
-#define KD_INPUT_POINTER_SELECT (KD_IOGROUP_POINTER + 3)
-
-/* KD_IOGROUP_BACKLIGHT: I/O group for backlight. */
-#define KD_IOGROUP_BACKLIGHT 0x5000
-#define KD_STATE_BACKLIGHT_AVAILABILITY (KD_IOGROUP_BACKLIGHT + 0)
-#define KD_OUTPUT_BACKLIGHT_FORCE (KD_IOGROUP_BACKLIGHT + 1)
-
-/* KD_IOGROUP_JOGDIAL: I/O group for a jog dial. */
-#define KD_IOGROUP_JOGDIAL 0x6000
-#define KD_STATE_JOGDIAL_AVAILABILITY (KD_IOGROUP_JOGDIAL + 0)
-#define KD_INPUT_JOGDIAL_UP (KD_IOGROUP_JOGDIAL + 1)
-#define KD_INPUT_JOGDIAL_LEFT (KD_IOGROUP_JOGDIAL + 2)
-#define KD_INPUT_JOGDIAL_RIGHT (KD_IOGROUP_JOGDIAL + 3)
-#define KD_INPUT_JOGDIAL_DOWN (KD_IOGROUP_JOGDIAL + 4)
-#define KD_INPUT_JOGDIAL_SELECT (KD_IOGROUP_JOGDIAL + 5)
-
-/* KD_IOGROUP_STICK: I/O group for joystick. */
-#define KD_IOGROUP_STICK 0x7000
-#define KD_STATE_STICK_AVAILABILITY (KD_IOGROUP_STICK + 0)
-#define KD_INPUT_STICK_X (KD_IOGROUP_STICK + 1)
-#define KD_INPUT_STICK_Y (KD_IOGROUP_STICK + 2)
-#define KD_INPUT_STICK_Z (KD_IOGROUP_STICK + 3)
-#define KD_INPUT_STICK_BUTTON (KD_IOGROUP_STICK + 4)
-#define KD_IO_STICK_STRIDE 8
-
-/* KD_IOGROUP_DPAD: I/O group for D-pad. */
-#define KD_IOGROUP_DPAD 0x8000
-#define KD_STATE_DPAD_AVAILABILITY (KD_IOGROUP_DPAD + 0)
-#define KD_STATE_DPAD_COPY (KD_IOGROUP_DPAD + 1)
-#define KD_INPUT_DPAD_UP (KD_IOGROUP_DPAD + 2)
-#define KD_INPUT_DPAD_LEFT (KD_IOGROUP_DPAD + 3)
-#define KD_INPUT_DPAD_RIGHT (KD_IOGROUP_DPAD + 4)
-#define KD_INPUT_DPAD_DOWN (KD_IOGROUP_DPAD + 5)
-#define KD_INPUT_DPAD_SELECT (KD_IOGROUP_DPAD + 6)
-#define KD_IO_DPAD_STRIDE 8
-
-/* KD_IOGROUP_BUTTONS: I/O group for buttons associated with joystick or D-pad. */
-#define KD_IOGROUP_BUTTONS 0x9000
-#define KD_STATE_BUTTONS_AVAILABILITY (KD_IOGROUP_BUTTONS + 0)
-#define KD_INPUT_BUTTONS_0 (KD_IOGROUP_BUTTONS + 1)
-
-/* KD_IO_UNDEFINED: I/O items reserved for implementation-dependent use. */
-#define KD_IO_UNDEFINED 0x40000000
-
-/*******************************************************
- * Windowing
- *******************************************************/
-#ifdef KD_WINDOW_SUPPORTED
-#include <EGL/egl.h>
-typedef struct KDWindow KDWindow;
-
-/* kdCreateWindow: Create a window. */
-KD_API KDWindow *KD_APIENTRY kdCreateWindow(EGLDisplay display, EGLConfig config, void *eventuserptr);
-
-/* kdDestroyWindow: Destroy a window. */
-KD_API KDint KD_APIENTRY kdDestroyWindow(KDWindow *window);
-
-/* kdSetWindowPropertybv, kdSetWindowPropertyiv, kdSetWindowPropertycv: Set a window property to request a change in the on-screen representation of the window. */
-KD_API KDint KD_APIENTRY kdSetWindowPropertybv(KDWindow *window, KDint pname, const KDboolean *param);
-KD_API KDint KD_APIENTRY kdSetWindowPropertyiv(KDWindow *window, KDint pname, const KDint32 *param);
-KD_API KDint KD_APIENTRY kdSetWindowPropertycv(KDWindow *window, KDint pname, const KDchar *param);
-
-/* kdGetWindowPropertybv, kdGetWindowPropertyiv, kdGetWindowPropertycv: Get the current value of a window property. */
-KD_API KDint KD_APIENTRY kdGetWindowPropertybv(KDWindow *window, KDint pname, KDboolean *param);
-KD_API KDint KD_APIENTRY kdGetWindowPropertyiv(KDWindow *window, KDint pname, KDint32 *param);
-KD_API KDint KD_APIENTRY kdGetWindowPropertycv(KDWindow *window, KDint pname, KDchar *param, KDsize *size);
-
-/* kdRealizeWindow: Realize the window as a displayable entity and get the native window handle for passing to EGL. */
-KD_API KDint KD_APIENTRY kdRealizeWindow(KDWindow *window, EGLNativeWindowType *nativewindow);
-
-/* KD_WINDOWPROPERTY_SIZE: Window client area width and height. */
-#define KD_WINDOWPROPERTY_SIZE 66
-
-/* KD_WINDOWPROPERTY_VISIBILITY: Window visibility status. */
-#define KD_WINDOWPROPERTY_VISIBILITY 67
-
-/* KD_WINDOWPROPERTY_FOCUS: Window input focus status. */
-#define KD_WINDOWPROPERTY_FOCUS 68
-
-/* KD_WINDOWPROPERTY_CAPTION: Window caption. */
-#define KD_WINDOWPROPERTY_CAPTION 69
-
-/* KD_EVENT_WINDOW_CLOSE: Event to request to close window. */
-#define KD_EVENT_WINDOW_CLOSE 44
-
-/* KD_EVENT_WINDOWPROPERTY_CHANGE: Notification about realized window property change. */
-#define KD_EVENT_WINDOWPROPERTY_CHANGE 47
-typedef struct KDEventWindowProperty {
- KDint32 pname;
-} KDEventWindowProperty;
-
-/* KD_EVENT_WINDOW_FOCUS: Event for change of window&#8217;s focus state. */
-#define KD_EVENT_WINDOW_FOCUS 60
-typedef struct KDEventWindowFocus {
- KDint32 focusstate;
-} KDEventWindowFocus;
-
-/* KD_EVENT_WINDOW_REDRAW: Event to notify need to redraw the window. */
-#define KD_EVENT_WINDOW_REDRAW 59
-#endif /* KD_WINDOW_SUPPORTED */
-
-/*******************************************************
- * Assertions and logging
- *******************************************************/
-
-/* kdHandleAssertion: Handle assertion failure. */
-KD_API void KD_APIENTRY kdHandleAssertion(const KDchar *condition, const KDchar *filename, KDint linenumber);
-
-/* kdLogMessage: Output a log message. */
-#ifdef KD_NDEBUG
-#define kdLogMessage(s)
-#else
-KD_API void KD_APIENTRY kdLogMessage(const KDchar *string);
-#endif
-
-/* struct KDEvent delayed to the end as it uses event data structs from
- * other parts of the .h file. */
-struct KDEvent {
- KDust timestamp;
- KDint32 type;
- void *userptr;
- union KDEventData {
- KDEventState state;
- KDEventInput input;
- KDEventInputJog inputjog;
- KDEventInputPointer inputpointer;
- KDEventInputStick inputstick;
- KDEventSocketReadable socketreadable;
- KDEventSocketWritable socketwritable;
- KDEventSocketConnect socketconnect;
- KDEventSocketIncoming socketincoming;
- KDEventNameLookup namelookup;
-#ifdef KD_WINDOW_SUPPORTED
- KDEventWindowProperty windowproperty;
- KDEventWindowFocus windowfocus;
-#endif /* KD_WINDOW_SUPPORTED */
- KDEventUser user;
- } data;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_h_ */
-
diff --git a/src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/kdplatform.h b/src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/kdplatform.h
deleted file mode 100644
index aba94c28..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Macos/PlatformLibs/KD/kdplatform.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/* Sample KD/kdplatform.h for OpenKODE Core 1.0.3 */
-#ifndef __kdplatform_h_
-#define __kdplatform_h_
-
-#define KD_API
-#define KD_APIENTRY
-
-typedef int KDint32;
-typedef unsigned int KDuint32;
-typedef long long KDint64;
-typedef unsigned long long KDuint64;
-typedef short KDint16;
-typedef unsigned short KDuint16;
-typedef unsigned long KDuintptr;
-typedef unsigned long KDsize;
-typedef long KDssize;
-#define KDINT_MIN (-0x7fffffff-1)
-#define KDINT_MAX 0x7fffffff
-#define KDUINT_MAX 0xffffffffU
-#define KDINT64_MIN (-0x7fffffffffffffffLL-1)
-#define KDINT64_MAX 0x7fffffffffffffffLL
-#define KDUINT64_MAX 0xffffffffffffffffULL
-#define KDSSIZE_MIN (-0x7fffffff-1)
-#define KDSSIZE_MAX 0x7fffffff
-#define KDSIZE_MAX 0xffffffffU
-#define KDUINTPTR_MAX 0xffffffffU
-#define KD_NORETURN
-
-// no EGL on macOS
-//#define KD_WINDOW_SUPPORTED
-
-#ifdef KD_NDEBUG
-#define kdAssert(c)
-#else
-#define kdAssert(c) ((void)( (c) ? 0 : (kdHandleAssertion(#c, __FILE__, __LINE__), 0)))
-#endif
-
-#define KD_INFINITY_BITS 0x7f800000u
-#define KD_INFINITY (kdBitsToFloatNV(KD_INFINITY_BITS))
-
-KD_API float KD_APIENTRY kdBitsToFloatNV(KDuint32 x);
-
-
-/** KHR_formatted extension */
-#include <stdarg.h>
-typedef va_list KDVaListKHR;
-
-// If there are problems with including stdarg.h here under any of the Windows
-// operating systems, we might want to change it back to using char* instead of
-// va_list
-//typedef char *KDVaListKHR;
-
-
-#define KD_VA_START_KHR(ap, parmN) \
- do {ap = (KDVaListKHR)&parmN + sizeof(parmN);} while(0)
-
-#define KD_VA_ARG_CHAR_KHR(ap) (KDchar)va_arg(ap, KDint)
-#define KD_VA_ARG_CHARPTR_KHR(ap) (KDchar*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_INT16_KHR(ap) (KDint16)va_arg(ap, KDint)
-#define KD_VA_ARG_INT32_KHR(ap) va_arg(ap, KDint32)
-#define KD_VA_ARG_INT_KHR(ap) va_arg(ap, KDint)
-#define KD_VA_ARG_INT64_KHR(ap) va_arg(ap, KDint64)
-#define KD_VA_ARG_INTPTR_KHR(ap) (KDint*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_INT16PTR_KHR(ap) (KDint16*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_FLOAT32_KHR(ap) (KDfloat32)(va_arg(ap, double))
-#define KD_VA_ARG_PTR_KHR(ap) (void *)va_arg(ap, char *)
-
-#define KD_VA_END_KHR(ap) \
- do {ap = (KDVaListKHR)0;} while(0)
-
-#endif /* __kdplatform_h_ */
diff --git a/src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/MinKD.c b/src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/MinKD.c
deleted file mode 100644
index 29c4f476..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/MinKD.c
+++ /dev/null
@@ -1,326 +0,0 @@
-#include "kd.h"
-#include <stdio.h>
-#include <math.h>
-#include <string.h>
-#include <memory.h>
-#include <pthread.h>
-#include <dirent.h>
-
-#include <mach/mach_time.h>
-
-
-KDFile* kdFopen(const KDchar* pathname, const KDchar* mode)
-{
- FILE* retval;
- retval = fopen( pathname, mode );
- return (KDFile*)retval;
-}
-
-
-KDsize kdFread(void *buffer, KDsize size, KDsize count, KDFile *file)
-{
- return fread( buffer, size, count, (FILE*)file );
-}
-
-/* kdFwrite: Write to a file. */
-KDsize kdFwrite(const void *buffer, KDsize size, KDsize count, KDFile *file)
-{
- return fwrite( buffer, size, count, (FILE*)file );
-}
-
-KDint kdFclose(KDFile *file)
-{
- return fclose( (FILE*)file );
-}
-
-/* kdCosf: Cosine function. */
-KDfloat32 kdCosf(KDfloat32 x) { return cosf( x ); }
-
-/* kdSinf: Sine function. */
-KDfloat32 kdSinf(KDfloat32 x) { return sinf( x ); }
-
-KDfloat32 kdSqrtf(KDfloat32 x ) { return sqrtf( x ); }
-
-KDfloat32 kdTanf( KDfloat32 x ) { return tanf( x ); }
-
-KDint kdAbs(KDint i)
-{
- return i < 0 ? -i : i;
-}
-
-
-KDfloat32 kdFabsf(KDfloat32 i) { return fabs( i ); }
-
-/* kdStrcpy_s: Copy a string with an overrun check. */
-
-KDint kdStrcpy_s(KDchar* buf, KDsize buflen, const KDchar* src)
-{
- return kdStrncpy_s(buf, buflen, src, -1);
-}
-
-/* kdStrncpy_s: Copy a string with an overrun check. */
-KDint kdStrncpy_s(KDchar* buf, KDsize buflen, const KDchar* src, KDsize srclen)
-{
- if ( srclen == (KDsize)-1)
- srclen = buflen;
- const char* term = memchr(src, 0, srclen);
- if (term)
- srclen = term - src;
- if (srclen >= buflen) {
- if (buflen)
- *buf = 0;
- return KD_EINVAL;
- }
- memcpy(buf, src, srclen);
- buf[srclen] = 0;
- return 0;
-}
-
-/* kdStrncat_s: Concatenate two strings. */
-KDint kdStrncat_s(KDchar* buf, KDsize buflen, const KDchar* src, KDsize srcmaxlen)
-{
- size_t origlen = strlen(buf);
- const char* p = memchr(src, 0, srcmaxlen);
- if (p)
- srcmaxlen = p - src;
- if (origlen + srcmaxlen >= buflen)
- {
- /* spec says "buf[0] is set to 0". But that's bad if buflen == 0!
- * kdStrncpy_s's spec is better here. */
- if (buflen)
- buf[0] = 0;
- return KD_ERANGE;
- }
- memcpy(buf + origlen, src, srcmaxlen);
- buf[origlen + srcmaxlen] = 0;
- return 0;
-}
-/* kdMemset: Set bytes in memory to a value. */
-void* kdMemset(void *buf, KDint byte, KDsize len) { return memset( buf, byte, len ); }
-
-/* kdStrcmp: Compares two strings. */
-KDint kdStrcmp(const KDchar *str1, const KDchar *str2) { return strcmp( str1, str2); }
-
-/* kdStrlen: Determine the length of a string. */
-KDsize kdStrlen(const KDchar *str) { return strlen( str ); }
-
-void* kdMalloc( KDsize size ) { return malloc(size); }
-
-void kdFree( void* ptr ) { free( ptr ); }
-
-void* kdMemcpy(void *buf, const void *src, KDsize len) { return memcpy( buf, src, len ); }
-
-struct KDThreadMutex
-{
- pthread_mutex_t p_mutex;
-};
-
-/* kdThreadMutexCreate: Create a mutex. */
-KD_API KDThreadMutex* kdThreadMutexCreate(const void *mutexattr)
-{
- KDThreadMutex* mutex = malloc(sizeof(KDThreadMutex));
- if (mutex)
- {
- if (pthread_mutex_init(&mutex->p_mutex, NULL) == 0)
- {
- return mutex;
- }
- free(mutex);
- }
-
- return KD_NULL;
-}
-
-/* kdThreadMutexFree: Free a mutex. */
-KDint kdThreadMutexFree(KDThreadMutex *mutex)
-{
- int res;
- res = pthread_mutex_destroy(&mutex->p_mutex);
- // If the mutex destroy failed, don't free the memory.
- // Per OpenKODE spec, this is undefined behaviour, and
- // we can leak the memory. The reason for this is that
- // later allocations may fail if they happen to go
- // to the same memory
- if (!res)
- free(mutex);
- return 0;
-}
-
-/* kdThreadMutexLock: Lock a mutex. */
-KDint kdThreadMutexLock(KDThreadMutex *mutex)
-{
- (void)pthread_mutex_lock(&mutex->p_mutex);
- return 0;
-}
-
-/* kdThreadMutexUnlock: Unlock a mutex. */
-KDint kdThreadMutexUnlock(KDThreadMutex *mutex)
-{
- pthread_mutex_unlock(&mutex->p_mutex);
- return 0;
-}
-
-struct KDThreadAttr
-{
- pthread_attr_t p_attr;
-};
-
-struct KDThread
-{
- pthread_t Handle;
- uint8_t Detached;
- uint8_t IsRunning;
- uint8_t UserThread;
- void* (*UserThreadProc)(void*);
- void* UserArg;
-};
-/* kdThreadCreate: Create a new thread. */
-KDThread * kdThreadCreate(const KDThreadAttr *attr, void *(*start_routine)(void *), void *arg)
-{
- pthread_t thread;
- int retval;
- const pthread_attr_t* p_attr;
- if ( attr )
- p_attr = &attr->p_attr;
- else
- p_attr = KD_NULL;
-
- retval = pthread_create( &thread, p_attr, start_routine, arg );
- if ( retval != 0 )
- {
- return KD_NULL;
- }
- KDThread* newThread = (KDThread*)malloc( sizeof( KDThread ) );
- if ( newThread == KD_NULL ) return KD_NULL;
- newThread->Handle = thread;
- newThread->Detached = 0;
- newThread->IsRunning = 1;
- newThread->UserThread = 1;
- newThread->UserThreadProc = start_routine;
- newThread->UserArg = arg;
- return newThread;
-}
-
-/* kdThreadExit: Terminate this thread. */
-void kdThreadExit(void *retval)
-{
- pthread_exit( retval );
-}
-
-/* kdThreadJoin: Wait for termination of another thread. */
-KDint kdThreadJoin(KDThread *thread, void **retval)
-{
- int join_retval;
- join_retval = pthread_join( thread->Handle, retval );
- if ( join_retval == 0 ) free( thread );
- return join_retval;
-}
-
-typedef struct KDDirInternal {
- DIR *dir;
- KDDirent ent;
-} KDDirInternal;
-
-/* kdOpenDir: Open a directory ready for listing. */
-KDDir *kdOpenDir(const KDchar *pathname)
-{
- DIR* dir = opendir( pathname );
- if ( dir == KD_NULL ) return KD_NULL;
- KDDirInternal* retval = (KDDirInternal*)malloc( sizeof( KDDirInternal ));
- if ( retval == KD_NULL ) return KD_NULL;
- memset( retval, 0, sizeof( *retval ) );
- retval->dir = dir;
- return (KDDir*)retval;
-}
-
-/* kdReadDir: Return the next file in a directory. */
-KDDirent* kdReadDir(KDDir *dir)
-{
- struct dirent *sysDirEnt;
- KDDirent *dirent = NULL;
-
- sysDirEnt = readdir(((KDDirInternal *)dir)->dir);
-
- if (sysDirEnt) {
- dirent = &((KDDirInternal *)dir)->ent;
- dirent->d_name = sysDirEnt->d_name;
- }
- return dirent;
-}
-
-/* kdCloseDir: Close a directory. */
-KDint kdCloseDir(KDDir *dir)
-{
- closedir(((KDDirInternal *)dir)->dir);
- free(dir);
- return 0;
-}
-
-#if 0
-KDint kdSetWindowPropertyiv(KDWindow * win, KDint prop, const KDint32 * val)
-{
- return 0;
-}
-#endif
-
-void kdDefaultEvent(const KDEvent *event )
-{
-
-}
-
-typedef long long NvS64;
-
-KDust kdGetTimeUST(void)
-{
- mach_timebase_info_data_t info;
- mach_timebase_info(&info);
-
- uint64_t time = mach_absolute_time();
-
- // convert to nanoseconds
- time *= info.numer;
- time /= info.denom;
-
- return (NvS64)time;
-}
-
-static KDTm* gmlocaltime(
- const KDtime *timep,
- KDTm *result,
- struct tm* (* func)(const time_t* timep, struct tm* result))
-{
- struct tm tm;
- time_t t = *timep;
- (*func)(&t, &tm);
- result->tm_sec = tm.tm_sec;
- result->tm_min = tm.tm_min;
- result->tm_hour = tm.tm_hour;
- result->tm_mday = tm.tm_mday;
- result->tm_mon = tm.tm_mon;
- result->tm_year = tm.tm_year;
- result->tm_wday = tm.tm_wday;
- result->tm_yday = tm.tm_yday;
- return result;
-}
-
-/* kdGmtime_r, kdLocaltime_r: Convert a seconds-since-epoch time into broken-down time. */
-KDTm* kdGmtime_r(const KDtime* timep, KDTm* result)
-{
- return gmlocaltime(timep, result, &gmtime_r);
-}
-
-KDTm* kdLocaltime_r(const KDtime* timep, KDTm* result)
-{
- return gmlocaltime(timep, result, &localtime_r);
-}
-
-//===========================================================================
-// kdCreateEvent: Create an event for posting.
-//===========================================================================
-KDEvent* kdCreateEvent(void)
-{
- //Memory leak and there isn't much I am going to do about this now
- KDEvent* newEvent = (KDEvent*)malloc( sizeof( KDEvent ));
- memset( newEvent, 0, sizeof( KDEvent ));
- return newEvent;
-}
diff --git a/src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/Qt3DS_extwindowprops.h b/src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/Qt3DS_extwindowprops.h
deleted file mode 100644
index 4428a568..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/Qt3DS_extwindowprops.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef __kd_QT3DS_extwindowprops_h_
-#define __kd_QT3DS_extwindowprops_h_
-#include <KD/kd.h>
-#include <EGL/eglext.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* KD_WINDOWPROPERTY_FULLSCREEN: Control over resizing a window to fill the complete screen */
-
-// KDboolean - set the window to fullscreen mode
-#define KD_WINDOWPROPERTY_FULLSCREEN_QT3DS 9999
-
-// KDint - set which KD_DISPLAY_* display that the window should be opened on
-#define KD_WINDOWPROPERTY_DISPLAY_QT3DS 9998
-
-// KDboolean - sets whether overlay should be used to create window
-#define KD_WINDOWPROPERTY_OVERLAY_QT3DS 9997
-
-#define KD_DISPLAY_PRIMARY_QT3DS 0
-#define KD_DISPLAY_INTERNAL0_QT3DS 0
-#define KD_DISPLAY_INTERNAL1_QT3DS 1
-#define KD_DISPLAY_INTERNAL2_QT3DS 2
-#define KD_DISPLAY_INTERNAL3_QT3DS 3
-#define KD_DISPLAY_EXTERNAL0_QT3DS 1000
-#define KD_DISPLAY_EXTERNAL1_QT3DS 1001
-#define KD_DISPLAY_EXTERNAL2_QT3DS 1002
-#define KD_DISPLAY_EXTERNAL3_QT3DS 1003
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_QT3DS_extwindowprops_h_ */
diff --git a/src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/Qt3DS_multitouch.h b/src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/Qt3DS_multitouch.h
deleted file mode 100644
index e230b029..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/Qt3DS_multitouch.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef __kd_QT3DS_multitouch_h_
-#define __kd_QT3DS_multitouch_h_
-#include <KD/kd.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* KD_IOGROUP_MULTITOUCH: I/O group for Multitouch input devices. */
-#define KD_IOGROUP_MULTITOUCH_QT3DS 0x40004000
-#define KD_STATE_MULTITOUCH_AVAILABILITY_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 0)
-#define KD_INPUT_MULTITOUCH_FINGERS_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 1)
-#define KD_INPUT_MULTITOUCH_WIDTH_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 2)
-#define KD_INPUT_MULTITOUCH_X_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 3)
-#define KD_INPUT_MULTITOUCH_Y_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 4)
-#define KD_INPUT_MULTITOUCH_X2_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 5)
-#define KD_INPUT_MULTITOUCH_Y2_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 6)
-#define KD_INPUT_MULTITOUCH_PRESSURE_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 7)
-#define KD_INPUT_MULTITOUCH_GESTURES_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 8)
-#define KD_INPUT_MULTITOUCH_RELX_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 9)
-#define KD_INPUT_MULTITOUCH_RELY_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 10)
-
-/* KD_EVENT_INPUT_MULTITOUCH_QT3DS: Multitouch event. */
-#define KD_EVENT_INPUT_MULTITOUCH_QT3DS 1001
-typedef struct KDEventInputMultitouchDataNV
-{
- KDint32 index;
- KDint8 fingers;
- KDint8 width;
- KDint16 x;
- KDint16 y;
- KDint16 x2;
- KDint16 y2;
- KDint16 pressure;
-} KDEventInputMultitouchDataNV;
-
-/* KD_EVENT_INPUT_MULTITOUCH_GESTURE_QT3DS: Multitouch gesture event. */
-#define KD_EVENT_INPUT_MULTITOUCH_GESTURE_QT3DS 1002
-
-/* kdGetEventInputMultitouchDataNV: Get auxiliary event data for multitouch input. */
-KD_API KDint KD_APIENTRY kdGetEventInputMultitouchDataNV(const KDEvent *event,
- KDEventInputMultitouchDataNV *data);
-
-/* kdSetEventInputMultitouchActiveNV: Activate Multitouch input events */
-KD_API KDint KD_APIENTRY kdSetEventInputMultitouchActiveNV(KDboolean activate);
-
-/* kdEnableEventInputMultitouchMergeNV: Activate merging of Multitouch input events */
-KD_API void KD_APIENTRY kdEnableEventInputMultitouchMergeNV(KDboolean enable);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_QT3DS_multitouch_h_ */
diff --git a/src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/kd.h b/src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/kd.h
deleted file mode 100644
index f7ccea03..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/kd.h
+++ /dev/null
@@ -1,991 +0,0 @@
-/* Reference KD/kd.h for OpenKODE Core 1.0.3 */
-#ifndef __kd_h_
-#define __kd_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "kdplatform.h"
-
-
-
-/*******************************************************
- * Introduction
- *******************************************************/
-
-/*******************************************************
- * OpenKODE conformance
- *******************************************************/
-
-/*******************************************************
- * Overview
- *******************************************************/
-
-/*******************************************************
- * Programming environment
- *******************************************************/
-#define KD_VERSION_1_0 1
-typedef char KDchar;
-typedef signed char KDint8;
-typedef unsigned char KDuint8;
-typedef int KDint;
-typedef unsigned int KDuint;
-typedef float KDfloat32;
-typedef KDint KDboolean;
-typedef KDint64 KDtime;
-typedef KDint64 KDust;
-typedef KDint64 KDoff;
-typedef KDuint32 KDmode;
-#define KDINT32_MIN (-0x7fffffff-1)
-#define KDINT32_MAX 0x7fffffff
-#define KDUINT32_MAX 0xffffffffU
-#define KD_TRUE 1
-#define KD_FALSE 0
-#ifdef __cplusplus
- const int KD_NULL = 0; /* Yes, int. See Stroustrup 3rd edition. */
-#else
- #define KD_NULL ((void *)0)
-#endif
-
-/*******************************************************
- * Errors
- *******************************************************/
-#define KD_EACCES 1
-#define KD_EADDRINUSE 2
-#define KD_EADDRNOTAVAIL 3
-#define KD_EAFNOSUPPORT 4
-#define KD_EAGAIN (5)
-#define KD_EALREADY 6
-#define KD_EBADF 7
-#define KD_EBUSY 8
-#define KD_ECONNREFUSED 9
-#define KD_ECONNRESET 10
-#define KD_EDEADLK 11
-#define KD_EDESTADDRREQ 12
-#define KD_EEXIST 13
-#define KD_EFBIG 14
-#define KD_EHOSTUNREACH 15
-#define KD_EHOST_NOT_FOUND 16
-#define KD_EINVAL 17
-#define KD_EIO 18
-#define KD_EILSEQ 19
-#define KD_EISCONN 20
-#define KD_EISDIR 21
-#define KD_EMFILE 22
-#define KD_ENAMETOOLONG 23
-#define KD_ENOENT 24
-#define KD_ENOMEM 25
-#define KD_ENOSPC 26
-#define KD_ENOSYS 27
-#define KD_ENOTCONN 28
-#define KD_ENO_DATA 29
-#define KD_ENO_RECOVERY 30
-#define KD_EOPNOTSUPP 31
-#define KD_EOVERFLOW 32
-#define KD_EPERM 33
-#define KD_ERANGE 35
-#define KD_ETIMEDOUT (36)
-#define KD_ETRY_AGAIN 37
-
-/* kdGetError: Get last error indication. */
-KD_API KDint KD_APIENTRY kdGetError(void);
-
-/* kdSetError: Set last error indication. */
-KD_API void KD_APIENTRY kdSetError(KDint error);
-
-/*******************************************************
- * Versioning and attribute queries
- *******************************************************/
-
-/* kdQueryAttribi: Obtain the value of a numeric OpenKODE Core attribute. */
-KD_API KDint KD_APIENTRY kdQueryAttribi(KDint attribute, KDint *value);
-
-/* kdQueryAttribcv: Obtain the value of a string OpenKODE Core attribute. */
-KD_API const KDchar *KD_APIENTRY kdQueryAttribcv(KDint attribute);
-#define KD_ATTRIB_VENDOR 39
-#define KD_ATTRIB_VERSION 40
-#define KD_ATTRIB_PLATFORM 41
-
-/* kdQueryIndexedAttribcv: Obtain the value of an indexed string OpenKODE Core attribute. */
-KD_API const KDchar *KD_APIENTRY kdQueryIndexedAttribcv(KDint attribute, KDint index);
-
-/*******************************************************
- * Threads and synchronization
- *******************************************************/
-
-/* kdThreadAttrCreate: Create a thread attribute object. */
-typedef struct KDThreadAttr KDThreadAttr;
-KD_API KDThreadAttr *KD_APIENTRY kdThreadAttrCreate(void);
-
-/* kdThreadAttrFree: Free a thread attribute object. */
-KD_API KDint KD_APIENTRY kdThreadAttrFree(KDThreadAttr *attr);
-
-/* kdThreadAttrSetDetachState: Set detachstate attribute. */
-#define KD_THREAD_CREATE_JOINABLE 0
-#define KD_THREAD_CREATE_DETACHED 1
-KD_API KDint KD_APIENTRY kdThreadAttrSetDetachState(KDThreadAttr *attr, KDint detachstate);
-
-/* kdThreadAttrSetStackSize: Set stacksize attribute. */
-KD_API KDint KD_APIENTRY kdThreadAttrSetStackSize(KDThreadAttr *attr, KDsize stacksize);
-
-/* kdThreadCreate: Create a new thread. */
-typedef struct KDThread KDThread;
-KD_API KDThread *KD_APIENTRY kdThreadCreate(const KDThreadAttr *attr, void *(*start_routine)(void *), void *arg);
-
-/* kdThreadExit: Terminate this thread. */
-KD_API KD_NORETURN void KD_APIENTRY kdThreadExit(void *retval);
-
-/* kdThreadJoin: Wait for termination of another thread. */
-KD_API KDint KD_APIENTRY kdThreadJoin(KDThread *thread, void **retval);
-
-/* kdThreadDetach: Allow resources to be freed as soon as a thread terminates. */
-KD_API KDint KD_APIENTRY kdThreadDetach(KDThread *thread);
-
-/* kdThreadSelf: Return calling thread&#8217;s ID. */
-KD_API KDThread *KD_APIENTRY kdThreadSelf(void);
-
-/* kdThreadOnce: Wrap initialization code so it is executed only once. */
-#ifndef KD_NO_STATIC_DATA
-typedef struct KDThreadOnce {
- void *impl;
-} KDThreadOnce;
-#define KD_THREAD_ONCE_INIT { 0 }
-KD_API KDint KD_APIENTRY kdThreadOnce(KDThreadOnce *once_control, void (*init_routine)(void));
-#endif /* ndef KD_NO_STATIC_DATA */
-
-/* kdThreadMutexCreate: Create a mutex. */
-typedef struct KDThreadMutex KDThreadMutex;
-KD_API KDThreadMutex *KD_APIENTRY kdThreadMutexCreate(const void *mutexattr);
-
-/* kdThreadMutexFree: Free a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexFree(KDThreadMutex *mutex);
-
-/* kdThreadMutexLock: Lock a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexLock(KDThreadMutex *mutex);
-
-/* kdThreadMutexUnlock: Unlock a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexUnlock(KDThreadMutex *mutex);
-
-/* kdThreadCondCreate: Create a condition variable. */
-typedef struct KDThreadCond KDThreadCond;
-KD_API KDThreadCond *KD_APIENTRY kdThreadCondCreate(const void *attr);
-
-/* kdThreadCondFree: Free a condition variable. */
-KD_API KDint KD_APIENTRY kdThreadCondFree(KDThreadCond *cond);
-
-/* kdThreadCondSignal, kdThreadCondBroadcast: Signal a condition variable. */
-KD_API KDint KD_APIENTRY kdThreadCondSignal(KDThreadCond *cond);
-KD_API KDint KD_APIENTRY kdThreadCondBroadcast(KDThreadCond *cond);
-
-/* kdThreadCondWait: Wait for a condition variable to be signalled. */
-KD_API KDint KD_APIENTRY kdThreadCondWait(KDThreadCond *cond, KDThreadMutex *mutex);
-
-/* kdThreadSemCreate: Create a semaphore. */
-typedef struct KDThreadSem KDThreadSem;
-KD_API KDThreadSem *KD_APIENTRY kdThreadSemCreate(KDuint value);
-
-/* kdThreadSemFree: Free a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemFree(KDThreadSem *sem);
-
-/* kdThreadSemWait: Lock a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemWait(KDThreadSem *sem);
-
-/* kdThreadSemPost: Unlock a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemPost(KDThreadSem *sem);
-
-/*******************************************************
- * Events
- *******************************************************/
-
-/* KDEvent: Struct type containing an event. */
-typedef struct KDEvent KDEvent;
-#define KD_EVENT_USER 0x40000000
-
-/* kdWaitEvent: Get next event from thread&#8217;s event queue. */
-KD_API const KDEvent *KD_APIENTRY kdWaitEvent(KDust timeout);
-
-/* kdSetEventUserptr: Set the userptr for global events. */
-KD_API void KD_APIENTRY kdSetEventUserptr(void *userptr);
-
-/* kdDefaultEvent: Perform default processing on an unrecognized event. */
-KD_API void KD_APIENTRY kdDefaultEvent(const KDEvent *event);
-
-/* kdPumpEvents: Pump the thread&#8217;s event queue, performing callbacks. */
-KD_API KDint KD_APIENTRY kdPumpEvents(void);
-
-/* kdInstallCallback: Install or remove a callback function for event processing. */
-typedef void (KD_APIENTRY KDCallbackFunc)(const KDEvent *event);
-KD_API KDint KD_APIENTRY kdInstallCallback(KDCallbackFunc *func, KDint eventtype, void *eventuserptr);
-
-/* kdCreateEvent: Create an event for posting. */
-KD_API KDEvent *KD_APIENTRY kdCreateEvent(void);
-
-/* kdPostEvent, kdPostThreadEvent: Post an event into a queue. */
-KD_API KDint KD_APIENTRY kdPostEvent(KDEvent *event);
-KD_API KDint KD_APIENTRY kdPostThreadEvent(KDEvent *event, KDThread *thread);
-typedef struct KDEventUser {
- union {
- KDint64 i64;
- void *p;
- struct {
- KDint32 a;
- KDint32 b;
- } i32pair;
- } value1;
- union {
- KDint64 i64;
- struct {
- union {
- KDint32 i32;
- void *p;
- } value2;
- union {
- KDint32 i32;
- void *p;
- } value3;
- } i32orp;
- } value23;
-} KDEventUser;
-
-/* kdFreeEvent: Abandon an event instead of posting it. */
-KD_API void KD_APIENTRY kdFreeEvent(KDEvent *event);
-
-/*******************************************************
- * System events
- *******************************************************/
-
-/* KD_EVENT_QUIT: Event to request to quit application. */
-#define KD_EVENT_QUIT 43
-
-/* KD_EVENT_PAUSE: Application pause event. */
-#define KD_EVENT_PAUSE 45
-
-/* KD_EVENT_RESUME: Application resume event. */
-#define KD_EVENT_RESUME 46
-
-/* KD_EVENT_ORIENTATION: Orientation change event. */
-#define KD_EVENT_ORIENTATION 48
-
-/* KD_IOGROUP_EVENT: I/O group for OpenKODE Core system events implemented as state values. */
-#define KD_IOGROUP_EVENT 0x100
-#define KD_STATE_EVENT_USING_BATTERY (KD_IOGROUP_EVENT + 0)
-#define KD_STATE_EVENT_LOW_BATTERY (KD_IOGROUP_EVENT + 1)
-
-
-/* KD_IOGROUP_ORIENTATION: I/O group for OpenKODE Core orientation state. */
-#define KD_IOGROUP_ORIENTATION 0x200
-#define KD_STATE_ORIENTATION_OVERALL (KD_IOGROUP_ORIENTATION + 0)
-#define KD_STATE_ORIENTATION_SCREEN (KD_IOGROUP_ORIENTATION + 1)
-#define KD_STATE_ORIENTATION_RENDERING (KD_IOGROUP_ORIENTATION + 2)
-#define KD_STATE_ORIENTATION_LOCKSURFACE (KD_IOGROUP_ORIENTATION + 3)
-
-
-/*******************************************************
- * Application startup and exit.
- *******************************************************/
-
-/* kdMain: The application-defined main function. */
-KDint KD_APIENTRY kdMain(KDint argc, const KDchar *const *argv);
-
-/* kdExit: Exit the application. */
-KD_API KD_NORETURN void KD_APIENTRY kdExit(KDint status);
-
-/*******************************************************
- * Utility library functions
- *******************************************************/
-
-/* kdAbs: Compute the absolute value of an integer. */
-KD_API KDint KD_APIENTRY kdAbs(KDint i);
-
-/* kdStrtof: Convert a string to a floating point number. */
-KD_API KDfloat32 KD_APIENTRY kdStrtof(const KDchar *s, KDchar **endptr);
-
-/* kdStrtol, kdStrtoul: Convert a string to an integer. */
-KD_API KDint KD_APIENTRY kdStrtol(const KDchar *s, KDchar **endptr, KDint base);
-KD_API KDuint KD_APIENTRY kdStrtoul(const KDchar *s, KDchar **endptr, KDint base);
-
-/* kdLtostr, kdUltostr: Convert an integer to a string. */
-#define KD_LTOSTR_MAXLEN ((sizeof(KDint)*8*3+6)/10+2)
-#define KD_ULTOSTR_MAXLEN ((sizeof(KDint)*8+2)/3+1)
-KD_API KDssize KD_APIENTRY kdLtostr(KDchar *buffer, KDsize buflen, KDint number);
-KD_API KDssize KD_APIENTRY kdUltostr(KDchar *buffer, KDsize buflen, KDuint number, KDint base);
-
-/* kdFtostr: Convert a float to a string. */
-#define KD_FTOSTR_MAXLEN 16
-KD_API KDssize KD_APIENTRY kdFtostr(KDchar *buffer, KDsize buflen, KDfloat32 number);
-
-/* kdCryptoRandom: Return random data. */
-KD_API KDint KD_APIENTRY kdCryptoRandom(KDuint8 *buf, KDsize buflen);
-
-/*******************************************************
- * Locale specific functions
- *******************************************************/
-
-/* kdGetLocale: Determine the current language and locale. */
-KD_API const KDchar *KD_APIENTRY kdGetLocale(void);
-
-/*******************************************************
- * Memory allocation
- *******************************************************/
-
-/* kdMalloc: Allocate memory. */
-KD_API void *KD_APIENTRY kdMalloc(KDsize size);
-
-/* kdFree: Free allocated memory block. */
-KD_API void KD_APIENTRY kdFree(void *ptr);
-
-/* kdRealloc: Resize memory block. */
-KD_API void *KD_APIENTRY kdRealloc(void *ptr, KDsize size);
-
-/*******************************************************
- * Thread-local storage.
- *******************************************************/
-
-/* kdGetTLS: Get the thread-local storage pointer. */
-KD_API void *KD_APIENTRY kdGetTLS(void);
-
-/* kdSetTLS: Set the thread-local storage pointer. */
-KD_API void KD_APIENTRY kdSetTLS(void *ptr);
-
-/*******************************************************
- * Mathematical functions
- *******************************************************/
-#define KD_E_F 2.71828175F
-#define KD_PI_F 3.14159274F
-#define KD_PI_2_F 1.57079637F
-#define KD_2PI_F 6.28318548F
-#define KD_LOG2E_F 1.44269502F
-#define KD_LOG10E_F 0.434294492F
-#define KD_LN2_F 0.693147182F
-#define KD_LN10_F 2.30258512F
-#define KD_PI_4_F 0.785398185F
-#define KD_1_PI_F 0.318309873F
-#define KD_2_PI_F 0.636619747F
-#define KD_2_SQRTPI_F 1.12837923F
-#define KD_SQRT2_F 1.41421354F
-#define KD_SQRT1_2_F 0.707106769F
-#define KD_FLT_EPSILON 1.19209290E-07F
-#define KD_FLT_MAX 3.40282346638528860e+38F
-#define KD_FLT_MIN 1.17549435e-38F
-/* KD_INFINITY is defined in kdplatform.h since no portable definition
- * is possible. */
-#define kdIsNan(x) (((x) != (x)) ? 1 : 0)
-#define KD_HUGE_VALF KD_INFINITY
-#define KD_DEG_TO_RAD_F 0.0174532924F
-#define KD_RAD_TO_DEG_F 57.2957802F
-
-/* kdAcosf: Arc cosine function. */
-KD_API KDfloat32 KD_APIENTRY kdAcosf(KDfloat32 x);
-
-/* kdAsinf: Arc sine function. */
-KD_API KDfloat32 KD_APIENTRY kdAsinf(KDfloat32 x);
-
-/* kdAtanf: Arc tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdAtanf(KDfloat32 x);
-
-/* kdAtan2f: Arc tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdAtan2f(KDfloat32 y, KDfloat32 x);
-
-/* kdCosf: Cosine function. */
-KD_API KDfloat32 KD_APIENTRY kdCosf(KDfloat32 x);
-
-/* kdSinf: Sine function. */
-KD_API KDfloat32 KD_APIENTRY kdSinf(KDfloat32 x);
-
-/* kdTanf: Tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdTanf(KDfloat32 x);
-
-/* kdExpf: Exponential function. */
-KD_API KDfloat32 KD_APIENTRY kdExpf(KDfloat32 x);
-
-/* kdLogf: Natural logarithm function. */
-KD_API KDfloat32 KD_APIENTRY kdLogf(KDfloat32 x);
-
-/* kdFabsf: Absolute value. */
-KD_API KDfloat32 KD_APIENTRY kdFabsf(KDfloat32 x);
-
-/* kdPowf: Power function. */
-KD_API KDfloat32 KD_APIENTRY kdPowf(KDfloat32 x, KDfloat32 y);
-
-/* kdSqrtf: Square root function. */
-KD_API KDfloat32 KD_APIENTRY kdSqrtf(KDfloat32 x);
-
-/* kdCeilf: Return ceiling value. */
-KD_API KDfloat32 KD_APIENTRY kdCeilf(KDfloat32 x);
-
-/* kdFloorf: Return floor value. */
-KD_API KDfloat32 KD_APIENTRY kdFloorf(KDfloat32 x);
-
-/* kdRoundf: Round value to nearest integer. */
-KD_API KDfloat32 KD_APIENTRY kdRoundf(KDfloat32 x);
-
-/* kdInvsqrtf: Inverse square root function. */
-KD_API KDfloat32 KD_APIENTRY kdInvsqrtf(KDfloat32 x);
-
-/* kdFmodf: Calculate floating point remainder. */
-KD_API KDfloat32 KD_APIENTRY kdFmodf(KDfloat32 x, KDfloat32 y);
-
-/*******************************************************
- * String and memory functions
- *******************************************************/
-
-/* kdMemchr: Scan memory for a byte value. */
-KD_API void *KD_APIENTRY kdMemchr(const void *src, KDint byte, KDsize len);
-
-/* kdMemcmp: Compare two memory regions. */
-KD_API KDint KD_APIENTRY kdMemcmp(const void *src1, const void *src2, KDsize len);
-
-/* kdMemcpy: Copy a memory region, no overlapping. */
-KD_API void *KD_APIENTRY kdMemcpy(void *buf, const void *src, KDsize len);
-
-/* kdMemmove: Copy a memory region, overlapping allowed. */
-KD_API void *KD_APIENTRY kdMemmove(void *buf, const void *src, KDsize len);
-
-/* kdMemset: Set bytes in memory to a value. */
-KD_API void *KD_APIENTRY kdMemset(void *buf, KDint byte, KDsize len);
-
-/* kdStrchr: Scan string for a byte value. */
-KD_API KDchar *KD_APIENTRY kdStrchr(const KDchar *str, KDint ch);
-
-/* kdStrcmp: Compares two strings. */
-KD_API KDint KD_APIENTRY kdStrcmp(const KDchar *str1, const KDchar *str2);
-
-/* kdStrlen: Determine the length of a string. */
-KD_API KDsize KD_APIENTRY kdStrlen(const KDchar *str);
-
-/* kdStrnlen: Determine the length of a string. */
-KD_API KDsize KD_APIENTRY kdStrnlen(const KDchar *str, KDsize maxlen);
-
-/* kdStrncat_s: Concatenate two strings. */
-KD_API KDint KD_APIENTRY kdStrncat_s(KDchar *buf, KDsize buflen, const KDchar *src, KDsize srcmaxlen);
-
-/* kdStrncmp: Compares two strings with length limit. */
-KD_API KDint KD_APIENTRY kdStrncmp(const KDchar *str1, const KDchar *str2, KDsize maxlen);
-
-/* kdStrcpy_s: Copy a string with an overrun check. */
-KD_API KDint KD_APIENTRY kdStrcpy_s(KDchar *buf, KDsize buflen, const KDchar *src);
-
-/* kdStrncpy_s: Copy a string with an overrun check. */
-KD_API KDint KD_APIENTRY kdStrncpy_s(KDchar *buf, KDsize buflen, const KDchar *src, KDsize srclen);
-
-/*******************************************************
- * Time functions
- *******************************************************/
-
-/* kdGetTimeUST: Get the current unadjusted system time. */
-KD_API KDust KD_APIENTRY kdGetTimeUST(void);
-
-/* kdTime: Get the current wall clock time. */
-KD_API KDtime KD_APIENTRY kdTime(KDtime *timep);
-
-/* kdGmtime_r, kdLocaltime_r: Convert a seconds-since-epoch time into broken-down time. */
-typedef struct KDTm {
- KDint32 tm_sec;
- KDint32 tm_min;
- KDint32 tm_hour;
- KDint32 tm_mday;
- KDint32 tm_mon;
- KDint32 tm_year;
- KDint32 tm_wday;
- KDint32 tm_yday;
-} KDTm;
-KD_API KDTm *KD_APIENTRY kdGmtime_r(const KDtime *timep, KDTm *result);
-KD_API KDTm *KD_APIENTRY kdLocaltime_r(const KDtime *timep, KDTm *result);
-
-/* kdUSTAtEpoch: Get the UST corresponding to KDtime 0. */
-KD_API KDust KD_APIENTRY kdUSTAtEpoch(void);
-
-/*******************************************************
- * Timer functions
- *******************************************************/
-
-/* kdSetTimer: Set timer. */
-#define KD_TIMER_ONESHOT 61
-#define KD_TIMER_PERIODIC_AVERAGE 62
-#define KD_TIMER_PERIODIC_MINIMUM 63
-typedef struct KDTimer KDTimer;
-KD_API KDTimer *KD_APIENTRY kdSetTimer(KDint64 interval, KDint periodic, void *eventuserptr);
-
-/* kdCancelTimer: Cancel and free a timer. */
-KD_API KDint KD_APIENTRY kdCancelTimer(KDTimer *timer);
-
-/* KD_EVENT_TIMER: Timer fire event. */
-#define KD_EVENT_TIMER 42
-
-/*******************************************************
- * File system
- *******************************************************/
-#define KD_EOF (-1)
-
-/* kdFopen: Open a file from the file system. */
-typedef struct KDFile KDFile;
-KD_API KDFile *KD_APIENTRY kdFopen(const KDchar *pathname, const KDchar *mode);
-
-/* kdFclose: Close an open file. */
-KD_API KDint KD_APIENTRY kdFclose(KDFile *file);
-
-/* kdFflush: Flush an open file. */
-KD_API KDint KD_APIENTRY kdFflush(KDFile *file);
-
-/* kdFread: Read from a file. */
-KD_API KDsize KD_APIENTRY kdFread(void *buffer, KDsize size, KDsize count, KDFile *file);
-
-/* kdFwrite: Write to a file. */
-KD_API KDsize KD_APIENTRY kdFwrite(const void *buffer, KDsize size, KDsize count, KDFile *file);
-
-/* kdGetc: Read next byte from an open file. */
-KD_API KDint KD_APIENTRY kdGetc(KDFile *file);
-
-/* kdPutc: Write a byte to an open file. */
-KD_API KDint KD_APIENTRY kdPutc(KDint c, KDFile *file);
-
-/* kdFgets: Read a line of text from an open file. */
-KD_API KDchar *KD_APIENTRY kdFgets(KDchar *buffer, KDsize buflen, KDFile *file);
-
-/* kdFEOF: Check for end of file. */
-KD_API KDint KD_APIENTRY kdFEOF(KDFile *file);
-
-/* kdFerror: Check for an error condition on an open file. */
-KD_API KDint KD_APIENTRY kdFerror(KDFile *file);
-
-/* kdClearerr: Clear a file&#8217;s error and end-of-file indicators. */
-KD_API void KD_APIENTRY kdClearerr(KDFile *file);
-
-/* kdFseek: Reposition the file position indicator in a file. */
-typedef enum {
- KD_SEEK_SET = 0,
- KD_SEEK_CUR = 1,
- KD_SEEK_END = 2
-} KDfileSeekOrigin;
-KD_API KDint KD_APIENTRY kdFseek(KDFile *file, KDoff offset, KDfileSeekOrigin origin);
-
-/* kdFtell: Get the file position of an open file. */
-KD_API KDoff KD_APIENTRY kdFtell(KDFile *file);
-
-/* kdMkdir: Create new directory. */
-KD_API KDint KD_APIENTRY kdMkdir(const KDchar *pathname);
-
-/* kdRmdir: Delete a directory. */
-KD_API KDint KD_APIENTRY kdRmdir(const KDchar *pathname);
-
-/* kdRename: Rename a file. */
-KD_API KDint KD_APIENTRY kdRename(const KDchar *src, const KDchar *dest);
-
-/* kdRemove: Delete a file. */
-KD_API KDint KD_APIENTRY kdRemove(const KDchar *pathname);
-
-/* kdTruncate: Truncate or extend a file. */
-KD_API KDint KD_APIENTRY kdTruncate(const KDchar *pathname, KDoff length);
-
-/* kdStat, kdFstat: Return information about a file. */
-typedef struct KDStat {
- KDmode st_mode;
- KDoff st_size;
- KDtime st_mtime;
-} KDStat;
-KD_API KDint KD_APIENTRY kdStat(const KDchar *pathname, struct KDStat *buf);
-KD_API KDint KD_APIENTRY kdFstat(KDFile *file, struct KDStat *buf);
-#define KD_ISREG(m) ((m) & 0x8000)
-#define KD_ISDIR(m) ((m) & 0x4000)
-
-/* kdAccess: Determine whether the application can access a file or directory. */
-KD_API KDint KD_APIENTRY kdAccess(const KDchar *pathname, KDint amode);
-#define KD_R_OK 4
-#define KD_W_OK 2
-#define KD_X_OK 1
-
-/* kdOpenDir: Open a directory ready for listing. */
-typedef struct KDDir KDDir;
-KD_API KDDir *KD_APIENTRY kdOpenDir(const KDchar *pathname);
-
-/* kdReadDir: Return the next file in a directory. */
-typedef struct KDDirent {
- const KDchar *d_name;
-} KDDirent;
-KD_API KDDirent *KD_APIENTRY kdReadDir(KDDir *dir);
-
-/* kdCloseDir: Close a directory. */
-KD_API KDint KD_APIENTRY kdCloseDir(KDDir *dir);
-
-/* kdGetFree: Get free space on a drive. */
-KD_API KDoff KD_APIENTRY kdGetFree(const KDchar *pathname);
-
-/*******************************************************
- * Network sockets
- *******************************************************/
-
-/* KDSockaddr: Struct type for socket address. */
-typedef struct KDSockaddr {
- KDuint16 family;
- union {
-#define KD_AF_INET 70
- struct {
- KDuint16 port;
- KDuint32 address;
- } sin;
- } data;
-} KDSockaddr;
-
-/* kdNameLookup: Look up a hostname. */
-KD_API KDint KD_APIENTRY kdNameLookup(KDint af, const KDchar *hostname, void *eventuserptr);
-
-/* kdNameLookupCancel: Selectively cancels ongoing kdNameLookup operations. */
-KD_API void KD_APIENTRY kdNameLookupCancel(void *eventuserptr);
-
-/* kdSocketCreate: Creates a socket. */
-typedef struct KDSocket KDSocket;
-KD_API KDSocket *KD_APIENTRY kdSocketCreate(KDint type, void *eventuserptr);
-#define KD_SOCK_TCP 64
-#define KD_SOCK_UDP 65
-
-/* kdSocketClose: Closes a socket. */
-KD_API KDint KD_APIENTRY kdSocketClose(KDSocket *socket);
-
-/* kdSocketBind: Bind a socket. */
-KD_API KDint KD_APIENTRY kdSocketBind(KDSocket *socket, const struct KDSockaddr *addr, KDboolean reuse);
-#define KD_INADDR_ANY 0
-
-/* kdSocketGetName: Get the local address of a socket. */
-KD_API KDint KD_APIENTRY kdSocketGetName(KDSocket *socket, struct KDSockaddr *addr);
-
-/* kdSocketConnect: Connects a socket. */
-KD_API KDint KD_APIENTRY kdSocketConnect(KDSocket *socket, const KDSockaddr *addr);
-
-/* kdSocketListen: Listen on a socket. */
-KD_API KDint KD_APIENTRY kdSocketListen(KDSocket *socket, KDint backlog);
-
-/* kdSocketAccept: Accept an incoming connection. */
-KD_API KDSocket *KD_APIENTRY kdSocketAccept(KDSocket *socket, KDSockaddr *addr, void *eventuserptr);
-
-/* kdSocketSend, kdSocketSendTo: Send data to a socket. */
-KD_API KDint KD_APIENTRY kdSocketSend(KDSocket *socket, const void *buf, KDint len);
-KD_API KDint KD_APIENTRY kdSocketSendTo(KDSocket *socket, const void *buf, KDint len, const KDSockaddr *addr);
-
-/* kdSocketRecv, kdSocketRecvFrom: Receive data from a socket. */
-KD_API KDint KD_APIENTRY kdSocketRecv(KDSocket *socket, void *buf, KDint len);
-KD_API KDint KD_APIENTRY kdSocketRecvFrom(KDSocket *socket, void *buf, KDint len, KDSockaddr *addr);
-
-/* kdHtonl: Convert a 32-bit integer from host to network byte order. */
-KD_API KDuint32 KD_APIENTRY kdHtonl(KDuint32 hostlong);
-
-/* kdHtons: Convert a 16-bit integer from host to network byte order. */
-KD_API KDuint16 KD_APIENTRY kdHtons(KDuint16 hostshort);
-
-/* kdNtohl: Convert a 32-bit integer from network to host byte order. */
-KD_API KDuint32 KD_APIENTRY kdNtohl(KDuint32 netlong);
-
-/* kdNtohs: Convert a 16-bit integer from network to host byte order. */
-KD_API KDuint16 KD_APIENTRY kdNtohs(KDuint16 netshort);
-
-/* kdInetAton: Convert a &#8220;dotted quad&#8221; format address to an integer. */
-KD_API KDint KD_APIENTRY kdInetAton(const KDchar *cp, KDuint32 *inp);
-
-/* kdInetNtop: Convert a network address to textual form. */
-#define KD_INET_ADDRSTRLEN 16
-typedef struct KDInAddr {
- KDuint32 s_address; // Renamed this from s_addr as it causes a conflict with winsock2.h
-} KDInAddr;
-KD_API const KDchar *KD_APIENTRY kdInetNtop(KDuint af, const void *src, KDchar *dst, KDsize cnt);
-
-/* KD_EVENT_SOCKET_READABLE: Event to indicate that a socket is readable. */
-#define KD_EVENT_SOCKET_READABLE 49
-typedef struct KDEventSocketReadable {
- KDSocket *socket;
-} KDEventSocketReadable;
-
-/* KD_EVENT_SOCKET_WRITABLE: Event to indicate that a socket is writable. */
-#define KD_EVENT_SOCKET_WRITABLE 50
-typedef struct KDEventSocketWritable {
- KDSocket *socket;
-} KDEventSocketWritable;
-
-/* KD_EVENT_SOCKET_CONNECT_COMPLETE: Event generated when a socket connect is complete */
-#define KD_EVENT_SOCKET_CONNECT_COMPLETE 51
-typedef struct KDEventSocketConnect {
- KDSocket *socket;
- KDint32 error;
-} KDEventSocketConnect;
-
-/* KD_EVENT_SOCKET_INCOMING: Event generated when a listening socket detects an incoming connection or an error. */
-#define KD_EVENT_SOCKET_INCOMING 52
-typedef struct KDEventSocketIncoming {
- KDSocket *socket;
-} KDEventSocketIncoming;
-
-/* KD_EVENT_NAME_LOOKUP_COMPLETE: kdNameLookup complete event. */
-#define KD_EVENT_NAME_LOOKUP_COMPLETE 53
-typedef struct KDEventNameLookup {
- KDint32 error;
- KDint32 resultlen;
- const KDSockaddr *result;
- KDboolean more;
-} KDEventNameLookup;
-
-/*******************************************************
- * Input/output
- *******************************************************/
-
-/* KD_EVENT_STATE: State changed event. */
-#define KD_EVENT_STATE 55
-
-typedef struct KDEventState {
- KDint32 index;
- union {
- KDint32 i;
- KDint64 l;
- KDfloat32 f;
- } value;
-} KDEventState;
-
-/* KD_EVENT_INPUT: Input changed event. */
-#define KD_EVENT_INPUT 56
-
-typedef struct KDEventInput {
- KDint32 index;
- union {
- KDint32 i;
- KDint64 l;
- KDfloat32 f;
- } value;
-} KDEventInput;
-
-/* KD_EVENT_INPUT_JOG: Jogdial jog event. */
-#define KD_EVENT_INPUT_JOG 71
-typedef struct KDEventInputJog {
- KDint32 index;
- KDint32 count;
-} KDEventInputJog;
-
-/* KD_EVENT_INPUT_POINTER: Pointer input changed event. */
-#define KD_EVENT_INPUT_POINTER 57
-typedef struct KDEventInputPointer {
- KDint32 index;
- KDint32 select;
- KDint32 x;
- KDint32 y;
-} KDEventInputPointer;
-
-/* KD_EVENT_INPUT_STICK: Joystick stick changed event. */
-#define KD_EVENT_INPUT_STICK 58
-typedef struct KDEventInputStick {
- KDint32 index;
- KDint32 x;
- KDint32 y;
- KDint32 z;
-} KDEventInputStick;
-
-/* kdStateGeti, kdStateGetl, kdStateGetf: get state value(s) */
-KD_API KDint KD_APIENTRY kdStateGeti(KDint startidx, KDuint numidxs, KDint32 *buffer);
-KD_API KDint KD_APIENTRY kdStateGetl(KDint startidx, KDuint numidxs, KDint64 *buffer);
-KD_API KDint KD_APIENTRY kdStateGetf(KDint startidx, KDuint numidxs, KDfloat32 *buffer);
-
-/* kdOutputSeti, kdOutputSetf: set outputs */
-KD_API KDint KD_APIENTRY kdOutputSeti(KDint startidx, KDuint numidxs, const KDint32 *buffer);
-KD_API KDint KD_APIENTRY kdOutputSetf(KDint startidx, KDuint numidxs, const KDfloat32 *buffer);
-#define KD_IO_CONTROLLER_STRIDE 64
-
-/* KD_IOGROUP_GAMEKEYS: I/O group for game keys. */
-#define KD_IOGROUP_GAMEKEYS 0x1000
-#define KD_STATE_GAMEKEYS_AVAILABILITY (KD_IOGROUP_GAMEKEYS + 0)
-#define KD_INPUT_GAMEKEYS_UP (KD_IOGROUP_GAMEKEYS + 1)
-#define KD_INPUT_GAMEKEYS_LEFT (KD_IOGROUP_GAMEKEYS + 2)
-#define KD_INPUT_GAMEKEYS_RIGHT (KD_IOGROUP_GAMEKEYS + 3)
-#define KD_INPUT_GAMEKEYS_DOWN (KD_IOGROUP_GAMEKEYS + 4)
-#define KD_INPUT_GAMEKEYS_FIRE (KD_IOGROUP_GAMEKEYS + 5)
-#define KD_INPUT_GAMEKEYS_A (KD_IOGROUP_GAMEKEYS + 6)
-#define KD_INPUT_GAMEKEYS_B (KD_IOGROUP_GAMEKEYS + 7)
-#define KD_INPUT_GAMEKEYS_C (KD_IOGROUP_GAMEKEYS + 8)
-#define KD_INPUT_GAMEKEYS_D (KD_IOGROUP_GAMEKEYS + 9)
-
-/* KD_IOGROUP_GAMEKEYSNC: I/O group for game keys, no chording. */
-#define KD_IOGROUP_GAMEKEYSNC 0x1100
-#define KD_STATE_GAMEKEYSNC_AVAILABILITY (KD_IOGROUP_GAMEKEYSNC + 0)
-#define KD_INPUT_GAMEKEYSNC_UP (KD_IOGROUP_GAMEKEYSNC + 1)
-#define KD_INPUT_GAMEKEYSNC_LEFT (KD_IOGROUP_GAMEKEYSNC + 2)
-#define KD_INPUT_GAMEKEYSNC_RIGHT (KD_IOGROUP_GAMEKEYSNC + 3)
-#define KD_INPUT_GAMEKEYSNC_DOWN (KD_IOGROUP_GAMEKEYSNC + 4)
-#define KD_INPUT_GAMEKEYSNC_FIRE (KD_IOGROUP_GAMEKEYSNC + 5)
-#define KD_INPUT_GAMEKEYSNC_A (KD_IOGROUP_GAMEKEYSNC + 6)
-#define KD_INPUT_GAMEKEYSNC_B (KD_IOGROUP_GAMEKEYSNC + 7)
-#define KD_INPUT_GAMEKEYSNC_C (KD_IOGROUP_GAMEKEYSNC + 8)
-#define KD_INPUT_GAMEKEYSNC_D (KD_IOGROUP_GAMEKEYSNC + 9)
-
-/* KD_IOGROUP_PHONEKEYPAD: I/O group for phone keypad. */
-#define KD_IOGROUP_PHONEKEYPAD 0x2000
-#define KD_STATE_PHONEKEYPAD_AVAILABILITY (KD_IOGROUP_PHONEKEYPAD + 0)
-#define KD_INPUT_PHONEKEYPAD_0 (KD_IOGROUP_PHONEKEYPAD + 1)
-#define KD_INPUT_PHONEKEYPAD_1 (KD_IOGROUP_PHONEKEYPAD + 2)
-#define KD_INPUT_PHONEKEYPAD_2 (KD_IOGROUP_PHONEKEYPAD + 3)
-#define KD_INPUT_PHONEKEYPAD_3 (KD_IOGROUP_PHONEKEYPAD + 4)
-#define KD_INPUT_PHONEKEYPAD_4 (KD_IOGROUP_PHONEKEYPAD + 5)
-#define KD_INPUT_PHONEKEYPAD_5 (KD_IOGROUP_PHONEKEYPAD + 6)
-#define KD_INPUT_PHONEKEYPAD_6 (KD_IOGROUP_PHONEKEYPAD + 7)
-#define KD_INPUT_PHONEKEYPAD_7 (KD_IOGROUP_PHONEKEYPAD + 8)
-#define KD_INPUT_PHONEKEYPAD_8 (KD_IOGROUP_PHONEKEYPAD + 9)
-#define KD_INPUT_PHONEKEYPAD_9 (KD_IOGROUP_PHONEKEYPAD + 10)
-#define KD_INPUT_PHONEKEYPAD_STAR (KD_IOGROUP_PHONEKEYPAD + 11)
-#define KD_INPUT_PHONEKEYPAD_HASH (KD_IOGROUP_PHONEKEYPAD + 12)
-#define KD_INPUT_PHONEKEYPAD_LEFTSOFT (KD_IOGROUP_PHONEKEYPAD + 13)
-#define KD_INPUT_PHONEKEYPAD_RIGHTSOFT (KD_IOGROUP_PHONEKEYPAD + 14)
-#define KD_STATE_PHONEKEYPAD_ORIENTATION (KD_IOGROUP_PHONEKEYPAD + 15)
-
-/* KD_IOGROUP_VIBRATE: I/O group for vibrate. */
-#define KD_IOGROUP_VIBRATE 0x3000
-#define KD_STATE_VIBRATE_AVAILABILITY (KD_IOGROUP_VIBRATE + 0)
-#define KD_STATE_VIBRATE_MINFREQUENCY (KD_IOGROUP_VIBRATE + 1)
-#define KD_STATE_VIBRATE_MAXFREQUENCY (KD_IOGROUP_VIBRATE + 2)
-#define KD_OUTPUT_VIBRATE_VOLUME (KD_IOGROUP_VIBRATE + 3)
-#define KD_OUTPUT_VIBRATE_FREQUENCY (KD_IOGROUP_VIBRATE + 4)
-
-/* KD_IOGROUP_POINTER: I/O group for pointer. */
-#define KD_IOGROUP_POINTER 0x4000
-#define KD_STATE_POINTER_AVAILABILITY (KD_IOGROUP_POINTER + 0)
-#define KD_INPUT_POINTER_X (KD_IOGROUP_POINTER + 1)
-#define KD_INPUT_POINTER_Y (KD_IOGROUP_POINTER + 2)
-#define KD_INPUT_POINTER_SELECT (KD_IOGROUP_POINTER + 3)
-
-/* KD_IOGROUP_BACKLIGHT: I/O group for backlight. */
-#define KD_IOGROUP_BACKLIGHT 0x5000
-#define KD_STATE_BACKLIGHT_AVAILABILITY (KD_IOGROUP_BACKLIGHT + 0)
-#define KD_OUTPUT_BACKLIGHT_FORCE (KD_IOGROUP_BACKLIGHT + 1)
-
-/* KD_IOGROUP_JOGDIAL: I/O group for a jog dial. */
-#define KD_IOGROUP_JOGDIAL 0x6000
-#define KD_STATE_JOGDIAL_AVAILABILITY (KD_IOGROUP_JOGDIAL + 0)
-#define KD_INPUT_JOGDIAL_UP (KD_IOGROUP_JOGDIAL + 1)
-#define KD_INPUT_JOGDIAL_LEFT (KD_IOGROUP_JOGDIAL + 2)
-#define KD_INPUT_JOGDIAL_RIGHT (KD_IOGROUP_JOGDIAL + 3)
-#define KD_INPUT_JOGDIAL_DOWN (KD_IOGROUP_JOGDIAL + 4)
-#define KD_INPUT_JOGDIAL_SELECT (KD_IOGROUP_JOGDIAL + 5)
-
-/* KD_IOGROUP_STICK: I/O group for joystick. */
-#define KD_IOGROUP_STICK 0x7000
-#define KD_STATE_STICK_AVAILABILITY (KD_IOGROUP_STICK + 0)
-#define KD_INPUT_STICK_X (KD_IOGROUP_STICK + 1)
-#define KD_INPUT_STICK_Y (KD_IOGROUP_STICK + 2)
-#define KD_INPUT_STICK_Z (KD_IOGROUP_STICK + 3)
-#define KD_INPUT_STICK_BUTTON (KD_IOGROUP_STICK + 4)
-#define KD_IO_STICK_STRIDE 8
-
-/* KD_IOGROUP_DPAD: I/O group for D-pad. */
-#define KD_IOGROUP_DPAD 0x8000
-#define KD_STATE_DPAD_AVAILABILITY (KD_IOGROUP_DPAD + 0)
-#define KD_STATE_DPAD_COPY (KD_IOGROUP_DPAD + 1)
-#define KD_INPUT_DPAD_UP (KD_IOGROUP_DPAD + 2)
-#define KD_INPUT_DPAD_LEFT (KD_IOGROUP_DPAD + 3)
-#define KD_INPUT_DPAD_RIGHT (KD_IOGROUP_DPAD + 4)
-#define KD_INPUT_DPAD_DOWN (KD_IOGROUP_DPAD + 5)
-#define KD_INPUT_DPAD_SELECT (KD_IOGROUP_DPAD + 6)
-#define KD_IO_DPAD_STRIDE 8
-
-/* KD_IOGROUP_BUTTONS: I/O group for buttons associated with joystick or D-pad. */
-#define KD_IOGROUP_BUTTONS 0x9000
-#define KD_STATE_BUTTONS_AVAILABILITY (KD_IOGROUP_BUTTONS + 0)
-#define KD_INPUT_BUTTONS_0 (KD_IOGROUP_BUTTONS + 1)
-
-/* KD_IO_UNDEFINED: I/O items reserved for implementation-dependent use. */
-#define KD_IO_UNDEFINED 0x40000000
-
-/*******************************************************
- * Windowing
- *******************************************************/
-#ifdef KD_WINDOW_SUPPORTED
-#include <EGL/egl.h>
-typedef struct KDWindow KDWindow;
-
-/* kdCreateWindow: Create a window. */
-KD_API KDWindow *KD_APIENTRY kdCreateWindow(EGLDisplay display, EGLConfig config, void *eventuserptr);
-
-/* kdDestroyWindow: Destroy a window. */
-KD_API KDint KD_APIENTRY kdDestroyWindow(KDWindow *window);
-
-/* kdSetWindowPropertybv, kdSetWindowPropertyiv, kdSetWindowPropertycv: Set a window property to request a change in the on-screen representation of the window. */
-KD_API KDint KD_APIENTRY kdSetWindowPropertybv(KDWindow *window, KDint pname, const KDboolean *param);
-KD_API KDint KD_APIENTRY kdSetWindowPropertyiv(KDWindow *window, KDint pname, const KDint32 *param);
-KD_API KDint KD_APIENTRY kdSetWindowPropertycv(KDWindow *window, KDint pname, const KDchar *param);
-
-/* kdGetWindowPropertybv, kdGetWindowPropertyiv, kdGetWindowPropertycv: Get the current value of a window property. */
-KD_API KDint KD_APIENTRY kdGetWindowPropertybv(KDWindow *window, KDint pname, KDboolean *param);
-KD_API KDint KD_APIENTRY kdGetWindowPropertyiv(KDWindow *window, KDint pname, KDint32 *param);
-KD_API KDint KD_APIENTRY kdGetWindowPropertycv(KDWindow *window, KDint pname, KDchar *param, KDsize *size);
-
-/* kdRealizeWindow: Realize the window as a displayable entity and get the native window handle for passing to EGL. */
-KD_API KDint KD_APIENTRY kdRealizeWindow(KDWindow *window, EGLNativeWindowType *nativewindow);
-
-/* KD_WINDOWPROPERTY_SIZE: Window client area width and height. */
-#define KD_WINDOWPROPERTY_SIZE 66
-
-/* KD_WINDOWPROPERTY_VISIBILITY: Window visibility status. */
-#define KD_WINDOWPROPERTY_VISIBILITY 67
-
-/* KD_WINDOWPROPERTY_FOCUS: Window input focus status. */
-#define KD_WINDOWPROPERTY_FOCUS 68
-
-/* KD_WINDOWPROPERTY_CAPTION: Window caption. */
-#define KD_WINDOWPROPERTY_CAPTION 69
-
-/* KD_EVENT_WINDOW_CLOSE: Event to request to close window. */
-#define KD_EVENT_WINDOW_CLOSE 44
-
-/* KD_EVENT_WINDOWPROPERTY_CHANGE: Notification about realized window property change. */
-#define KD_EVENT_WINDOWPROPERTY_CHANGE 47
-typedef struct KDEventWindowProperty {
- KDint32 pname;
-} KDEventWindowProperty;
-
-/* KD_EVENT_WINDOW_FOCUS: Event for change of window&#8217;s focus state. */
-#define KD_EVENT_WINDOW_FOCUS 60
-typedef struct KDEventWindowFocus {
- KDint32 focusstate;
-} KDEventWindowFocus;
-
-/* KD_EVENT_WINDOW_REDRAW: Event to notify need to redraw the window. */
-#define KD_EVENT_WINDOW_REDRAW 59
-#endif /* KD_WINDOW_SUPPORTED */
-
-/*******************************************************
- * Assertions and logging
- *******************************************************/
-
-/* kdHandleAssertion: Handle assertion failure. */
-KD_API void KD_APIENTRY kdHandleAssertion(const KDchar *condition, const KDchar *filename, KDint linenumber);
-
-/* kdLogMessage: Output a log message. */
-#ifdef KD_NDEBUG
-#define kdLogMessage(s)
-#else
-KD_API void KD_APIENTRY kdLogMessage(const KDchar *string);
-#endif
-
-/* struct KDEvent delayed to the end as it uses event data structs from
- * other parts of the .h file. */
-struct KDEvent {
- KDust timestamp;
- KDint32 type;
- void *userptr;
- union KDEventData {
- KDEventState state;
- KDEventInput input;
- KDEventInputJog inputjog;
- KDEventInputPointer inputpointer;
- KDEventInputStick inputstick;
- KDEventSocketReadable socketreadable;
- KDEventSocketWritable socketwritable;
- KDEventSocketConnect socketconnect;
- KDEventSocketIncoming socketincoming;
- KDEventNameLookup namelookup;
-#ifdef KD_WINDOW_SUPPORTED
- KDEventWindowProperty windowproperty;
- KDEventWindowFocus windowfocus;
-#endif /* KD_WINDOW_SUPPORTED */
- KDEventUser user;
- } data;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_h_ */
-
diff --git a/src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/kdplatform.h b/src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/kdplatform.h
deleted file mode 100644
index ed85ed02..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Macos/Qt3DSLibs/KD/kdplatform.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/* Sample KD/kdplatform.h for OpenKODE Core 1.0.3 */
-#ifndef __kdplatform_h_
-#define __kdplatform_h_
-
-#define KD_API
-#define KD_APIENTRY
-
-typedef int KDint32;
-typedef unsigned int KDuint32;
-typedef long long KDint64;
-typedef unsigned long long KDuint64;
-typedef short KDint16;
-typedef unsigned short KDuint16;
-typedef unsigned long KDuintptr;
-typedef unsigned long KDsize;
-typedef long KDssize;
-#define KDINT_MIN (-0x7fffffff-1)
-#define KDINT_MAX 0x7fffffff
-#define KDUINT_MAX 0xffffffffU
-#define KDINT64_MIN (-0x7fffffffffffffffLL-1)
-#define KDINT64_MAX 0x7fffffffffffffffLL
-#define KDUINT64_MAX 0xffffffffffffffffULL
-#define KDSSIZE_MIN (-0x7fffffff-1)
-#define KDSSIZE_MAX 0x7fffffff
-#define KDSIZE_MAX 0xffffffffU
-#define KDUINTPTR_MAX 0xffffffffU
-#define KD_NORETURN
-// removed, no EGL on macOS
-//#define KD_WINDOW_SUPPORTED
-#ifdef KD_NDEBUG
-#define kdAssert(c)
-#else
-#define kdAssert(c) ((void)( (c) ? 0 : (kdHandleAssertion(#c, __FILE__, __LINE__), 0)))
-#endif
-
-#define KD_INFINITY_BITS 0x7f800000u
-#define KD_INFINITY (kdBitsToFloatNV(KD_INFINITY_BITS))
-
-KD_API float KD_APIENTRY kdBitsToFloatNV(KDuint32 x);
-
-
-/** KHR_formatted extension */
-#include <stdarg.h>
-typedef va_list KDVaListKHR;
-
-// If there are problems with including stdarg.h here under any of the Windows
-// operating systems, we might want to change it back to using char* instead of
-// va_list
-//typedef char *KDVaListKHR;
-
-
-#define KD_VA_START_KHR(ap, parmN) \
- do {ap = (KDVaListKHR)&parmN + sizeof(parmN);} while(0)
-
-#define KD_VA_ARG_CHAR_KHR(ap) (KDchar)va_arg(ap, KDint)
-#define KD_VA_ARG_CHARPTR_KHR(ap) (KDchar*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_INT16_KHR(ap) (KDint16)va_arg(ap, KDint)
-#define KD_VA_ARG_INT32_KHR(ap) va_arg(ap, KDint32)
-#define KD_VA_ARG_INT_KHR(ap) va_arg(ap, KDint)
-#define KD_VA_ARG_INT64_KHR(ap) va_arg(ap, KDint64)
-#define KD_VA_ARG_INTPTR_KHR(ap) (KDint*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_INT16PTR_KHR(ap) (KDint16*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_FLOAT32_KHR(ap) (KDfloat32)(va_arg(ap, double))
-#define KD_VA_ARG_PTR_KHR(ap) (void *)va_arg(ap, char *)
-
-#define KD_VA_END_KHR(ap) \
- do {ap = (KDVaListKHR)0;} while(0)
-
-#endif /* __kdplatform_h_ */
-
diff --git a/src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/Qt3DS_extwindowprops.h b/src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/Qt3DS_extwindowprops.h
deleted file mode 100644
index 4428a568..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/Qt3DS_extwindowprops.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef __kd_QT3DS_extwindowprops_h_
-#define __kd_QT3DS_extwindowprops_h_
-#include <KD/kd.h>
-#include <EGL/eglext.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* KD_WINDOWPROPERTY_FULLSCREEN: Control over resizing a window to fill the complete screen */
-
-// KDboolean - set the window to fullscreen mode
-#define KD_WINDOWPROPERTY_FULLSCREEN_QT3DS 9999
-
-// KDint - set which KD_DISPLAY_* display that the window should be opened on
-#define KD_WINDOWPROPERTY_DISPLAY_QT3DS 9998
-
-// KDboolean - sets whether overlay should be used to create window
-#define KD_WINDOWPROPERTY_OVERLAY_QT3DS 9997
-
-#define KD_DISPLAY_PRIMARY_QT3DS 0
-#define KD_DISPLAY_INTERNAL0_QT3DS 0
-#define KD_DISPLAY_INTERNAL1_QT3DS 1
-#define KD_DISPLAY_INTERNAL2_QT3DS 2
-#define KD_DISPLAY_INTERNAL3_QT3DS 3
-#define KD_DISPLAY_EXTERNAL0_QT3DS 1000
-#define KD_DISPLAY_EXTERNAL1_QT3DS 1001
-#define KD_DISPLAY_EXTERNAL2_QT3DS 1002
-#define KD_DISPLAY_EXTERNAL3_QT3DS 1003
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_QT3DS_extwindowprops_h_ */
diff --git a/src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/Qt3DS_multitouch.h b/src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/Qt3DS_multitouch.h
deleted file mode 100644
index e230b029..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/Qt3DS_multitouch.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef __kd_QT3DS_multitouch_h_
-#define __kd_QT3DS_multitouch_h_
-#include <KD/kd.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* KD_IOGROUP_MULTITOUCH: I/O group for Multitouch input devices. */
-#define KD_IOGROUP_MULTITOUCH_QT3DS 0x40004000
-#define KD_STATE_MULTITOUCH_AVAILABILITY_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 0)
-#define KD_INPUT_MULTITOUCH_FINGERS_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 1)
-#define KD_INPUT_MULTITOUCH_WIDTH_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 2)
-#define KD_INPUT_MULTITOUCH_X_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 3)
-#define KD_INPUT_MULTITOUCH_Y_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 4)
-#define KD_INPUT_MULTITOUCH_X2_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 5)
-#define KD_INPUT_MULTITOUCH_Y2_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 6)
-#define KD_INPUT_MULTITOUCH_PRESSURE_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 7)
-#define KD_INPUT_MULTITOUCH_GESTURES_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 8)
-#define KD_INPUT_MULTITOUCH_RELX_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 9)
-#define KD_INPUT_MULTITOUCH_RELY_QT3DS (KD_IOGROUP_MULTITOUCH_QT3DS + 10)
-
-/* KD_EVENT_INPUT_MULTITOUCH_QT3DS: Multitouch event. */
-#define KD_EVENT_INPUT_MULTITOUCH_QT3DS 1001
-typedef struct KDEventInputMultitouchDataNV
-{
- KDint32 index;
- KDint8 fingers;
- KDint8 width;
- KDint16 x;
- KDint16 y;
- KDint16 x2;
- KDint16 y2;
- KDint16 pressure;
-} KDEventInputMultitouchDataNV;
-
-/* KD_EVENT_INPUT_MULTITOUCH_GESTURE_QT3DS: Multitouch gesture event. */
-#define KD_EVENT_INPUT_MULTITOUCH_GESTURE_QT3DS 1002
-
-/* kdGetEventInputMultitouchDataNV: Get auxiliary event data for multitouch input. */
-KD_API KDint KD_APIENTRY kdGetEventInputMultitouchDataNV(const KDEvent *event,
- KDEventInputMultitouchDataNV *data);
-
-/* kdSetEventInputMultitouchActiveNV: Activate Multitouch input events */
-KD_API KDint KD_APIENTRY kdSetEventInputMultitouchActiveNV(KDboolean activate);
-
-/* kdEnableEventInputMultitouchMergeNV: Activate merging of Multitouch input events */
-KD_API void KD_APIENTRY kdEnableEventInputMultitouchMergeNV(KDboolean enable);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_QT3DS_multitouch_h_ */
diff --git a/src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/kd.h b/src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/kd.h
deleted file mode 100644
index f7ccea03..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/kd.h
+++ /dev/null
@@ -1,991 +0,0 @@
-/* Reference KD/kd.h for OpenKODE Core 1.0.3 */
-#ifndef __kd_h_
-#define __kd_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "kdplatform.h"
-
-
-
-/*******************************************************
- * Introduction
- *******************************************************/
-
-/*******************************************************
- * OpenKODE conformance
- *******************************************************/
-
-/*******************************************************
- * Overview
- *******************************************************/
-
-/*******************************************************
- * Programming environment
- *******************************************************/
-#define KD_VERSION_1_0 1
-typedef char KDchar;
-typedef signed char KDint8;
-typedef unsigned char KDuint8;
-typedef int KDint;
-typedef unsigned int KDuint;
-typedef float KDfloat32;
-typedef KDint KDboolean;
-typedef KDint64 KDtime;
-typedef KDint64 KDust;
-typedef KDint64 KDoff;
-typedef KDuint32 KDmode;
-#define KDINT32_MIN (-0x7fffffff-1)
-#define KDINT32_MAX 0x7fffffff
-#define KDUINT32_MAX 0xffffffffU
-#define KD_TRUE 1
-#define KD_FALSE 0
-#ifdef __cplusplus
- const int KD_NULL = 0; /* Yes, int. See Stroustrup 3rd edition. */
-#else
- #define KD_NULL ((void *)0)
-#endif
-
-/*******************************************************
- * Errors
- *******************************************************/
-#define KD_EACCES 1
-#define KD_EADDRINUSE 2
-#define KD_EADDRNOTAVAIL 3
-#define KD_EAFNOSUPPORT 4
-#define KD_EAGAIN (5)
-#define KD_EALREADY 6
-#define KD_EBADF 7
-#define KD_EBUSY 8
-#define KD_ECONNREFUSED 9
-#define KD_ECONNRESET 10
-#define KD_EDEADLK 11
-#define KD_EDESTADDRREQ 12
-#define KD_EEXIST 13
-#define KD_EFBIG 14
-#define KD_EHOSTUNREACH 15
-#define KD_EHOST_NOT_FOUND 16
-#define KD_EINVAL 17
-#define KD_EIO 18
-#define KD_EILSEQ 19
-#define KD_EISCONN 20
-#define KD_EISDIR 21
-#define KD_EMFILE 22
-#define KD_ENAMETOOLONG 23
-#define KD_ENOENT 24
-#define KD_ENOMEM 25
-#define KD_ENOSPC 26
-#define KD_ENOSYS 27
-#define KD_ENOTCONN 28
-#define KD_ENO_DATA 29
-#define KD_ENO_RECOVERY 30
-#define KD_EOPNOTSUPP 31
-#define KD_EOVERFLOW 32
-#define KD_EPERM 33
-#define KD_ERANGE 35
-#define KD_ETIMEDOUT (36)
-#define KD_ETRY_AGAIN 37
-
-/* kdGetError: Get last error indication. */
-KD_API KDint KD_APIENTRY kdGetError(void);
-
-/* kdSetError: Set last error indication. */
-KD_API void KD_APIENTRY kdSetError(KDint error);
-
-/*******************************************************
- * Versioning and attribute queries
- *******************************************************/
-
-/* kdQueryAttribi: Obtain the value of a numeric OpenKODE Core attribute. */
-KD_API KDint KD_APIENTRY kdQueryAttribi(KDint attribute, KDint *value);
-
-/* kdQueryAttribcv: Obtain the value of a string OpenKODE Core attribute. */
-KD_API const KDchar *KD_APIENTRY kdQueryAttribcv(KDint attribute);
-#define KD_ATTRIB_VENDOR 39
-#define KD_ATTRIB_VERSION 40
-#define KD_ATTRIB_PLATFORM 41
-
-/* kdQueryIndexedAttribcv: Obtain the value of an indexed string OpenKODE Core attribute. */
-KD_API const KDchar *KD_APIENTRY kdQueryIndexedAttribcv(KDint attribute, KDint index);
-
-/*******************************************************
- * Threads and synchronization
- *******************************************************/
-
-/* kdThreadAttrCreate: Create a thread attribute object. */
-typedef struct KDThreadAttr KDThreadAttr;
-KD_API KDThreadAttr *KD_APIENTRY kdThreadAttrCreate(void);
-
-/* kdThreadAttrFree: Free a thread attribute object. */
-KD_API KDint KD_APIENTRY kdThreadAttrFree(KDThreadAttr *attr);
-
-/* kdThreadAttrSetDetachState: Set detachstate attribute. */
-#define KD_THREAD_CREATE_JOINABLE 0
-#define KD_THREAD_CREATE_DETACHED 1
-KD_API KDint KD_APIENTRY kdThreadAttrSetDetachState(KDThreadAttr *attr, KDint detachstate);
-
-/* kdThreadAttrSetStackSize: Set stacksize attribute. */
-KD_API KDint KD_APIENTRY kdThreadAttrSetStackSize(KDThreadAttr *attr, KDsize stacksize);
-
-/* kdThreadCreate: Create a new thread. */
-typedef struct KDThread KDThread;
-KD_API KDThread *KD_APIENTRY kdThreadCreate(const KDThreadAttr *attr, void *(*start_routine)(void *), void *arg);
-
-/* kdThreadExit: Terminate this thread. */
-KD_API KD_NORETURN void KD_APIENTRY kdThreadExit(void *retval);
-
-/* kdThreadJoin: Wait for termination of another thread. */
-KD_API KDint KD_APIENTRY kdThreadJoin(KDThread *thread, void **retval);
-
-/* kdThreadDetach: Allow resources to be freed as soon as a thread terminates. */
-KD_API KDint KD_APIENTRY kdThreadDetach(KDThread *thread);
-
-/* kdThreadSelf: Return calling thread&#8217;s ID. */
-KD_API KDThread *KD_APIENTRY kdThreadSelf(void);
-
-/* kdThreadOnce: Wrap initialization code so it is executed only once. */
-#ifndef KD_NO_STATIC_DATA
-typedef struct KDThreadOnce {
- void *impl;
-} KDThreadOnce;
-#define KD_THREAD_ONCE_INIT { 0 }
-KD_API KDint KD_APIENTRY kdThreadOnce(KDThreadOnce *once_control, void (*init_routine)(void));
-#endif /* ndef KD_NO_STATIC_DATA */
-
-/* kdThreadMutexCreate: Create a mutex. */
-typedef struct KDThreadMutex KDThreadMutex;
-KD_API KDThreadMutex *KD_APIENTRY kdThreadMutexCreate(const void *mutexattr);
-
-/* kdThreadMutexFree: Free a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexFree(KDThreadMutex *mutex);
-
-/* kdThreadMutexLock: Lock a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexLock(KDThreadMutex *mutex);
-
-/* kdThreadMutexUnlock: Unlock a mutex. */
-KD_API KDint KD_APIENTRY kdThreadMutexUnlock(KDThreadMutex *mutex);
-
-/* kdThreadCondCreate: Create a condition variable. */
-typedef struct KDThreadCond KDThreadCond;
-KD_API KDThreadCond *KD_APIENTRY kdThreadCondCreate(const void *attr);
-
-/* kdThreadCondFree: Free a condition variable. */
-KD_API KDint KD_APIENTRY kdThreadCondFree(KDThreadCond *cond);
-
-/* kdThreadCondSignal, kdThreadCondBroadcast: Signal a condition variable. */
-KD_API KDint KD_APIENTRY kdThreadCondSignal(KDThreadCond *cond);
-KD_API KDint KD_APIENTRY kdThreadCondBroadcast(KDThreadCond *cond);
-
-/* kdThreadCondWait: Wait for a condition variable to be signalled. */
-KD_API KDint KD_APIENTRY kdThreadCondWait(KDThreadCond *cond, KDThreadMutex *mutex);
-
-/* kdThreadSemCreate: Create a semaphore. */
-typedef struct KDThreadSem KDThreadSem;
-KD_API KDThreadSem *KD_APIENTRY kdThreadSemCreate(KDuint value);
-
-/* kdThreadSemFree: Free a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemFree(KDThreadSem *sem);
-
-/* kdThreadSemWait: Lock a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemWait(KDThreadSem *sem);
-
-/* kdThreadSemPost: Unlock a semaphore. */
-KD_API KDint KD_APIENTRY kdThreadSemPost(KDThreadSem *sem);
-
-/*******************************************************
- * Events
- *******************************************************/
-
-/* KDEvent: Struct type containing an event. */
-typedef struct KDEvent KDEvent;
-#define KD_EVENT_USER 0x40000000
-
-/* kdWaitEvent: Get next event from thread&#8217;s event queue. */
-KD_API const KDEvent *KD_APIENTRY kdWaitEvent(KDust timeout);
-
-/* kdSetEventUserptr: Set the userptr for global events. */
-KD_API void KD_APIENTRY kdSetEventUserptr(void *userptr);
-
-/* kdDefaultEvent: Perform default processing on an unrecognized event. */
-KD_API void KD_APIENTRY kdDefaultEvent(const KDEvent *event);
-
-/* kdPumpEvents: Pump the thread&#8217;s event queue, performing callbacks. */
-KD_API KDint KD_APIENTRY kdPumpEvents(void);
-
-/* kdInstallCallback: Install or remove a callback function for event processing. */
-typedef void (KD_APIENTRY KDCallbackFunc)(const KDEvent *event);
-KD_API KDint KD_APIENTRY kdInstallCallback(KDCallbackFunc *func, KDint eventtype, void *eventuserptr);
-
-/* kdCreateEvent: Create an event for posting. */
-KD_API KDEvent *KD_APIENTRY kdCreateEvent(void);
-
-/* kdPostEvent, kdPostThreadEvent: Post an event into a queue. */
-KD_API KDint KD_APIENTRY kdPostEvent(KDEvent *event);
-KD_API KDint KD_APIENTRY kdPostThreadEvent(KDEvent *event, KDThread *thread);
-typedef struct KDEventUser {
- union {
- KDint64 i64;
- void *p;
- struct {
- KDint32 a;
- KDint32 b;
- } i32pair;
- } value1;
- union {
- KDint64 i64;
- struct {
- union {
- KDint32 i32;
- void *p;
- } value2;
- union {
- KDint32 i32;
- void *p;
- } value3;
- } i32orp;
- } value23;
-} KDEventUser;
-
-/* kdFreeEvent: Abandon an event instead of posting it. */
-KD_API void KD_APIENTRY kdFreeEvent(KDEvent *event);
-
-/*******************************************************
- * System events
- *******************************************************/
-
-/* KD_EVENT_QUIT: Event to request to quit application. */
-#define KD_EVENT_QUIT 43
-
-/* KD_EVENT_PAUSE: Application pause event. */
-#define KD_EVENT_PAUSE 45
-
-/* KD_EVENT_RESUME: Application resume event. */
-#define KD_EVENT_RESUME 46
-
-/* KD_EVENT_ORIENTATION: Orientation change event. */
-#define KD_EVENT_ORIENTATION 48
-
-/* KD_IOGROUP_EVENT: I/O group for OpenKODE Core system events implemented as state values. */
-#define KD_IOGROUP_EVENT 0x100
-#define KD_STATE_EVENT_USING_BATTERY (KD_IOGROUP_EVENT + 0)
-#define KD_STATE_EVENT_LOW_BATTERY (KD_IOGROUP_EVENT + 1)
-
-
-/* KD_IOGROUP_ORIENTATION: I/O group for OpenKODE Core orientation state. */
-#define KD_IOGROUP_ORIENTATION 0x200
-#define KD_STATE_ORIENTATION_OVERALL (KD_IOGROUP_ORIENTATION + 0)
-#define KD_STATE_ORIENTATION_SCREEN (KD_IOGROUP_ORIENTATION + 1)
-#define KD_STATE_ORIENTATION_RENDERING (KD_IOGROUP_ORIENTATION + 2)
-#define KD_STATE_ORIENTATION_LOCKSURFACE (KD_IOGROUP_ORIENTATION + 3)
-
-
-/*******************************************************
- * Application startup and exit.
- *******************************************************/
-
-/* kdMain: The application-defined main function. */
-KDint KD_APIENTRY kdMain(KDint argc, const KDchar *const *argv);
-
-/* kdExit: Exit the application. */
-KD_API KD_NORETURN void KD_APIENTRY kdExit(KDint status);
-
-/*******************************************************
- * Utility library functions
- *******************************************************/
-
-/* kdAbs: Compute the absolute value of an integer. */
-KD_API KDint KD_APIENTRY kdAbs(KDint i);
-
-/* kdStrtof: Convert a string to a floating point number. */
-KD_API KDfloat32 KD_APIENTRY kdStrtof(const KDchar *s, KDchar **endptr);
-
-/* kdStrtol, kdStrtoul: Convert a string to an integer. */
-KD_API KDint KD_APIENTRY kdStrtol(const KDchar *s, KDchar **endptr, KDint base);
-KD_API KDuint KD_APIENTRY kdStrtoul(const KDchar *s, KDchar **endptr, KDint base);
-
-/* kdLtostr, kdUltostr: Convert an integer to a string. */
-#define KD_LTOSTR_MAXLEN ((sizeof(KDint)*8*3+6)/10+2)
-#define KD_ULTOSTR_MAXLEN ((sizeof(KDint)*8+2)/3+1)
-KD_API KDssize KD_APIENTRY kdLtostr(KDchar *buffer, KDsize buflen, KDint number);
-KD_API KDssize KD_APIENTRY kdUltostr(KDchar *buffer, KDsize buflen, KDuint number, KDint base);
-
-/* kdFtostr: Convert a float to a string. */
-#define KD_FTOSTR_MAXLEN 16
-KD_API KDssize KD_APIENTRY kdFtostr(KDchar *buffer, KDsize buflen, KDfloat32 number);
-
-/* kdCryptoRandom: Return random data. */
-KD_API KDint KD_APIENTRY kdCryptoRandom(KDuint8 *buf, KDsize buflen);
-
-/*******************************************************
- * Locale specific functions
- *******************************************************/
-
-/* kdGetLocale: Determine the current language and locale. */
-KD_API const KDchar *KD_APIENTRY kdGetLocale(void);
-
-/*******************************************************
- * Memory allocation
- *******************************************************/
-
-/* kdMalloc: Allocate memory. */
-KD_API void *KD_APIENTRY kdMalloc(KDsize size);
-
-/* kdFree: Free allocated memory block. */
-KD_API void KD_APIENTRY kdFree(void *ptr);
-
-/* kdRealloc: Resize memory block. */
-KD_API void *KD_APIENTRY kdRealloc(void *ptr, KDsize size);
-
-/*******************************************************
- * Thread-local storage.
- *******************************************************/
-
-/* kdGetTLS: Get the thread-local storage pointer. */
-KD_API void *KD_APIENTRY kdGetTLS(void);
-
-/* kdSetTLS: Set the thread-local storage pointer. */
-KD_API void KD_APIENTRY kdSetTLS(void *ptr);
-
-/*******************************************************
- * Mathematical functions
- *******************************************************/
-#define KD_E_F 2.71828175F
-#define KD_PI_F 3.14159274F
-#define KD_PI_2_F 1.57079637F
-#define KD_2PI_F 6.28318548F
-#define KD_LOG2E_F 1.44269502F
-#define KD_LOG10E_F 0.434294492F
-#define KD_LN2_F 0.693147182F
-#define KD_LN10_F 2.30258512F
-#define KD_PI_4_F 0.785398185F
-#define KD_1_PI_F 0.318309873F
-#define KD_2_PI_F 0.636619747F
-#define KD_2_SQRTPI_F 1.12837923F
-#define KD_SQRT2_F 1.41421354F
-#define KD_SQRT1_2_F 0.707106769F
-#define KD_FLT_EPSILON 1.19209290E-07F
-#define KD_FLT_MAX 3.40282346638528860e+38F
-#define KD_FLT_MIN 1.17549435e-38F
-/* KD_INFINITY is defined in kdplatform.h since no portable definition
- * is possible. */
-#define kdIsNan(x) (((x) != (x)) ? 1 : 0)
-#define KD_HUGE_VALF KD_INFINITY
-#define KD_DEG_TO_RAD_F 0.0174532924F
-#define KD_RAD_TO_DEG_F 57.2957802F
-
-/* kdAcosf: Arc cosine function. */
-KD_API KDfloat32 KD_APIENTRY kdAcosf(KDfloat32 x);
-
-/* kdAsinf: Arc sine function. */
-KD_API KDfloat32 KD_APIENTRY kdAsinf(KDfloat32 x);
-
-/* kdAtanf: Arc tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdAtanf(KDfloat32 x);
-
-/* kdAtan2f: Arc tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdAtan2f(KDfloat32 y, KDfloat32 x);
-
-/* kdCosf: Cosine function. */
-KD_API KDfloat32 KD_APIENTRY kdCosf(KDfloat32 x);
-
-/* kdSinf: Sine function. */
-KD_API KDfloat32 KD_APIENTRY kdSinf(KDfloat32 x);
-
-/* kdTanf: Tangent function. */
-KD_API KDfloat32 KD_APIENTRY kdTanf(KDfloat32 x);
-
-/* kdExpf: Exponential function. */
-KD_API KDfloat32 KD_APIENTRY kdExpf(KDfloat32 x);
-
-/* kdLogf: Natural logarithm function. */
-KD_API KDfloat32 KD_APIENTRY kdLogf(KDfloat32 x);
-
-/* kdFabsf: Absolute value. */
-KD_API KDfloat32 KD_APIENTRY kdFabsf(KDfloat32 x);
-
-/* kdPowf: Power function. */
-KD_API KDfloat32 KD_APIENTRY kdPowf(KDfloat32 x, KDfloat32 y);
-
-/* kdSqrtf: Square root function. */
-KD_API KDfloat32 KD_APIENTRY kdSqrtf(KDfloat32 x);
-
-/* kdCeilf: Return ceiling value. */
-KD_API KDfloat32 KD_APIENTRY kdCeilf(KDfloat32 x);
-
-/* kdFloorf: Return floor value. */
-KD_API KDfloat32 KD_APIENTRY kdFloorf(KDfloat32 x);
-
-/* kdRoundf: Round value to nearest integer. */
-KD_API KDfloat32 KD_APIENTRY kdRoundf(KDfloat32 x);
-
-/* kdInvsqrtf: Inverse square root function. */
-KD_API KDfloat32 KD_APIENTRY kdInvsqrtf(KDfloat32 x);
-
-/* kdFmodf: Calculate floating point remainder. */
-KD_API KDfloat32 KD_APIENTRY kdFmodf(KDfloat32 x, KDfloat32 y);
-
-/*******************************************************
- * String and memory functions
- *******************************************************/
-
-/* kdMemchr: Scan memory for a byte value. */
-KD_API void *KD_APIENTRY kdMemchr(const void *src, KDint byte, KDsize len);
-
-/* kdMemcmp: Compare two memory regions. */
-KD_API KDint KD_APIENTRY kdMemcmp(const void *src1, const void *src2, KDsize len);
-
-/* kdMemcpy: Copy a memory region, no overlapping. */
-KD_API void *KD_APIENTRY kdMemcpy(void *buf, const void *src, KDsize len);
-
-/* kdMemmove: Copy a memory region, overlapping allowed. */
-KD_API void *KD_APIENTRY kdMemmove(void *buf, const void *src, KDsize len);
-
-/* kdMemset: Set bytes in memory to a value. */
-KD_API void *KD_APIENTRY kdMemset(void *buf, KDint byte, KDsize len);
-
-/* kdStrchr: Scan string for a byte value. */
-KD_API KDchar *KD_APIENTRY kdStrchr(const KDchar *str, KDint ch);
-
-/* kdStrcmp: Compares two strings. */
-KD_API KDint KD_APIENTRY kdStrcmp(const KDchar *str1, const KDchar *str2);
-
-/* kdStrlen: Determine the length of a string. */
-KD_API KDsize KD_APIENTRY kdStrlen(const KDchar *str);
-
-/* kdStrnlen: Determine the length of a string. */
-KD_API KDsize KD_APIENTRY kdStrnlen(const KDchar *str, KDsize maxlen);
-
-/* kdStrncat_s: Concatenate two strings. */
-KD_API KDint KD_APIENTRY kdStrncat_s(KDchar *buf, KDsize buflen, const KDchar *src, KDsize srcmaxlen);
-
-/* kdStrncmp: Compares two strings with length limit. */
-KD_API KDint KD_APIENTRY kdStrncmp(const KDchar *str1, const KDchar *str2, KDsize maxlen);
-
-/* kdStrcpy_s: Copy a string with an overrun check. */
-KD_API KDint KD_APIENTRY kdStrcpy_s(KDchar *buf, KDsize buflen, const KDchar *src);
-
-/* kdStrncpy_s: Copy a string with an overrun check. */
-KD_API KDint KD_APIENTRY kdStrncpy_s(KDchar *buf, KDsize buflen, const KDchar *src, KDsize srclen);
-
-/*******************************************************
- * Time functions
- *******************************************************/
-
-/* kdGetTimeUST: Get the current unadjusted system time. */
-KD_API KDust KD_APIENTRY kdGetTimeUST(void);
-
-/* kdTime: Get the current wall clock time. */
-KD_API KDtime KD_APIENTRY kdTime(KDtime *timep);
-
-/* kdGmtime_r, kdLocaltime_r: Convert a seconds-since-epoch time into broken-down time. */
-typedef struct KDTm {
- KDint32 tm_sec;
- KDint32 tm_min;
- KDint32 tm_hour;
- KDint32 tm_mday;
- KDint32 tm_mon;
- KDint32 tm_year;
- KDint32 tm_wday;
- KDint32 tm_yday;
-} KDTm;
-KD_API KDTm *KD_APIENTRY kdGmtime_r(const KDtime *timep, KDTm *result);
-KD_API KDTm *KD_APIENTRY kdLocaltime_r(const KDtime *timep, KDTm *result);
-
-/* kdUSTAtEpoch: Get the UST corresponding to KDtime 0. */
-KD_API KDust KD_APIENTRY kdUSTAtEpoch(void);
-
-/*******************************************************
- * Timer functions
- *******************************************************/
-
-/* kdSetTimer: Set timer. */
-#define KD_TIMER_ONESHOT 61
-#define KD_TIMER_PERIODIC_AVERAGE 62
-#define KD_TIMER_PERIODIC_MINIMUM 63
-typedef struct KDTimer KDTimer;
-KD_API KDTimer *KD_APIENTRY kdSetTimer(KDint64 interval, KDint periodic, void *eventuserptr);
-
-/* kdCancelTimer: Cancel and free a timer. */
-KD_API KDint KD_APIENTRY kdCancelTimer(KDTimer *timer);
-
-/* KD_EVENT_TIMER: Timer fire event. */
-#define KD_EVENT_TIMER 42
-
-/*******************************************************
- * File system
- *******************************************************/
-#define KD_EOF (-1)
-
-/* kdFopen: Open a file from the file system. */
-typedef struct KDFile KDFile;
-KD_API KDFile *KD_APIENTRY kdFopen(const KDchar *pathname, const KDchar *mode);
-
-/* kdFclose: Close an open file. */
-KD_API KDint KD_APIENTRY kdFclose(KDFile *file);
-
-/* kdFflush: Flush an open file. */
-KD_API KDint KD_APIENTRY kdFflush(KDFile *file);
-
-/* kdFread: Read from a file. */
-KD_API KDsize KD_APIENTRY kdFread(void *buffer, KDsize size, KDsize count, KDFile *file);
-
-/* kdFwrite: Write to a file. */
-KD_API KDsize KD_APIENTRY kdFwrite(const void *buffer, KDsize size, KDsize count, KDFile *file);
-
-/* kdGetc: Read next byte from an open file. */
-KD_API KDint KD_APIENTRY kdGetc(KDFile *file);
-
-/* kdPutc: Write a byte to an open file. */
-KD_API KDint KD_APIENTRY kdPutc(KDint c, KDFile *file);
-
-/* kdFgets: Read a line of text from an open file. */
-KD_API KDchar *KD_APIENTRY kdFgets(KDchar *buffer, KDsize buflen, KDFile *file);
-
-/* kdFEOF: Check for end of file. */
-KD_API KDint KD_APIENTRY kdFEOF(KDFile *file);
-
-/* kdFerror: Check for an error condition on an open file. */
-KD_API KDint KD_APIENTRY kdFerror(KDFile *file);
-
-/* kdClearerr: Clear a file&#8217;s error and end-of-file indicators. */
-KD_API void KD_APIENTRY kdClearerr(KDFile *file);
-
-/* kdFseek: Reposition the file position indicator in a file. */
-typedef enum {
- KD_SEEK_SET = 0,
- KD_SEEK_CUR = 1,
- KD_SEEK_END = 2
-} KDfileSeekOrigin;
-KD_API KDint KD_APIENTRY kdFseek(KDFile *file, KDoff offset, KDfileSeekOrigin origin);
-
-/* kdFtell: Get the file position of an open file. */
-KD_API KDoff KD_APIENTRY kdFtell(KDFile *file);
-
-/* kdMkdir: Create new directory. */
-KD_API KDint KD_APIENTRY kdMkdir(const KDchar *pathname);
-
-/* kdRmdir: Delete a directory. */
-KD_API KDint KD_APIENTRY kdRmdir(const KDchar *pathname);
-
-/* kdRename: Rename a file. */
-KD_API KDint KD_APIENTRY kdRename(const KDchar *src, const KDchar *dest);
-
-/* kdRemove: Delete a file. */
-KD_API KDint KD_APIENTRY kdRemove(const KDchar *pathname);
-
-/* kdTruncate: Truncate or extend a file. */
-KD_API KDint KD_APIENTRY kdTruncate(const KDchar *pathname, KDoff length);
-
-/* kdStat, kdFstat: Return information about a file. */
-typedef struct KDStat {
- KDmode st_mode;
- KDoff st_size;
- KDtime st_mtime;
-} KDStat;
-KD_API KDint KD_APIENTRY kdStat(const KDchar *pathname, struct KDStat *buf);
-KD_API KDint KD_APIENTRY kdFstat(KDFile *file, struct KDStat *buf);
-#define KD_ISREG(m) ((m) & 0x8000)
-#define KD_ISDIR(m) ((m) & 0x4000)
-
-/* kdAccess: Determine whether the application can access a file or directory. */
-KD_API KDint KD_APIENTRY kdAccess(const KDchar *pathname, KDint amode);
-#define KD_R_OK 4
-#define KD_W_OK 2
-#define KD_X_OK 1
-
-/* kdOpenDir: Open a directory ready for listing. */
-typedef struct KDDir KDDir;
-KD_API KDDir *KD_APIENTRY kdOpenDir(const KDchar *pathname);
-
-/* kdReadDir: Return the next file in a directory. */
-typedef struct KDDirent {
- const KDchar *d_name;
-} KDDirent;
-KD_API KDDirent *KD_APIENTRY kdReadDir(KDDir *dir);
-
-/* kdCloseDir: Close a directory. */
-KD_API KDint KD_APIENTRY kdCloseDir(KDDir *dir);
-
-/* kdGetFree: Get free space on a drive. */
-KD_API KDoff KD_APIENTRY kdGetFree(const KDchar *pathname);
-
-/*******************************************************
- * Network sockets
- *******************************************************/
-
-/* KDSockaddr: Struct type for socket address. */
-typedef struct KDSockaddr {
- KDuint16 family;
- union {
-#define KD_AF_INET 70
- struct {
- KDuint16 port;
- KDuint32 address;
- } sin;
- } data;
-} KDSockaddr;
-
-/* kdNameLookup: Look up a hostname. */
-KD_API KDint KD_APIENTRY kdNameLookup(KDint af, const KDchar *hostname, void *eventuserptr);
-
-/* kdNameLookupCancel: Selectively cancels ongoing kdNameLookup operations. */
-KD_API void KD_APIENTRY kdNameLookupCancel(void *eventuserptr);
-
-/* kdSocketCreate: Creates a socket. */
-typedef struct KDSocket KDSocket;
-KD_API KDSocket *KD_APIENTRY kdSocketCreate(KDint type, void *eventuserptr);
-#define KD_SOCK_TCP 64
-#define KD_SOCK_UDP 65
-
-/* kdSocketClose: Closes a socket. */
-KD_API KDint KD_APIENTRY kdSocketClose(KDSocket *socket);
-
-/* kdSocketBind: Bind a socket. */
-KD_API KDint KD_APIENTRY kdSocketBind(KDSocket *socket, const struct KDSockaddr *addr, KDboolean reuse);
-#define KD_INADDR_ANY 0
-
-/* kdSocketGetName: Get the local address of a socket. */
-KD_API KDint KD_APIENTRY kdSocketGetName(KDSocket *socket, struct KDSockaddr *addr);
-
-/* kdSocketConnect: Connects a socket. */
-KD_API KDint KD_APIENTRY kdSocketConnect(KDSocket *socket, const KDSockaddr *addr);
-
-/* kdSocketListen: Listen on a socket. */
-KD_API KDint KD_APIENTRY kdSocketListen(KDSocket *socket, KDint backlog);
-
-/* kdSocketAccept: Accept an incoming connection. */
-KD_API KDSocket *KD_APIENTRY kdSocketAccept(KDSocket *socket, KDSockaddr *addr, void *eventuserptr);
-
-/* kdSocketSend, kdSocketSendTo: Send data to a socket. */
-KD_API KDint KD_APIENTRY kdSocketSend(KDSocket *socket, const void *buf, KDint len);
-KD_API KDint KD_APIENTRY kdSocketSendTo(KDSocket *socket, const void *buf, KDint len, const KDSockaddr *addr);
-
-/* kdSocketRecv, kdSocketRecvFrom: Receive data from a socket. */
-KD_API KDint KD_APIENTRY kdSocketRecv(KDSocket *socket, void *buf, KDint len);
-KD_API KDint KD_APIENTRY kdSocketRecvFrom(KDSocket *socket, void *buf, KDint len, KDSockaddr *addr);
-
-/* kdHtonl: Convert a 32-bit integer from host to network byte order. */
-KD_API KDuint32 KD_APIENTRY kdHtonl(KDuint32 hostlong);
-
-/* kdHtons: Convert a 16-bit integer from host to network byte order. */
-KD_API KDuint16 KD_APIENTRY kdHtons(KDuint16 hostshort);
-
-/* kdNtohl: Convert a 32-bit integer from network to host byte order. */
-KD_API KDuint32 KD_APIENTRY kdNtohl(KDuint32 netlong);
-
-/* kdNtohs: Convert a 16-bit integer from network to host byte order. */
-KD_API KDuint16 KD_APIENTRY kdNtohs(KDuint16 netshort);
-
-/* kdInetAton: Convert a &#8220;dotted quad&#8221; format address to an integer. */
-KD_API KDint KD_APIENTRY kdInetAton(const KDchar *cp, KDuint32 *inp);
-
-/* kdInetNtop: Convert a network address to textual form. */
-#define KD_INET_ADDRSTRLEN 16
-typedef struct KDInAddr {
- KDuint32 s_address; // Renamed this from s_addr as it causes a conflict with winsock2.h
-} KDInAddr;
-KD_API const KDchar *KD_APIENTRY kdInetNtop(KDuint af, const void *src, KDchar *dst, KDsize cnt);
-
-/* KD_EVENT_SOCKET_READABLE: Event to indicate that a socket is readable. */
-#define KD_EVENT_SOCKET_READABLE 49
-typedef struct KDEventSocketReadable {
- KDSocket *socket;
-} KDEventSocketReadable;
-
-/* KD_EVENT_SOCKET_WRITABLE: Event to indicate that a socket is writable. */
-#define KD_EVENT_SOCKET_WRITABLE 50
-typedef struct KDEventSocketWritable {
- KDSocket *socket;
-} KDEventSocketWritable;
-
-/* KD_EVENT_SOCKET_CONNECT_COMPLETE: Event generated when a socket connect is complete */
-#define KD_EVENT_SOCKET_CONNECT_COMPLETE 51
-typedef struct KDEventSocketConnect {
- KDSocket *socket;
- KDint32 error;
-} KDEventSocketConnect;
-
-/* KD_EVENT_SOCKET_INCOMING: Event generated when a listening socket detects an incoming connection or an error. */
-#define KD_EVENT_SOCKET_INCOMING 52
-typedef struct KDEventSocketIncoming {
- KDSocket *socket;
-} KDEventSocketIncoming;
-
-/* KD_EVENT_NAME_LOOKUP_COMPLETE: kdNameLookup complete event. */
-#define KD_EVENT_NAME_LOOKUP_COMPLETE 53
-typedef struct KDEventNameLookup {
- KDint32 error;
- KDint32 resultlen;
- const KDSockaddr *result;
- KDboolean more;
-} KDEventNameLookup;
-
-/*******************************************************
- * Input/output
- *******************************************************/
-
-/* KD_EVENT_STATE: State changed event. */
-#define KD_EVENT_STATE 55
-
-typedef struct KDEventState {
- KDint32 index;
- union {
- KDint32 i;
- KDint64 l;
- KDfloat32 f;
- } value;
-} KDEventState;
-
-/* KD_EVENT_INPUT: Input changed event. */
-#define KD_EVENT_INPUT 56
-
-typedef struct KDEventInput {
- KDint32 index;
- union {
- KDint32 i;
- KDint64 l;
- KDfloat32 f;
- } value;
-} KDEventInput;
-
-/* KD_EVENT_INPUT_JOG: Jogdial jog event. */
-#define KD_EVENT_INPUT_JOG 71
-typedef struct KDEventInputJog {
- KDint32 index;
- KDint32 count;
-} KDEventInputJog;
-
-/* KD_EVENT_INPUT_POINTER: Pointer input changed event. */
-#define KD_EVENT_INPUT_POINTER 57
-typedef struct KDEventInputPointer {
- KDint32 index;
- KDint32 select;
- KDint32 x;
- KDint32 y;
-} KDEventInputPointer;
-
-/* KD_EVENT_INPUT_STICK: Joystick stick changed event. */
-#define KD_EVENT_INPUT_STICK 58
-typedef struct KDEventInputStick {
- KDint32 index;
- KDint32 x;
- KDint32 y;
- KDint32 z;
-} KDEventInputStick;
-
-/* kdStateGeti, kdStateGetl, kdStateGetf: get state value(s) */
-KD_API KDint KD_APIENTRY kdStateGeti(KDint startidx, KDuint numidxs, KDint32 *buffer);
-KD_API KDint KD_APIENTRY kdStateGetl(KDint startidx, KDuint numidxs, KDint64 *buffer);
-KD_API KDint KD_APIENTRY kdStateGetf(KDint startidx, KDuint numidxs, KDfloat32 *buffer);
-
-/* kdOutputSeti, kdOutputSetf: set outputs */
-KD_API KDint KD_APIENTRY kdOutputSeti(KDint startidx, KDuint numidxs, const KDint32 *buffer);
-KD_API KDint KD_APIENTRY kdOutputSetf(KDint startidx, KDuint numidxs, const KDfloat32 *buffer);
-#define KD_IO_CONTROLLER_STRIDE 64
-
-/* KD_IOGROUP_GAMEKEYS: I/O group for game keys. */
-#define KD_IOGROUP_GAMEKEYS 0x1000
-#define KD_STATE_GAMEKEYS_AVAILABILITY (KD_IOGROUP_GAMEKEYS + 0)
-#define KD_INPUT_GAMEKEYS_UP (KD_IOGROUP_GAMEKEYS + 1)
-#define KD_INPUT_GAMEKEYS_LEFT (KD_IOGROUP_GAMEKEYS + 2)
-#define KD_INPUT_GAMEKEYS_RIGHT (KD_IOGROUP_GAMEKEYS + 3)
-#define KD_INPUT_GAMEKEYS_DOWN (KD_IOGROUP_GAMEKEYS + 4)
-#define KD_INPUT_GAMEKEYS_FIRE (KD_IOGROUP_GAMEKEYS + 5)
-#define KD_INPUT_GAMEKEYS_A (KD_IOGROUP_GAMEKEYS + 6)
-#define KD_INPUT_GAMEKEYS_B (KD_IOGROUP_GAMEKEYS + 7)
-#define KD_INPUT_GAMEKEYS_C (KD_IOGROUP_GAMEKEYS + 8)
-#define KD_INPUT_GAMEKEYS_D (KD_IOGROUP_GAMEKEYS + 9)
-
-/* KD_IOGROUP_GAMEKEYSNC: I/O group for game keys, no chording. */
-#define KD_IOGROUP_GAMEKEYSNC 0x1100
-#define KD_STATE_GAMEKEYSNC_AVAILABILITY (KD_IOGROUP_GAMEKEYSNC + 0)
-#define KD_INPUT_GAMEKEYSNC_UP (KD_IOGROUP_GAMEKEYSNC + 1)
-#define KD_INPUT_GAMEKEYSNC_LEFT (KD_IOGROUP_GAMEKEYSNC + 2)
-#define KD_INPUT_GAMEKEYSNC_RIGHT (KD_IOGROUP_GAMEKEYSNC + 3)
-#define KD_INPUT_GAMEKEYSNC_DOWN (KD_IOGROUP_GAMEKEYSNC + 4)
-#define KD_INPUT_GAMEKEYSNC_FIRE (KD_IOGROUP_GAMEKEYSNC + 5)
-#define KD_INPUT_GAMEKEYSNC_A (KD_IOGROUP_GAMEKEYSNC + 6)
-#define KD_INPUT_GAMEKEYSNC_B (KD_IOGROUP_GAMEKEYSNC + 7)
-#define KD_INPUT_GAMEKEYSNC_C (KD_IOGROUP_GAMEKEYSNC + 8)
-#define KD_INPUT_GAMEKEYSNC_D (KD_IOGROUP_GAMEKEYSNC + 9)
-
-/* KD_IOGROUP_PHONEKEYPAD: I/O group for phone keypad. */
-#define KD_IOGROUP_PHONEKEYPAD 0x2000
-#define KD_STATE_PHONEKEYPAD_AVAILABILITY (KD_IOGROUP_PHONEKEYPAD + 0)
-#define KD_INPUT_PHONEKEYPAD_0 (KD_IOGROUP_PHONEKEYPAD + 1)
-#define KD_INPUT_PHONEKEYPAD_1 (KD_IOGROUP_PHONEKEYPAD + 2)
-#define KD_INPUT_PHONEKEYPAD_2 (KD_IOGROUP_PHONEKEYPAD + 3)
-#define KD_INPUT_PHONEKEYPAD_3 (KD_IOGROUP_PHONEKEYPAD + 4)
-#define KD_INPUT_PHONEKEYPAD_4 (KD_IOGROUP_PHONEKEYPAD + 5)
-#define KD_INPUT_PHONEKEYPAD_5 (KD_IOGROUP_PHONEKEYPAD + 6)
-#define KD_INPUT_PHONEKEYPAD_6 (KD_IOGROUP_PHONEKEYPAD + 7)
-#define KD_INPUT_PHONEKEYPAD_7 (KD_IOGROUP_PHONEKEYPAD + 8)
-#define KD_INPUT_PHONEKEYPAD_8 (KD_IOGROUP_PHONEKEYPAD + 9)
-#define KD_INPUT_PHONEKEYPAD_9 (KD_IOGROUP_PHONEKEYPAD + 10)
-#define KD_INPUT_PHONEKEYPAD_STAR (KD_IOGROUP_PHONEKEYPAD + 11)
-#define KD_INPUT_PHONEKEYPAD_HASH (KD_IOGROUP_PHONEKEYPAD + 12)
-#define KD_INPUT_PHONEKEYPAD_LEFTSOFT (KD_IOGROUP_PHONEKEYPAD + 13)
-#define KD_INPUT_PHONEKEYPAD_RIGHTSOFT (KD_IOGROUP_PHONEKEYPAD + 14)
-#define KD_STATE_PHONEKEYPAD_ORIENTATION (KD_IOGROUP_PHONEKEYPAD + 15)
-
-/* KD_IOGROUP_VIBRATE: I/O group for vibrate. */
-#define KD_IOGROUP_VIBRATE 0x3000
-#define KD_STATE_VIBRATE_AVAILABILITY (KD_IOGROUP_VIBRATE + 0)
-#define KD_STATE_VIBRATE_MINFREQUENCY (KD_IOGROUP_VIBRATE + 1)
-#define KD_STATE_VIBRATE_MAXFREQUENCY (KD_IOGROUP_VIBRATE + 2)
-#define KD_OUTPUT_VIBRATE_VOLUME (KD_IOGROUP_VIBRATE + 3)
-#define KD_OUTPUT_VIBRATE_FREQUENCY (KD_IOGROUP_VIBRATE + 4)
-
-/* KD_IOGROUP_POINTER: I/O group for pointer. */
-#define KD_IOGROUP_POINTER 0x4000
-#define KD_STATE_POINTER_AVAILABILITY (KD_IOGROUP_POINTER + 0)
-#define KD_INPUT_POINTER_X (KD_IOGROUP_POINTER + 1)
-#define KD_INPUT_POINTER_Y (KD_IOGROUP_POINTER + 2)
-#define KD_INPUT_POINTER_SELECT (KD_IOGROUP_POINTER + 3)
-
-/* KD_IOGROUP_BACKLIGHT: I/O group for backlight. */
-#define KD_IOGROUP_BACKLIGHT 0x5000
-#define KD_STATE_BACKLIGHT_AVAILABILITY (KD_IOGROUP_BACKLIGHT + 0)
-#define KD_OUTPUT_BACKLIGHT_FORCE (KD_IOGROUP_BACKLIGHT + 1)
-
-/* KD_IOGROUP_JOGDIAL: I/O group for a jog dial. */
-#define KD_IOGROUP_JOGDIAL 0x6000
-#define KD_STATE_JOGDIAL_AVAILABILITY (KD_IOGROUP_JOGDIAL + 0)
-#define KD_INPUT_JOGDIAL_UP (KD_IOGROUP_JOGDIAL + 1)
-#define KD_INPUT_JOGDIAL_LEFT (KD_IOGROUP_JOGDIAL + 2)
-#define KD_INPUT_JOGDIAL_RIGHT (KD_IOGROUP_JOGDIAL + 3)
-#define KD_INPUT_JOGDIAL_DOWN (KD_IOGROUP_JOGDIAL + 4)
-#define KD_INPUT_JOGDIAL_SELECT (KD_IOGROUP_JOGDIAL + 5)
-
-/* KD_IOGROUP_STICK: I/O group for joystick. */
-#define KD_IOGROUP_STICK 0x7000
-#define KD_STATE_STICK_AVAILABILITY (KD_IOGROUP_STICK + 0)
-#define KD_INPUT_STICK_X (KD_IOGROUP_STICK + 1)
-#define KD_INPUT_STICK_Y (KD_IOGROUP_STICK + 2)
-#define KD_INPUT_STICK_Z (KD_IOGROUP_STICK + 3)
-#define KD_INPUT_STICK_BUTTON (KD_IOGROUP_STICK + 4)
-#define KD_IO_STICK_STRIDE 8
-
-/* KD_IOGROUP_DPAD: I/O group for D-pad. */
-#define KD_IOGROUP_DPAD 0x8000
-#define KD_STATE_DPAD_AVAILABILITY (KD_IOGROUP_DPAD + 0)
-#define KD_STATE_DPAD_COPY (KD_IOGROUP_DPAD + 1)
-#define KD_INPUT_DPAD_UP (KD_IOGROUP_DPAD + 2)
-#define KD_INPUT_DPAD_LEFT (KD_IOGROUP_DPAD + 3)
-#define KD_INPUT_DPAD_RIGHT (KD_IOGROUP_DPAD + 4)
-#define KD_INPUT_DPAD_DOWN (KD_IOGROUP_DPAD + 5)
-#define KD_INPUT_DPAD_SELECT (KD_IOGROUP_DPAD + 6)
-#define KD_IO_DPAD_STRIDE 8
-
-/* KD_IOGROUP_BUTTONS: I/O group for buttons associated with joystick or D-pad. */
-#define KD_IOGROUP_BUTTONS 0x9000
-#define KD_STATE_BUTTONS_AVAILABILITY (KD_IOGROUP_BUTTONS + 0)
-#define KD_INPUT_BUTTONS_0 (KD_IOGROUP_BUTTONS + 1)
-
-/* KD_IO_UNDEFINED: I/O items reserved for implementation-dependent use. */
-#define KD_IO_UNDEFINED 0x40000000
-
-/*******************************************************
- * Windowing
- *******************************************************/
-#ifdef KD_WINDOW_SUPPORTED
-#include <EGL/egl.h>
-typedef struct KDWindow KDWindow;
-
-/* kdCreateWindow: Create a window. */
-KD_API KDWindow *KD_APIENTRY kdCreateWindow(EGLDisplay display, EGLConfig config, void *eventuserptr);
-
-/* kdDestroyWindow: Destroy a window. */
-KD_API KDint KD_APIENTRY kdDestroyWindow(KDWindow *window);
-
-/* kdSetWindowPropertybv, kdSetWindowPropertyiv, kdSetWindowPropertycv: Set a window property to request a change in the on-screen representation of the window. */
-KD_API KDint KD_APIENTRY kdSetWindowPropertybv(KDWindow *window, KDint pname, const KDboolean *param);
-KD_API KDint KD_APIENTRY kdSetWindowPropertyiv(KDWindow *window, KDint pname, const KDint32 *param);
-KD_API KDint KD_APIENTRY kdSetWindowPropertycv(KDWindow *window, KDint pname, const KDchar *param);
-
-/* kdGetWindowPropertybv, kdGetWindowPropertyiv, kdGetWindowPropertycv: Get the current value of a window property. */
-KD_API KDint KD_APIENTRY kdGetWindowPropertybv(KDWindow *window, KDint pname, KDboolean *param);
-KD_API KDint KD_APIENTRY kdGetWindowPropertyiv(KDWindow *window, KDint pname, KDint32 *param);
-KD_API KDint KD_APIENTRY kdGetWindowPropertycv(KDWindow *window, KDint pname, KDchar *param, KDsize *size);
-
-/* kdRealizeWindow: Realize the window as a displayable entity and get the native window handle for passing to EGL. */
-KD_API KDint KD_APIENTRY kdRealizeWindow(KDWindow *window, EGLNativeWindowType *nativewindow);
-
-/* KD_WINDOWPROPERTY_SIZE: Window client area width and height. */
-#define KD_WINDOWPROPERTY_SIZE 66
-
-/* KD_WINDOWPROPERTY_VISIBILITY: Window visibility status. */
-#define KD_WINDOWPROPERTY_VISIBILITY 67
-
-/* KD_WINDOWPROPERTY_FOCUS: Window input focus status. */
-#define KD_WINDOWPROPERTY_FOCUS 68
-
-/* KD_WINDOWPROPERTY_CAPTION: Window caption. */
-#define KD_WINDOWPROPERTY_CAPTION 69
-
-/* KD_EVENT_WINDOW_CLOSE: Event to request to close window. */
-#define KD_EVENT_WINDOW_CLOSE 44
-
-/* KD_EVENT_WINDOWPROPERTY_CHANGE: Notification about realized window property change. */
-#define KD_EVENT_WINDOWPROPERTY_CHANGE 47
-typedef struct KDEventWindowProperty {
- KDint32 pname;
-} KDEventWindowProperty;
-
-/* KD_EVENT_WINDOW_FOCUS: Event for change of window&#8217;s focus state. */
-#define KD_EVENT_WINDOW_FOCUS 60
-typedef struct KDEventWindowFocus {
- KDint32 focusstate;
-} KDEventWindowFocus;
-
-/* KD_EVENT_WINDOW_REDRAW: Event to notify need to redraw the window. */
-#define KD_EVENT_WINDOW_REDRAW 59
-#endif /* KD_WINDOW_SUPPORTED */
-
-/*******************************************************
- * Assertions and logging
- *******************************************************/
-
-/* kdHandleAssertion: Handle assertion failure. */
-KD_API void KD_APIENTRY kdHandleAssertion(const KDchar *condition, const KDchar *filename, KDint linenumber);
-
-/* kdLogMessage: Output a log message. */
-#ifdef KD_NDEBUG
-#define kdLogMessage(s)
-#else
-KD_API void KD_APIENTRY kdLogMessage(const KDchar *string);
-#endif
-
-/* struct KDEvent delayed to the end as it uses event data structs from
- * other parts of the .h file. */
-struct KDEvent {
- KDust timestamp;
- KDint32 type;
- void *userptr;
- union KDEventData {
- KDEventState state;
- KDEventInput input;
- KDEventInputJog inputjog;
- KDEventInputPointer inputpointer;
- KDEventInputStick inputstick;
- KDEventSocketReadable socketreadable;
- KDEventSocketWritable socketwritable;
- KDEventSocketConnect socketconnect;
- KDEventSocketIncoming socketincoming;
- KDEventNameLookup namelookup;
-#ifdef KD_WINDOW_SUPPORTED
- KDEventWindowProperty windowproperty;
- KDEventWindowFocus windowfocus;
-#endif /* KD_WINDOW_SUPPORTED */
- KDEventUser user;
- } data;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __kd_h_ */
-
diff --git a/src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/kdplatform.h b/src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/kdplatform.h
deleted file mode 100644
index 3cf09f52..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Windows/PlatformLibs/KD/kdplatform.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2007 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/* Sample KD/kdplatform.h for OpenKODE Core 1.0.3 */
-#ifndef __kdplatform_h_
-#define __kdplatform_h_
-
-#define KD_API
-#define KD_APIENTRY
-
-typedef int KDint32;
-typedef unsigned int KDuint32;
-typedef long long KDint64;
-typedef unsigned long long KDuint64;
-typedef short KDint16;
-typedef unsigned short KDuint16;
-typedef unsigned long KDuintptr;
-typedef unsigned long KDsize;
-typedef long KDssize;
-#define KDINT_MIN (-0x7fffffff-1)
-#define KDINT_MAX 0x7fffffff
-#define KDUINT_MAX 0xffffffffU
-#define KDINT64_MIN (-0x7fffffffffffffffLL-1)
-#define KDINT64_MAX 0x7fffffffffffffffLL
-#define KDUINT64_MAX 0xffffffffffffffffULL
-#define KDSSIZE_MIN (-0x7fffffff-1)
-#define KDSSIZE_MAX 0x7fffffff
-#define KDSIZE_MAX 0xffffffffU
-#define KDUINTPTR_MAX 0xffffffffU
-#define KD_NORETURN
-#define KD_WINDOW_SUPPORTED
-#ifdef KD_NDEBUG
-#define kdAssert(c)
-#else
-#define kdAssert(c) ((void)( (c) ? 0 : (kdHandleAssertion(#c, __FILE__, __LINE__), 0)))
-#endif
-
-#define KD_INFINITY_BITS 0x7f800000u
-#define KD_INFINITY (kdBitsToFloatNV(KD_INFINITY_BITS))
-
-KD_API float KD_APIENTRY kdBitsToFloatNV(KDuint32 x);
-
-
-/** KHR_formatted extension */
-#include <stdarg.h>
-typedef va_list KDVaListKHR;
-
-// If there are problems with including stdarg.h here under any of the Windows
-// operating systems, we might want to change it back to using char* instead of
-// va_list
-//typedef char *KDVaListKHR;
-
-
-#define KD_VA_START_KHR(ap, parmN) \
- do {ap = (KDVaListKHR)&parmN + sizeof(parmN);} while(0)
-
-#define KD_VA_ARG_CHAR_KHR(ap) (KDchar)va_arg(ap, KDint)
-#define KD_VA_ARG_CHARPTR_KHR(ap) (KDchar*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_INT16_KHR(ap) (KDint16)va_arg(ap, KDint)
-#define KD_VA_ARG_INT32_KHR(ap) va_arg(ap, KDint32)
-#define KD_VA_ARG_INT_KHR(ap) va_arg(ap, KDint)
-#define KD_VA_ARG_INT64_KHR(ap) va_arg(ap, KDint64)
-#define KD_VA_ARG_INTPTR_KHR(ap) (KDint*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_INT16PTR_KHR(ap) (KDint16*)(KD_VA_ARG_PTR_KHR(ap))
-#define KD_VA_ARG_FLOAT32_KHR(ap) (KDfloat32)(va_arg(ap, double))
-#define KD_VA_ARG_PTR_KHR(ap) (void *)va_arg(ap, char *)
-
-#define KD_VA_END_KHR(ap) \
- do {ap = (KDVaListKHR)0;} while(0)
-
-#endif /* __kdplatform_h_ */
-
diff --git a/src/3rdparty/RuntimePlatformSpecific/Windows/Qt3DSLibs/KD/MinKD.c b/src/3rdparty/RuntimePlatformSpecific/Windows/Qt3DSLibs/KD/MinKD.c
deleted file mode 100644
index 5124ec05..00000000
--- a/src/3rdparty/RuntimePlatformSpecific/Windows/Qt3DSLibs/KD/MinKD.c
+++ /dev/null
@@ -1,330 +0,0 @@
-#include "KD/kd.h"
-#include <stdio.h>
-#include <math.h>
-#include <string.h>
-#include <memory.h>
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <malloc.h>
-
-
-KDFile* kdFopen(const KDchar* pathname, const KDchar* mode)
-{
- FILE* retval;
- retval = fopen( pathname, mode );
- return (KDFile*)retval;
-}
-
-
-KDsize kdFread(void *buffer, KDsize size, KDsize count, KDFile *file)
-{
- return fread( buffer, size, count, (FILE*)file );
-}
-
-/* kdFwrite: Write to a file. */
-KDsize kdFwrite(const void *buffer, KDsize size, KDsize count, KDFile *file)
-{
- return fwrite( buffer, size, count, (FILE*)file );
-}
-
-KDint kdFclose(KDFile *file)
-{
- return fclose( (FILE*)file );
-}
-
-/* kdCosf: Cosine function. */
-KDfloat32 kdCosf(KDfloat32 x) { return cosf( x ); }
-
-/* kdSinf: Sine function. */
-KDfloat32 kdSinf(KDfloat32 x) { return sinf( x ); }
-
-KDfloat32 kdSqrtf(KDfloat32 x ) { return sqrtf( x ); }
-
-KDfloat32 kdTanf( KDfloat32 x ) { return tanf( x ); }
-
-KDint kdAbs(KDint i)
-{
- return i < 0 ? -i : i;
-}
-
-
-KDfloat32 kdFabsf(KDfloat32 i) { return fabs( i ); }
-
-/* kdStrcpy_s: Copy a string with an overrun check. */
-
-KDint kdStrcpy_s(KDchar* buf, KDsize buflen, const KDchar* src)
-{
- return kdStrncpy_s(buf, buflen, src, -1);
-}
-
-/* kdStrncpy_s: Copy a string with an overrun check. */
-KDint kdStrncpy_s(KDchar* buf, KDsize buflen, const KDchar* src, KDsize srclen)
-{
- const char* term;
- if ( srclen == (KDsize)-1)
- srclen = buflen;
-
- term = (const char*)memchr(src, 0, srclen);
- if (term)
- srclen = term - src;
- if (srclen >= buflen) {
- if (buflen)
- *buf = 0;
- return KD_EINVAL;
- }
- memcpy(buf, src, srclen);
- buf[srclen] = 0;
- return 0;
-}
-
-/* kdStrncat_s: Concatenate two strings. */
-KDint kdStrncat_s(KDchar* buf, KDsize buflen, const KDchar* src, KDsize srcmaxlen)
-{
- size_t origlen = strlen(buf);
- const char* p = (const char*)memchr(src, 0, srcmaxlen);
- if (p)
- srcmaxlen = p - src;
- if (origlen + srcmaxlen >= buflen)
- {
- /* spec says "buf[0] is set to 0". But that's bad if buflen == 0!
- * kdStrncpy_s's spec is better here. */
- if (buflen)
- buf[0] = 0;
- return KD_ERANGE;
- }
- memcpy(buf + origlen, src, srcmaxlen);
- buf[origlen + srcmaxlen] = 0;
- return 0;
-}
-/* kdMemset: Set bytes in memory to a value. */
-void* kdMemset(void *buf, KDint byte, KDsize len) { return memset( buf, byte, len ); }
-
-/* kdStrcmp: Compares two strings. */
-KDint kdStrcmp(const KDchar *str1, const KDchar *str2) { return strcmp( str1, str2); }
-
-/* kdStrlen: Determine the length of a string. */
-KDsize kdStrlen(const KDchar *str) { return strlen( str ); }
-
-void* kdMalloc( KDsize size ) { return malloc(size); }
-
-void kdFree( void* ptr ) { free( ptr ); }
-
-void* kdMemcpy(void *buf, const void *src, KDsize len) { return memcpy( buf, src, len ); }
-
-struct KDThreadMutex
-{
- CRITICAL_SECTION p_mutex;
-};
-
-/* kdThreadMutexCreate: Create a mutex. */
-KD_API KDThreadMutex* kdThreadMutexCreate(const void *mutexattr)
-{
- KDThreadMutex* mutex = (KDThreadMutex*)malloc(sizeof(KDThreadMutex));
- if (mutex)
- {
- InitializeCriticalSection(&mutex->p_mutex);
- return mutex;
- }
-
- return KD_NULL;
-}
-
-/* kdThreadMutexFree: Free a mutex. */
-KDint kdThreadMutexFree(KDThreadMutex *mutex)
-{
- DeleteCriticalSection(&mutex->p_mutex);
- free(mutex);
- return 0;
-}
-
-/* kdThreadMutexLock: Lock a mutex. */
-KDint kdThreadMutexLock(KDThreadMutex *mutex)
-{
- (void)EnterCriticalSection(&mutex->p_mutex);
- return 0;
-}
-
-/* kdThreadMutexUnlock: Unlock a mutex. */
-KDint kdThreadMutexUnlock(KDThreadMutex *mutex)
-{
- LeaveCriticalSection(&mutex->p_mutex);
- return 0;
-}
-
-struct KDThreadAttr
-{
- SECURITY_ATTRIBUTES p_attr;
-};
-
-typedef unsigned char uint8_t;
-typedef HANDLE pthread_t;
-
-struct KDThread
-{
- HANDLE Handle;
- uint8_t Detached;
- uint8_t IsRunning;
- INT UserThread;
- void* (*UserThreadProc)(void*);
- void* UserArg;
-};
-
-
-static DWORD WINAPI ThreadProc( __in LPVOID lpParameter )
-{
- struct KDThread* threadPtr = (struct KDThread*)lpParameter;
- return (DWORD)threadPtr->UserThreadProc( threadPtr->UserArg );
-}
-/* kdThreadCreate: Create a new thread. */
-KDThread * kdThreadCreate(const KDThreadAttr *attr, void *(*start_routine)(void *), void *arg)
-{
- pthread_t thread;
- int retval;
- SECURITY_ATTRIBUTES* p_attr;
- struct KDThread* newThread;
- if ( attr )
- p_attr = (const SECURITY_ATTRIBUTES*)( &attr->p_attr );
- else
- p_attr = KD_NULL;
- newThread = (struct KDThread*) malloc( sizeof(struct KDThread ) );
- if ( newThread == KD_NULL ) return KD_NULL;
- newThread->Handle;
- newThread->Detached = 0;
- newThread->IsRunning = 1;
- newThread->UserThreadProc = start_routine;
- newThread->UserArg = arg;
-
- newThread->Handle = CreateThread( p_attr, 0, ThreadProc, newThread, 0, &newThread->UserThread );
- if ( newThread->Handle == 0 )
- {
- free( newThread );
- return KD_NULL;
- }
- return newThread;
-}
-
-/* kdThreadExit: Terminate this thread. */
-void kdThreadExit(void *retval)
-{
- ExitThread( (DWORD)retval );
-}
-
-/* kdThreadJoin: Wait for termination of another thread. */
-KDint kdThreadJoin(KDThread *thread, void **retval)
-{
- WaitForSingleObject( thread->Handle, INFINITE );
- CloseHandle( thread->Handle );
- free( thread );
- return 0;
-}
-
-typedef struct KDDirInternal {
- WIN32_FIND_DATAA ffd;
- HANDLE hFind;
- KDDirent dirEnt;
- char pathBuffer[MAX_PATH];
-} KDDirInternal;
-
-/* kdOpenDir: Open a directory ready for listing. */
-KDDir *kdOpenDir(const KDchar *pathname)
-{
- KDDirInternal* retval = (KDDirInternal*)malloc( sizeof( KDDirInternal ));
- if ( retval == NULL ) { return NULL; }
-
- memset( retval, 0, sizeof( KDDirInternal ) );
-
-
- retval->hFind = FindFirstFileA( pathname, &retval->ffd );
-
- if ( retval->hFind ) { free(retval ); return KD_NULL; };
- if ( retval == KD_NULL ) return KD_NULL;
- memset( retval, 0, sizeof( *retval ) );
- return (KDDir*)retval;
-}
-
-/* kdReadDir: Return the next file in a directory. */
-KDDirent* kdReadDir(KDDir *dir)
-{
- KDDirInternal* theDir = (KDDirInternal *)dir;
- INT success;
- if ( *theDir->ffd.cFileName == 0
- || theDir->hFind == INVALID_HANDLE_VALUE )
- return NULL;
-
- strcpy_s( theDir->pathBuffer, MAX_PATH, theDir->ffd.cFileName );
- theDir->dirEnt.d_name = theDir->pathBuffer;
-
- success = FindNextFile(theDir->hFind, &theDir->ffd);
- if ( success == 0 )
- theDir->ffd.cFileName[0] = 0;
-
- return &theDir->dirEnt;
-}
-
-/* kdCloseDir: Close a directory. */
-KDint kdCloseDir(KDDir *dir)
-{
- KDDirInternal* theDir = (KDDirInternal *)dir;
- FindClose( theDir->hFind );
- free(theDir);
- return 0;
-}
-
-KDint kdSetWindowPropertyiv(KDWindow * win, KDint prop, const KDint32 * val)
-{
- return 0;
-}
-
-void kdDefaultEvent(const KDEvent *event )
-{
-
-}
-
-typedef long long NvS64;
-
-//Stubbed and not implemented.
-
-KDust kdGetTimeUST(void)
-{
- KDust retval;
- memset( &retval, 0, sizeof( retval ) );
- return retval;
-}
-
-/* kdGmtime_r, kdLocaltime_r: Convert a seconds-since-epoch time into broken-down time. */
-KDTm* kdGmtime_r(const KDtime* timep, KDTm* result)
-{
- return NULL;
-}
-
-KDTm* kdLocaltime_r(const KDtime* timep, KDTm* result)
-{
- return NULL;
-}
-
-//===========================================================================
-// kdCreateEvent: Create an event for posting.
-//===========================================================================
-KDEvent* kdCreateEvent(void)
-{
- //Memory leak and there isn't much I am going to do about this now
- KDEvent* newEvent = (KDEvent*)malloc( sizeof( KDEvent ));
- memset( newEvent, 0, sizeof( KDEvent ));
- return newEvent;
-}
-
-KDfloat32 kdInvsqrtf(KDfloat32 x)
-{
- long i;
- float x2, y;
- const float threehalfs = 1.5F;
-
- x2 = x * 0.5F;
- y = x;
- i = * ( long * ) &y; // evil floating point bit level hacking
- i = 0x5f3759df - ( i >> 1 );
- y = * ( float * ) &i;
- y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
-
- return y;
-}
diff --git a/src/Runtime/Qt3DSRuntimeStatic.pro b/src/Runtime/Qt3DSRuntimeStatic.pro
index f560939e..e0b6abdb 100644
--- a/src/Runtime/Qt3DSRuntimeStatic.pro
+++ b/src/Runtime/Qt3DSRuntimeStatic.pro
@@ -28,7 +28,6 @@ SOURCES += \
Source/Qt3DSFoundation/Source/foundation/StringTable.cpp \
Source/Qt3DSFoundation/Source/foundation/XML.cpp \
Source/Qt3DSRuntimeRender/Source/q3dsqmlrender.cpp \
- Source/Engine/Source/Qt3DSOSSpecificFunctions.cpp \
Source/Engine/Source/Qt3DSRenderRuntimeBinding.cpp \
Source/Engine/Source/Qt3DSRenderRuntimeBindingImplRenderer.cpp \
Source/Engine/Source/Qt3DSRenderRuntimeBindingImplTranslation.cpp \
@@ -151,8 +150,6 @@ SOURCES += \
Source/System/Source/Qt3DSMemoryProbe.cpp \
Source/System/Source/Qt3DSMemoryStatistics.cpp \
Source/System/Source/Qt3DSMemoryTracker.cpp \
- Source/System/Source/Qt3DSSyncPrimitive.cpp \
- Source/System/Source/Qt3DSThreadManager.cpp \
Source/System/Source/Qt3DSTimer.cpp \
Source/System/Source/Qt3DSTypes.cpp \
Source/System/Source/Qt3DSVector3.cpp \
@@ -427,18 +424,12 @@ HEADERS += \
Source/System/Include/Qt3DSMemoryStatistics.h \
Source/System/Include/Qt3DSMemoryTracker.h \
Source/System/Include/Qt3DSPlatformSpecific.h \
- Source/System/Include/Qt3DSSyncPrimitive.h \
- Source/System/Include/Qt3DSThreadManager.h \
- Source/System/Include/Qt3DSThreadSafeQueue.h \
- Source/System/Include/Qt3DSThreadSafeScratchpad.h \
Source/System/Include/Qt3DSTimer.h \
Source/System/Include/Qt3DSTypes.h \
Source/System/Include/Qt3DSVector3.h \
Source/System/Include/Qt3DSArray.inl \
Source/System/Include/Qt3DSCircularArray.inl \
Source/System/Include/Qt3DSFixedArray.inl \
- Source/System/Include/Qt3DSThreadSafeQueue.inl \
- Source/System/Include/Qt3DSThreadSafeScratchpad.inl \
Source/Qt3DSStateApplication/Application/Qt3DSStateApplication.h \
Source/Qt3DSStateApplication/Debugger/Qt3DSLuaDebugger.h \
Source/Qt3DSStateApplication/Debugger/Qt3DSLuaDebuggerImpl.h \
@@ -537,7 +528,6 @@ HEADERS += \
# Libs
SOURCES += \
- ../3rdparty/RuntimePlatformSpecific/$$PlatformSpecificDir/Qt3DSLibs/KD/MinKD.c \
Source/PlatformSpecific/$$PlatformSpecificDir/Qt3DSLibs/nv_math/nv_math.cpp \
Source/PlatformSpecific/$$PlatformSpecificDir/Qt3DSLibs/nv_math/nv_matrix.cpp \
Source/PlatformSpecific/$$PlatformSpecificDir/Qt3DSLibs/nv_math/nv_quat.cpp
diff --git a/src/Runtime/Source/Engine/Include/Qt3DSTegraApplication.h b/src/Runtime/Source/Engine/Include/Qt3DSTegraApplication.h
index 38bdb4b7..bb1e3ace 100644
--- a/src/Runtime/Source/Engine/Include/Qt3DSTegraApplication.h
+++ b/src/Runtime/Source/Engine/Include/Qt3DSTegraApplication.h
@@ -44,7 +44,7 @@
#include "Qt3DSRenderRuntimeBinding.h"
#include <QtCore/qobject.h>
#include <QtGui/qsurfaceformat.h>
-#include <KD/kd.h>
+
//==============================================================================
// Namespace
//==============================================================================
@@ -123,7 +123,7 @@ public:
virtual void CheckResize(bool inForce, IPresentation &inActivePresentation) = 0;
virtual BOOL LoadShaderCache(const CHAR *inFilePath) = 0;
virtual void AbandonLoadingImages(IScene &inScene) = 0;
- virtual BOOL IsPickValid(KDfloat32 &outX, KDfloat32 &outY,
+ virtual BOOL IsPickValid(FLOAT &outX, FLOAT &outY,
const IPresentation &inPresentation) const = 0;
virtual void SetScaleMode(TegraRenderScaleModes::Enum inScale) = 0;
virtual void SetShadeMode(TegraRenderShadeModes::Enum inShade) = 0;
@@ -172,7 +172,7 @@ public: // loading
virtual bool WasLastFrameDirty() = 0;
- virtual KDint HandleMessage(const KDEvent *inEvent) = 0;
+ virtual bool HandleMessage(const QEvent *inEvent) = 0;
virtual void Pause() = 0;
virtual void UnPause() = 0;
@@ -229,7 +229,7 @@ public:
IAudioPlayer *inAudioPlayer = 0);
virtual ~CTegraApplication();
// loading
- KDint BeginLoad(const QString &sourcePath);
+ bool BeginLoad(const QString &sourcePath);
// asynchronous BeginLoad completed? That only valid for binary presentation, for text
// presentation, always true
bool HasOfflineLoadingCompleted() { return m_NDDView->HasOfflineLoadingCompleted(); }
@@ -242,7 +242,7 @@ public:
void Render();
bool WasLastFrameDirty() { return m_NDDView->WasLastFrameDirty(); }
- KDint HandleMessage(const KDEvent *inEvent);
+ bool HandleMessage(const QEvent *inEvent);
void Pause() { m_NDDView->Pause(); }
void UnPause() { m_NDDView->UnPause(); }
bool IsPaused() { return m_NDDView->IsPaused(); }
diff --git a/src/Runtime/Source/Engine/Include/Qt3DSTegraInputEngine.h b/src/Runtime/Source/Engine/Include/Qt3DSTegraInputEngine.h
index 57b4de12..14047f16 100644
--- a/src/Runtime/Source/Engine/Include/Qt3DSTegraInputEngine.h
+++ b/src/Runtime/Source/Engine/Include/Qt3DSTegraInputEngine.h
@@ -38,7 +38,6 @@
#include "Qt3DSTegraApplication.h"
#include "Qt3DSInputEventTypes.h"
#include "Qt3DSPresentation.h"
-#include "KD/kd.h"
//==============================================================================
// Namespace
@@ -73,7 +72,7 @@ public: // Construction
public: // Access
SInputFrame &GetInputFrame() override;
- void HandleMessage(const KDEvent *inEvent, ITegraApplicationRenderEngine &inRenderEngine,
+ void HandleMessage(const QEvent *inEvent, ITegraApplicationRenderEngine &inRenderEngine,
CPresentation *inPresentation);
};
diff --git a/src/Runtime/Source/Engine/Source/Qt3DSOSSpecificFunctions.cpp b/src/Runtime/Source/Engine/Source/Qt3DSOSSpecificFunctions.cpp
deleted file mode 100644
index f85edd47..00000000
--- a/src/Runtime/Source/Engine/Source/Qt3DSOSSpecificFunctions.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 1993-2009 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "EnginePrefix.h"
-
-#include "Qt3DSSyncPrimitive.h"
-#include "Qt3DSThreadManager.h"
-#include "NVImageScaler.h"
-
-//==============================================================================
-// OpenKode
-//==============================================================================
-#ifdef _WIN32
-#pragma warning(push, 3)
-#endif
-#include "OpenKodeInclude.h" // TODO AH is this enough, or is it required around nv_main/nv_main.h also????
-#ifdef _WIN32
-#pragma warning(pop)
-#endif
-
-static const Q3DStudio::INT32 CONST_THREAD_SLEEP = 10;
-
-//==============================================================================
-// OS specific functions that are declared and used in our code, that need to be
-// defined somewhere else that has OS specific knowledge.
-//==============================================================================
-
-//==============================================================================
-/**
- * Create a lock primitive
- */
-void AppCreateLockPrimitive(Q3DStudio::TLockPrimitive *inPrimitive)
-{
- Q3DStudio_ASSERT(inPrimitive);
- *inPrimitive = reinterpret_cast<Q3DStudio::TLockPrimitive *>(kdThreadMutexCreate(NULL));
-}
-
-//==============================================================================
-/**
-* Destroy a lock primitive
-*/
-void AppDestroyLockPrimitive(Q3DStudio::TLockPrimitive *inPrimitive)
-{
- Q3DStudio_ASSERT(inPrimitive);
- kdThreadMutexFree(reinterpret_cast<KDThreadMutex *>(*inPrimitive));
- *inPrimitive = NULL;
-}
-
-//==============================================================================
-/**
-* Enter the thread sync point
-*/
-void AppBeginSync(Q3DStudio::TLockPrimitive inPrimitive)
-{
- Q3DStudio_ASSERT(inPrimitive);
- kdThreadMutexLock(reinterpret_cast<KDThreadMutex *>(inPrimitive));
-}
-
-//==============================================================================
-/**
-* Leave the thread sync point
-*/
-void AppEndSync(Q3DStudio::TLockPrimitive inPrimitive)
-{
- Q3DStudio_ASSERT(inPrimitive);
- kdThreadMutexUnlock(reinterpret_cast<KDThreadMutex *>(inPrimitive));
-}
-
-//==============================================================================
-/**
-* Create a thread and return an abstract ID (void*)
-*/
-Q3DStudio::TThreadID AppCreateThread(Q3DStudio::TThreadSpinFunction inFunc, void *inUserData)
-{
- KDThread *theThread = kdThreadCreate(NULL, inFunc, inUserData);
- return static_cast<Q3DStudio::TThreadID>(theThread);
-}
-
-//==============================================================================
-/**
-* Destroy the thread
-*/
-void AppDestroyThread(Q3DStudio::TThreadID inThreadID)
-{
- void *ignored = NULL;
- kdThreadJoin(static_cast<KDThread *>(inThreadID), &ignored);
-}
-
-//==============================================================================
-/**
-* Call a OS specific sleep function, to yield the cpu to other threads
-*/
-void AppSleepThread()
-{
- Q3DStudio_sleepmillisec(CONST_THREAD_SLEEP);
-}
-
-static const Q3DStudio::INT32 CMAX_THUMBNAIL_SIZE = 148;
-//==============================================================================
-/**
- * Find the correct thumbnail scaling
- */
-inline static Q3DStudio::FLOAT FindThumbnailScale(const Q3DStudio::INT32 inMaxThumbnailSize,
- Q3DStudio::INT32 inSourceWidth,
- Q3DStudio::INT32 inSourceHeight)
-{
- Q3DStudio::FLOAT theXScale = inMaxThumbnailSize / (Q3DStudio::FLOAT)inSourceWidth;
- Q3DStudio::FLOAT theYScale = inMaxThumbnailSize / (Q3DStudio::FLOAT)inSourceHeight;
- return theXScale < theYScale ? theXScale : theYScale;
-}
-
-inline static Q3DStudio::INT32 FourByteAlign(Q3DStudio::INT32 inSrc)
-{
- return (inSrc + 3) & ~3;
-}
-
-namespace Q3DStudio {
-
-inline static BOOL FileExists(const char *inPath)
-{
- KDFile *theFile = kdFopen(inPath, "rb");
- if (theFile != NULL) {
- kdFclose(theFile);
- return true;
- }
- return false;
-}
-
-} // namespace Q3DStudio
diff --git a/src/Runtime/Source/Engine/Source/Qt3DSRenderRuntimeBindingImplRenderer.cpp b/src/Runtime/Source/Engine/Source/Qt3DSRenderRuntimeBindingImplRenderer.cpp
index 3963de9a..ab5b92a1 100644
--- a/src/Runtime/Source/Engine/Source/Qt3DSRenderRuntimeBindingImplRenderer.cpp
+++ b/src/Runtime/Source/Engine/Source/Qt3DSRenderRuntimeBindingImplRenderer.cpp
@@ -98,13 +98,13 @@ struct SRenderer : public Q3DStudio::ITegraApplicationRenderEngine
void AbandonLoadingImages(Q3DStudio::IScene & /*inScene*/) override {}
- Q3DStudio::BOOL IsPickValid(KDfloat32 &outX, KDfloat32 &outY,
+ Q3DStudio::BOOL IsPickValid(FLOAT &outX, FLOAT &outY,
const Q3DStudio::IPresentation & /*inPresentation*/) const override
{
- KDfloat32 theX = outX;
- KDfloat32 theY = outY;
- theX = theX / static_cast<KDfloat32>(m_BindingCore->m_WindowDimensions.m_Width);
- theY = theY / static_cast<KDfloat32>(m_BindingCore->m_WindowDimensions.m_Height);
+ FLOAT theX = outX;
+ FLOAT theY = outY;
+ theX = theX / static_cast<FLOAT>(m_BindingCore->m_WindowDimensions.m_Width);
+ theY = theY / static_cast<FLOAT>(m_BindingCore->m_WindowDimensions.m_Height);
Q3DStudio::BOOL theValid = false;
if ((theX >= 0.0f) && (theY >= 0.0f) && (theX <= 1.0f) && (theY <= 1.0f))
diff --git a/src/Runtime/Source/Engine/Source/Qt3DSTegraApplication.cpp b/src/Runtime/Source/Engine/Source/Qt3DSTegraApplication.cpp
index cba72e71..09031c9d 100644
--- a/src/Runtime/Source/Engine/Source/Qt3DSTegraApplication.cpp
+++ b/src/Runtime/Source/Engine/Source/Qt3DSTegraApplication.cpp
@@ -35,7 +35,6 @@
#include "Qt3DSTegraInputEngine.h"
#include "Qt3DSDataLogger.h"
#include "Qt3DSFileStream.h"
-#include "Qt3DSThreadManager.h"
#include "Qt3DSArray.h"
#include "Qt3DSApplication.h"
#include "foundation/FileTools.h"
@@ -181,7 +180,7 @@ public:
void Render() override;
bool WasLastFrameDirty() override;
- KDint HandleMessage(const KDEvent *inEvent) override;
+ bool HandleMessage(const QEvent *inEvent) override;
void Pause() override;
void UnPause() override;
@@ -378,43 +377,32 @@ bool CNDDView::WasLastFrameDirty()
* nv_main APP-SPECIFIC message call
* HandleMessage
*/
-KDint CNDDView::HandleMessage(const KDEvent *inEvent)
+bool CNDDView::HandleMessage(const QEvent *inEvent)
{
if (m_Application.mPtr == NULL || m_RenderEngine == NULL)
return 0;
- KDint theReturn = KD_FALSE;
- switch (inEvent->type) {
- case KD_EVENT_INPUT:
- theReturn = KD_TRUE;
- break;
- case KD_EVENT_INPUT_POINTER:
- m_InputEngine->SetPickInput(static_cast<FLOAT>(inEvent->data.inputpointer.x),
- static_cast<FLOAT>(inEvent->data.inputpointer.y), true);
- m_InputEngine->SetPickFlags(inEvent->data.inputpointer.select ? LMOUSE_DOWN : LMOUSE_UP);
- theReturn = KD_TRUE;
- break;
-#if !defined(Q_OS_MACOS)
- case KD_EVENT_WINDOW_CLOSE:
- theReturn = KD_FALSE;
- break;
- case KD_EVENT_WINDOW_REDRAW:
- case KD_EVENT_WINDOW_FOCUS:
- theReturn = KD_TRUE;
- break;
- case KD_EVENT_WINDOWPROPERTY_CHANGE:
- if (inEvent->data.windowproperty.pname == KD_WINDOWPROPERTY_SIZE
- && m_Application->GetPrimaryPresentation())
- m_RenderEngine->CheckResize(KD_TRUE, *m_Application->GetPrimaryPresentation());
- theReturn = KD_TRUE;
- break;
-#endif
- default:
- kdDefaultEvent(inEvent);
- theReturn = KD_TRUE;
- break;
+ bool ret = false;
+ switch (inEvent->type()) {
+
+ case QEvent::MouseButtonPress:
+ case QEvent::MouseButtonRelease:
+ {
+ const QMouseEvent *event = static_cast<const QMouseEvent *>(inEvent);
+ m_InputEngine->SetPickInput(static_cast<FLOAT>(event->x()),
+ static_cast<FLOAT>(event->y()), true);
+ m_InputEngine->SetPickFlags(inEvent->type() == QEvent::MouseButtonPress
+ ? LMOUSE_DOWN : LMOUSE_UP);
+ ret = true;
+ } break;
+ case QEvent::Resize:
+ {
+ if (m_Application->GetPrimaryPresentation())
+ m_RenderEngine->CheckResize(true, *m_Application->GetPrimaryPresentation());
+ ret = true;
+ } break;
}
m_InputEngine->HandleMessage(inEvent, *m_RenderEngine, m_Application->GetPrimaryPresentation());
- return theReturn;
+ return ret ? 1 : 0;
}
void CNDDView::Pause()
@@ -706,7 +694,7 @@ CTegraApplication::~CTegraApplication()
{
}
-KDint CTegraApplication::BeginLoad(const QString &sourcePath)
+bool CTegraApplication::BeginLoad(const QString &sourcePath)
{
#ifndef QT3DS_NO_SEARCH_PATH
// We need these later on in case we try to load any files
@@ -716,7 +704,7 @@ KDint CTegraApplication::BeginLoad(const QString &sourcePath)
NvFSAppendSearchPath("/data");
#endif
- KDint theResult = KD_FALSE;
+ bool theResult = false;
qCInfo(TRACE_INFO) << "CTegraApplication::BeginLoad: Attempting presentation beginload";
@@ -726,16 +714,16 @@ KDint CTegraApplication::BeginLoad(const QString &sourcePath)
qCInfo(TRACE_INFO)
<< "CTegraApplication::BeginLoad: Successfully begin loading presentation: "
<< sourcePath;
- theResult = KD_TRUE;
+ theResult = true;
} else {
qCInfo(TRACE_INFO) << "CTegraApplication::BeginLoad: Failed to load presentation: "
<< sourcePath;
- theResult = KD_FALSE;
+ theResult = false;
}
} else {
// If there wasn't, then we are still in an OK state.
qCInfo(TRACE_INFO) << "CTegraApplication::BeginLoad: Presentation file not provided";
- theResult = KD_TRUE;
+ theResult = true;
}
qCInfo(TRACE_INFO) << "CTegraApplication::BeginLoad: End beginload";
@@ -752,7 +740,7 @@ void CTegraApplication::Render()
m_NDDView->Render();
}
-KDint CTegraApplication::HandleMessage(const KDEvent *inEvent)
+bool CTegraApplication::HandleMessage(const QEvent *inEvent)
{
return m_NDDView->HandleMessage(inEvent);
}
diff --git a/src/Runtime/Source/Engine/Source/Qt3DSTegraInputEngine.cpp b/src/Runtime/Source/Engine/Source/Qt3DSTegraInputEngine.cpp
index 798c2699..caf4d5b4 100644
--- a/src/Runtime/Source/Engine/Source/Qt3DSTegraInputEngine.cpp
+++ b/src/Runtime/Source/Engine/Source/Qt3DSTegraInputEngine.cpp
@@ -65,63 +65,56 @@ SInputFrame &CTegraInputEngine::GetInputFrame()
/**
* Handles the input message.
*/
-void CTegraInputEngine::HandleMessage(const KDEvent *inEvent,
+void CTegraInputEngine::HandleMessage(const QEvent *inEvent,
ITegraApplicationRenderEngine &inRenderEngine,
CPresentation *inPresentation)
{
- static KDboolean s_PointerWasDown = KD_FALSE;
+ static bool s_PointerWasDown = false;
if (NULL == inPresentation)
return;
- switch (inEvent->type) {
- // we still want to preserve the mouse events support, hence process this event as usual.
- case KD_EVENT_INPUT_POINTER: {
- const KDEventInputPointer *ptr = &(inEvent->data.inputpointer);
+ switch (inEvent->type()) {
- KDfloat32 x = static_cast<KDfloat32>(ptr->x);
- KDfloat32 y = static_cast<KDfloat32>(ptr->y);
+ case QEvent::MouseButtonPress:
+ case QEvent::MouseButtonRelease:
+ {
+ const QMouseEvent *event = static_cast<const QMouseEvent *>(inEvent);
- if (inRenderEngine.IsPickValid(x, y, *inPresentation)) {
- // printf( "INPUT x %ld y %ld\n", (int)x, (int)y );
- SetPickInput(x, y, (ptr->select || s_PointerWasDown) ? true : false);
+ QPointF pos = event->localPos();
+ FLOAT x = pos.x();
+ FLOAT y = pos.y();
- if (ptr->select) {
- if (s_PointerWasDown)
- SetPickFlags(LMOUSE_DOWN);
- else
- SetPickFlags(LMOUSE_PRESSED);
+ const bool pressed = inEvent->type() == QEvent::MouseButtonPress;
+
+ if (inRenderEngine.IsPickValid(x, y, *inPresentation)) {
+ // printf( "INPUT x %ld y %ld\n", (int)x, (int)y );
+ SetPickInput(x, y, (pressed || s_PointerWasDown) ? true : false);
+
+ if (pressed) {
+ if (s_PointerWasDown)
+ SetPickFlags(LMOUSE_DOWN);
+ else
+ SetPickFlags(LMOUSE_PRESSED);
+
+ s_PointerWasDown = true;
+ } else {
+ if (s_PointerWasDown)
+ SetPickFlags(LMOUSE_RELEASED);
+ else
+ SetPickFlags(LMOUSE_UP);
- s_PointerWasDown = KD_TRUE;
+ s_PointerWasDown = false;
+ }
} else {
if (s_PointerWasDown)
SetPickFlags(LMOUSE_RELEASED);
else
SetPickFlags(LMOUSE_UP);
- s_PointerWasDown = KD_FALSE;
+ s_PointerWasDown = false;
}
- } else {
- if (s_PointerWasDown)
- SetPickFlags(LMOUSE_RELEASED);
- else
- SetPickFlags(LMOUSE_UP);
-
- s_PointerWasDown = KD_FALSE;
- }
- } break;
-#if !defined(Q_OS_MACOS)
- case KD_EVENT_WINDOW_FOCUS:
- /* On loss of focus, we simulate a pointer-up event */
- if (!inEvent->data.windowfocus.focusstate) {
- /*if ( s_PointerWasDown )
- SetPickFlags( LMOUSE_RELEASED );
- else
- SetPickFlags( LMOUSE_UP );*/
- s_PointerWasDown = KD_FALSE;
- }
- break;
-#endif
+ } break;
}
}
diff --git a/src/Runtime/Source/PlatformSpecific/Android/jni/Qt3DSLibs/Android.mk b/src/Runtime/Source/PlatformSpecific/Android/jni/Qt3DSLibs/Android.mk
index 74713ed3..05f240f4 100644
--- a/src/Runtime/Source/PlatformSpecific/Android/jni/Qt3DSLibs/Android.mk
+++ b/src/Runtime/Source/PlatformSpecific/Android/jni/Qt3DSLibs/Android.mk
@@ -131,17 +131,6 @@ LOCAL_C_INCLUDES := $(MY_LOCAL_PATH)
include $(BUILD_STATIC_LIBRARY)
-
-include $(CLEAR_VARS)
-
-LOCAL_PATH := $(MY_LOCAL_PATH)/KD
-LOCAL_MODULE := MinKD
-LOCAL_SRC_FILES := MinKD.c
-LOCAL_ARM_MODE := arm
-LOCAL_C_INCLUDES := $(MY_LOCAL_PATH)
-
-include $(BUILD_STATIC_LIBRARY)
-
include $(CLEAR_VARS)
LOCAL_PATH := $(MY_LOCAL_PATH)/nv_gesture
diff --git a/src/Runtime/Source/Runtime/Include/RuntimePrefix.h b/src/Runtime/Source/Runtime/Include/RuntimePrefix.h
index 9d80fb35..bf729ebf 100644
--- a/src/Runtime/Source/Runtime/Include/RuntimePrefix.h
+++ b/src/Runtime/Source/Runtime/Include/RuntimePrefix.h
@@ -99,7 +99,6 @@
//==============================================================================
#include "Qt3DSTimer.h"
#include "Qt3DSIScene.h"
-#include "Qt3DSSyncPrimitive.h"
#include "foundation/Qt3DSRefCounted.h" //scoped releasable auto ptr.
#include "EASTL/hash_map.h"
#include "EASTL/string.h"
diff --git a/src/Runtime/Source/System/Include/Qt3DSSyncPrimitive.h b/src/Runtime/Source/System/Include/Qt3DSSyncPrimitive.h
deleted file mode 100644
index 72ec0456..00000000
--- a/src/Runtime/Source/System/Include/Qt3DSSyncPrimitive.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 1993-2009 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#pragma once
-
-//==============================================================================
-// Includes
-//==============================================================================
-#ifdef _MSC_VER
-#pragma warning(push, 2)
-#endif //_MSC_VER
-
-#ifdef _PCPLATFORM
-#include <windows.h>
-#elif _XENONPLATFORM
-#include <process.h> // which one we need??
-#include <xtl.h>
-#endif
-
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif //_MSC_VER
-
-//==============================================================================
-// Namespace
-//==============================================================================
-namespace Q3DStudio {
-
-typedef void *TLockPrimitive;
-
-//==============================================================================
-/**
- * The CSyncPrimitive is a wrapper class to handle syncronization of data
- * between threads.
- */
-class CSyncPrimitive
-{
-
- //==============================================================================
- // Fields
- //==============================================================================
-private:
- TLockPrimitive m_LockHandle;
-
- //==============================================================================
- // Methods
- //==============================================================================
-public:
- CSyncPrimitive();
- ~CSyncPrimitive();
-
-public:
- int BeginSync();
- int EndSync();
-};
-
-//==============================================================================
-/**
- * Wrap the lock and unlocking of a sync primitive in an easy to use stack
- * based class.
- */
-class CSyncGuard
-{
- //==============================================================================
- // Fields
- //==============================================================================
-private:
- CSyncPrimitive &m_Mutex;
-
- //==============================================================================
- // Methods
- //==============================================================================
-private:
- CSyncGuard(const CSyncGuard &other);
- CSyncGuard &operator=(const CSyncGuard &other);
-
-public:
- CSyncGuard(CSyncPrimitive &inMutex)
- : m_Mutex(inMutex)
- {
- m_Mutex.BeginSync();
- }
- ~CSyncGuard() { m_Mutex.EndSync(); }
-};
-
-} // namespace Q3DStudio
-
-//===================================================================
-// The application needs to provide these thread primitive functions
-//===================================================================
-
-void AppCreateLockPrimitive(Q3DStudio::TLockPrimitive *inPrimitive);
-void AppDestroyLockPrimitive(Q3DStudio::TLockPrimitive *inPrimitive);
-void AppBeginSync(Q3DStudio::TLockPrimitive inPrimitive);
-void AppEndSync(Q3DStudio::TLockPrimitive inPrimitive); \ No newline at end of file
diff --git a/src/Runtime/Source/System/Include/Qt3DSThreadManager.h b/src/Runtime/Source/System/Include/Qt3DSThreadManager.h
deleted file mode 100644
index 5dec67df..00000000
--- a/src/Runtime/Source/System/Include/Qt3DSThreadManager.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 1993-2009 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#pragma once
-
-#include "Qt3DSThreadSafeScratchpad.h"
-#include "Qt3DSThreadSafeQueue.h"
-#include "Qt3DSArray.h"
-
-namespace Q3DStudio {
-//==============================================================================
-// Fields specific to the thread manager
-//==============================================================================
-
-// NOTE: The order that these are defined matters (specifically, the relationship
-// between the struct forward declare, struct definition, and function pointer.
-
-// TODO - ah
-// The interaction between these is not that clear... comment stuff!!
-
-struct SThreadResultItem;
-struct SThreadWorkItem;
-
-typedef CThreadSafeQueue<SThreadWorkItem> TThreadWorkQueue;
-typedef CThreadSafeQueue<SThreadResultItem> TThreadResultQueue;
-
-// The function to call when a work item is 'finished'
-typedef void (*TThreadFinishFunction)(void *inUserData, CThreadSafeScratchPad &inScratchPad);
-
-// This encapsulates a 'result'.
-struct SThreadResultItem
-{
- void *m_UserData;
- TThreadFinishFunction m_Function;
-};
-typedef SThreadResultItem (*TThreadWorkFunction)(void *inUserData,
- CThreadSafeScratchPad &inScratchPad);
-
-struct SThreadWorkItem
-{
- UINT32 m_WorkItemNameHash; ///< Used to identify a class of work items we can remove them from
- ///time to time.
- void *m_UserData;
- TThreadWorkFunction m_Function;
-};
-
-typedef void *TThreadID;
-typedef void *(*TThreadSpinFunction)(void *inUserData);
-
-//==============================================================================
-/**
-* The thread manager is the interface to create work on other threads and
-* process the completed results. This is done abstractly through work and
-* result items.
-*/
-class CThreadManager
-{
-
- //==============================================================================
- // Fields
- //==============================================================================
-private:
- CThreadSafeScratchPad m_ScratchPad;
- TThreadWorkQueue m_WorkQueue;
- TThreadResultQueue m_ResultsQueue;
- CArray<TThreadID> m_Threads;
- INT32 m_WorkItems; // running count
- volatile BOOL m_Running;
- BOOL m_Unused[3];
-
- //==============================================================================
- // Methods
- //==============================================================================
-public:
- CThreadManager(INT32 inThreads);
- ~CThreadManager();
-
-public: // Interface
- INT32 Update();
- void Push(const SThreadWorkItem &inItem);
- // Remove all work items of a certain class. This returns
- // an array containing the removed items.
- void Remove(UINT32 inItemNameHash, CArray<SThreadWorkItem> &ioRemovedItems);
-
- CThreadSafeScratchPad &GetScratchPad();
-
-private:
- bool Pop(SThreadResultItem &outItem);
- static void *ThreadSpinFunction(void *inUserData);
- void DoWork();
- void CheckForCompletedWork();
-};
-
-} // namespace Q3DStudio
-
-//===================================================================
-// The application needs to provide these thread primitive functions
-//===================================================================
-
-Q3DStudio::TThreadID AppCreateThread(Q3DStudio::TThreadSpinFunction inFunc, void *inUserData);
-void AppDestroyThread(Q3DStudio::TThreadID inThreadID);
-void AppSleepThread();
diff --git a/src/Runtime/Source/System/Include/Qt3DSThreadSafeQueue.h b/src/Runtime/Source/System/Include/Qt3DSThreadSafeQueue.h
deleted file mode 100644
index 4d6345f8..00000000
--- a/src/Runtime/Source/System/Include/Qt3DSThreadSafeQueue.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 1993-2009 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#pragma once
-
-//==============================================================================
-// Includes
-//==============================================================================
-#include "Qt3DSSyncPrimitive.h"
-#include "Qt3DSArray.h"
-
-//==============================================================================
-// Namespace
-//==============================================================================
-namespace Q3DStudio {
-
-//==============================================================================
-/**
- * Thread safe queue that wraps using a sync primitive when it accesses
- * it's internals.
- */
-template <typename T>
-class CThreadSafeQueue
-{
- //==============================================================================
- // Fields
- //==============================================================================
-private:
- CSyncPrimitive m_Primitive;
- CArray<T> m_QueueData;
-
- //==============================================================================
- // Fields
- //==============================================================================
-private:
- CThreadSafeQueue(const CThreadSafeQueue &other);
- CThreadSafeQueue &operator=(const CThreadSafeQueue &other);
-
-public:
- CThreadSafeQueue() {}
- void Push(const T &inItem);
- bool Pop(T &outItem);
- INT32 GetCount();
-
- //=========================================================================
- // Remove items that correspond to a given predicate.
- // The predicate is a functor that takes a const reference and returns either
- // true or false.
- template <typename TPredFunc>
- void Remove(TPredFunc predicate, CArray<T> &ioOutRemovedItems);
-};
-
-} // namespace Q3DStudio
-
-//==============================================================================
-// Template code
-//==============================================================================
-#include "Qt3DSThreadSafeQueue.inl"
diff --git a/src/Runtime/Source/System/Include/Qt3DSThreadSafeQueue.inl b/src/Runtime/Source/System/Include/Qt3DSThreadSafeQueue.inl
deleted file mode 100644
index 84501916..00000000
--- a/src/Runtime/Source/System/Include/Qt3DSThreadSafeQueue.inl
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2008 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#pragma once
-
-//==============================================================================
-// Namespace
-//==============================================================================
-namespace Q3DStudio {
-
-//==============================================================================
-/**
- * Safely push an object onto the queue
- */
-template <typename T>
-inline void CThreadSafeQueue<T>::Push(const T &inItem)
-{
- CSyncGuard theGuard(m_Primitive);
- m_QueueData.Push(inItem);
-}
-
-//==============================================================================
-/**
-* Safely pop an object off the queue
-*/
-template <typename T>
-inline bool CThreadSafeQueue<T>::Pop(T &outItem)
-{
- CSyncGuard theGuard(m_Primitive);
- if (m_QueueData.GetCount()) {
- outItem = m_QueueData[0];
- m_QueueData.Remove(0);
- return true;
- }
- return false;
-}
-
-//==============================================================================
-/**
- * Get the count queue count
- */
-template <typename T>
-INT32 CThreadSafeQueue<T>::GetCount()
-{
- CSyncGuard theGuard(m_Primitive);
- return m_QueueData.GetCount();
-}
-
-template <typename T>
-template <typename TPredFunc>
-inline void CThreadSafeQueue<T>::Remove(TPredFunc predicate, CArray<T> &ioOutRemovedItems)
-{
- CSyncGuard theGuard(m_Primitive);
- for (INT32 index = m_QueueData.GetCount() - 1; index >= 0; --index) {
- const T &item = m_QueueData[index];
- if (predicate(item)) {
- ioOutRemovedItems.Push(item);
- m_QueueData.Remove(index);
- }
- }
-}
-
-} // namespace Q3DStudio
diff --git a/src/Runtime/Source/System/Include/Qt3DSThreadSafeScratchpad.h b/src/Runtime/Source/System/Include/Qt3DSThreadSafeScratchpad.h
deleted file mode 100644
index 64f414c8..00000000
--- a/src/Runtime/Source/System/Include/Qt3DSThreadSafeScratchpad.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 1993-2009 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#pragma once
-
-//==============================================================================
-// Includes
-//==============================================================================
-#include "Qt3DSSyncPrimitive.h"
-#include "Qt3DSArray.h"
-#include "foundation/Qt3DSLogging.h"
-
-//==============================================================================
-// Namespace
-//==============================================================================
-namespace Q3DStudio {
-
-//==============================================================================
-/**
- * Definition of a scratch pad buffer
- */
-struct SThreadScratchPadBuffer
-{
- INT32 m_Size;
- INT32 m_RequestedSize;
- CHAR *m_Data;
-};
-
-//==============================================================================
-/**
- * This class wraps up a simple thread safe buffer manager class. This
- * has two functions that threaded
- */
-class CThreadSafeScratchPad
-{
- //==============================================================================
- // Private Methods
- //==============================================================================
-private:
- CThreadSafeScratchPad(const CThreadSafeScratchPad &other);
- CThreadSafeScratchPad &operator=(const CThreadSafeScratchPad &other);
-
- //==============================================================================
- // Fields
- //==============================================================================
-private:
- struct SBufferItem
- {
- SThreadScratchPadBuffer m_Buffer;
- BOOL m_InUse;
- BOOL m_Unused[3];
- };
-
- CArray<SBufferItem> m_Buffers;
- CSyncPrimitive m_Primitive;
-
- //==============================================================================
- // Methods
- //==============================================================================
-public:
- CThreadSafeScratchPad() {}
- ~CThreadSafeScratchPad();
-
- // Not a threadsafe call; used for testing purposes.
- INT32 GetBufferCount() const { return (INT32)m_Buffers.GetCount(); }
- SThreadScratchPadBuffer GetBuffer(INT32 inMinSize);
- void ReleaseBuffer(SThreadScratchPadBuffer inBuffer);
-};
-}
-
-#include "Qt3DSThreadSafeScratchpad.inl"
diff --git a/src/Runtime/Source/System/Include/Qt3DSThreadSafeScratchpad.inl b/src/Runtime/Source/System/Include/Qt3DSThreadSafeScratchpad.inl
deleted file mode 100644
index 6b26764a..00000000
--- a/src/Runtime/Source/System/Include/Qt3DSThreadSafeScratchpad.inl
+++ /dev/null
@@ -1,161 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2008 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-namespace Q3DStudio
-{
-
-//==============================================================================
-/**
- * Destructor
- */
-inline CThreadSafeScratchPad::~CThreadSafeScratchPad()
-{
- FOR_ARRAY( SBufferItem, theObject, m_Buffers )
- {
- free( theObject->m_Buffer.m_Data );
- }
- m_Buffers.Clear();
-}
-
-//==============================================================================
-/**
-* Ask the scratch pad that for a to use
-*
-* Possible cases:
-* 1. if there are unused buffers
- 1.a use the buffer that fits, and wastes the least amount of memory
- 1.b if no buffers fit, resize the biggest unused buffer
- 2. if no unused buffers
- 2.a allocate a new buffer
-*/
-inline SThreadScratchPadBuffer CThreadSafeScratchPad::GetBuffer( INT32 inMinSize )
-{
- CSyncGuard theGuard( m_Primitive );
- INT32 theBestIndex = -1;
- UINT32 theBestIndexWasteSize = static_cast<UINT32>( -1 ); // uint32 max
-
- INT32 theLargestUnusedBuffer = -1;
- INT32 theLargestUnusedBufferSize = 0;
-
- SThreadScratchPadBuffer theReturnBuffer = {0,0};
-
- if ( inMinSize < 0 )
- {
- return theReturnBuffer;
- }
-
- INT32 theEnd = m_Buffers.GetCount();
- for ( INT32 theIndex = 0; theIndex < theEnd; ++theIndex )
- {
- SBufferItem& theBufferItem = m_Buffers[theIndex];
-
- // Unused buffers...
- if ( false == theBufferItem.m_InUse )
- {
- // Best fit unused buffer that will fit the requested size
- if ( theBufferItem.m_Buffer.m_Size >= inMinSize && static_cast<UINT32>( theBufferItem.m_Buffer.m_Size - inMinSize ) < theBestIndexWasteSize )
- {
- theBestIndex = theIndex;
- theBestIndexWasteSize = static_cast<UINT32>( theBufferItem.m_Buffer.m_Size - inMinSize);
- }
- // Biggest unused buffer to resize...
- else if ( theBufferItem.m_Buffer.m_Size > theLargestUnusedBufferSize )
- {
- theLargestUnusedBuffer = theIndex;
- theLargestUnusedBufferSize = theBufferItem.m_Buffer.m_Size;
- }
- }
- }
-
-
- // 1.a
- if ( -1 != theBestIndex )
- {
- m_Buffers[theBestIndex].m_InUse = true;
- theReturnBuffer = m_Buffers[theBestIndex].m_Buffer;
- }
- // 1.b
- else if ( -1 != theLargestUnusedBuffer )
- {
- m_Buffers[theLargestUnusedBuffer].m_InUse = true;
- m_Buffers[theLargestUnusedBuffer].m_Buffer.m_Data =
- static_cast<CHAR*>( realloc( m_Buffers[theLargestUnusedBuffer].m_Buffer.m_Data,
- static_cast<size_t>( inMinSize ) )
- );
-
- m_Buffers[theLargestUnusedBuffer].m_Buffer.m_Size = inMinSize;
- theReturnBuffer = m_Buffers[theLargestUnusedBuffer].m_Buffer;
- }
- // 2.a
- else
- {
- // Add a new buffer
- SBufferItem theNewBuffer;
- theNewBuffer.m_InUse = true;
- theNewBuffer.m_Buffer.m_Data = static_cast<CHAR*>( malloc( static_cast<size_t>( inMinSize ) ) );
- theNewBuffer.m_Buffer.m_Size = inMinSize;
- m_Buffers.Push( theNewBuffer );
-
- theReturnBuffer = theNewBuffer.m_Buffer;
- }
- theReturnBuffer.m_RequestedSize = inMinSize;
- return theReturnBuffer;
-}
-
-//==============================================================================
-/**
- * Notify the scratch pad that the buffer is now safe to reuse
- */
-inline void CThreadSafeScratchPad::ReleaseBuffer( SThreadScratchPadBuffer inBuffer )
-{
- CSyncGuard theGuard( m_Primitive );
- if ( inBuffer.m_Data == 0 )
- return;
- INT32 theIndex;
- INT32 theEnd = m_Buffers.GetCount();
- for ( theIndex = 0; theIndex < theEnd; ++theIndex )
- {
- SBufferItem& theBufferItem = m_Buffers[theIndex];
- if ( theBufferItem.m_Buffer.m_Size == inBuffer.m_Size && theBufferItem.m_Buffer.m_Data == inBuffer.m_Data )
- {
- theBufferItem.m_InUse = false;
- inBuffer.m_RequestedSize = 0;
- break;
- }
- }
-
- if ( theIndex == theEnd ) {
- qCCritical(qt3ds::INVALID_OPERATION)
- << "CThreadSafeScratchPad::ReleaseBuffer: attempting to remove "
- << "invalid/corrupt buffer. Buffer size: " << inBuffer.m_Size;
- }
-}
-
-} // namespace Q3DStudio
diff --git a/src/Runtime/Source/System/Source/Qt3DSFileStream.cpp b/src/Runtime/Source/System/Source/Qt3DSFileStream.cpp
index 0a672c1e..202e4ae7 100644
--- a/src/Runtime/Source/System/Source/Qt3DSFileStream.cpp
+++ b/src/Runtime/Source/System/Source/Qt3DSFileStream.cpp
@@ -34,7 +34,9 @@
#include "SystemPrefix.h"
#include "Qt3DSFile.h"
#include "Qt3DSFileStream.h"
-#include "Qt3DSThreadManager.h"
+#include "foundation/Qt3DSLogging.h"
+
+#include <QtCore/qthread.h>
//==============================================================================
// Namespace
@@ -77,7 +79,7 @@ void CFileStream::Open(const CHAR *inFilePath, const CHAR *inMode)
Close();
m_FileStream = CFile::Open()(inFilePath, inMode);
while (m_KeepTrying && !m_FileStream) {
- Q3DStudio_sleepmillisec(10);
+ QThread::msleep(10);
m_FileStream = CFile::Open()(inFilePath, inMode);
}
diff --git a/src/Runtime/Source/System/Source/Qt3DSSyncPrimitive.cpp b/src/Runtime/Source/System/Source/Qt3DSSyncPrimitive.cpp
deleted file mode 100644
index bfc49856..00000000
--- a/src/Runtime/Source/System/Source/Qt3DSSyncPrimitive.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 1993-2009 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//#include "RuntimePrefix.h"
-
-//==============================================================================
-// Includes
-//==============================================================================
-#include "SystemPrefix.h"
-#include "Qt3DSSyncPrimitive.h"
-
-//==============================================================================
-// Namespace
-//==============================================================================
-namespace Q3DStudio {
-
-//==============================================================================
-/**
- * Constructor
- */
-CSyncPrimitive::CSyncPrimitive()
- : m_LockHandle(0)
-{
- AppCreateLockPrimitive(&m_LockHandle);
-}
-
-//==============================================================================
-/**
- * Destructor
- */
-CSyncPrimitive::~CSyncPrimitive()
-{
- AppDestroyLockPrimitive(&m_LockHandle);
-}
-
-//==============================================================================
-/**
- *
- */
-int CSyncPrimitive::BeginSync()
-{
- AppBeginSync(m_LockHandle);
- return 1;
-}
-
-//==============================================================================
-/**
- *
- */
-int CSyncPrimitive::EndSync()
-{
- AppEndSync(m_LockHandle);
- return 1;
-}
-
-} // namespace Q3DStudio
diff --git a/src/Runtime/Source/System/Source/Qt3DSThreadManager.cpp b/src/Runtime/Source/System/Source/Qt3DSThreadManager.cpp
deleted file mode 100644
index b7d30ea8..00000000
--- a/src/Runtime/Source/System/Source/Qt3DSThreadManager.cpp
+++ /dev/null
@@ -1,188 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 1993-2009 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "SystemPrefix.h"
-
-//==============================================================================
-// Includes
-//==============================================================================
-#include "Qt3DSThreadManager.h"
-
-#ifdef _TEGRAPLATFORM
-#include <Winbase.h.>
-
-// This is to try to throttle background threads to not hog all
-// the cpu while doing work.
-// http://msdn.microsoft.com/en-us/library/aa450618.aspx
-static const INT32 s_ThreadPriority = 252;
-#endif
-
-//==============================================================================
-// Namespace
-//==============================================================================
-namespace Q3DStudio {
-
-//==============================================================================
-/**
- * Constructor
- */
-CThreadManager::CThreadManager(INT32 inThreads)
- : m_WorkItems(0)
-{
- Q3DStudio_ASSERT(inThreads > 0);
- m_Running = true;
- for (INT32 theIter = 0; theIter < inThreads; theIter++) {
- m_Threads.Push(AppCreateThread(ThreadSpinFunction, this));
- }
-}
-
-//==============================================================================
-/**
- * Destructor
- */
-CThreadManager::~CThreadManager()
-{
- m_Running = false;
- for (INT32 theIter = 0; theIter < m_Threads.GetCount(); theIter++) {
- AppDestroyThread(m_Threads[theIter]);
- }
- m_Threads.Clear();
-}
-
-//==============================================================================
-/**
-* Check for completed work and return the number of work items left in the queue
-*/
-INT32 CThreadManager::Update()
-{
- CheckForCompletedWork();
- return m_WorkQueue.GetCount();
-}
-
-//==============================================================================
-/**
- * Push work onto the work queue
- */
-void CThreadManager::Push(const SThreadWorkItem &inItem)
-{
- Q3DStudio_ASSERT(inItem.m_UserData && inItem.m_Function);
- m_WorkQueue.Push(inItem);
-}
-
-struct SItemNameHashPredicate
-{
- UINT32 m_ItemNameHash;
- bool operator()(const SThreadWorkItem &inItem)
- {
- return inItem.m_WorkItemNameHash == m_ItemNameHash;
- }
-};
-//==============================================================================
-/**
- * Remove a list of items currently in the work queue.
- */
-void CThreadManager::Remove(UINT32 inItemNameHash, CArray<SThreadWorkItem> &ioRemovedItems)
-{
- SItemNameHashPredicate thePredicate = { inItemNameHash };
- m_WorkQueue.Remove(thePredicate, ioRemovedItems);
-}
-
-//==============================================================================
-/**
- * Return a reference to the scratch pad
- */
-CThreadSafeScratchPad &CThreadManager::GetScratchPad()
-{
- return m_ScratchPad;
-}
-
-//==============================================================================
-/**
-* Pop completed work off the result queue
-*/
-bool CThreadManager::Pop(SThreadResultItem &outItem)
-{
- return m_ResultsQueue.Pop(outItem);
-}
-
-//==============================================================================
-/**
- * The function that created threads call (worker threads)
- */
-void *CThreadManager::ThreadSpinFunction(void *inUserData)
-{
-#ifdef _TEGRAPLATFORM
-// CeSetThreadPriority( GetCurrentThread(), s_ThreadPriority );
-#endif
-
- CThreadManager *theThreadManager = reinterpret_cast<CThreadManager *>(inUserData);
- theThreadManager->DoWork();
-
- return NULL;
-}
-
-//==============================================================================
-/**
-* The function that created threads spin on (worker threads)
-*/
-void CThreadManager::DoWork()
-{
- volatile BOOL theRunning = m_Running;
- while (theRunning) {
- SThreadWorkItem theWorkItem = { 0 };
- while (m_WorkQueue.Pop(theWorkItem)) {
- SThreadResultItem theResultItem =
- theWorkItem.m_Function(theWorkItem.m_UserData, m_ScratchPad);
-
- // For now, always ensure we have a valid result item
- Q3DStudio_ASSERT(theResultItem.m_Function && theResultItem.m_UserData);
-
- if (theResultItem.m_Function && theResultItem.m_UserData)
- m_ResultsQueue.Push(theResultItem);
- }
- // Sleep after every task..?
- AppSleepThread();
-
- theRunning = m_Running;
- }
-}
-
-//==============================================================================
-/**
-* The function that created threads spin on (main thread)
-*/
-void CThreadManager::CheckForCompletedWork()
-{
- SThreadResultItem theResultItem = { 0 };
- while (m_ResultsQueue.Pop(theResultItem)) {
- theResultItem.m_Function(theResultItem.m_UserData, m_ScratchPad);
- }
-}
-}
diff --git a/src/Runtime/Source/Viewer/PerfLog/TCPPerfLogClientStub.h b/src/Runtime/Source/Viewer/PerfLog/TCPPerfLogClientStub.h
index 66e13e73..2b6c0975 100644
--- a/src/Runtime/Source/Viewer/PerfLog/TCPPerfLogClientStub.h
+++ b/src/Runtime/Source/Viewer/PerfLog/TCPPerfLogClientStub.h
@@ -33,7 +33,6 @@
//==============================================================================
// Includes
//==============================================================================
-#include <KD/kd.h>
//==============================================================================
// Extern interfaces
diff --git a/src/Runtime/Source/Viewer/Qt3DSViewerApp.cpp b/src/Runtime/Source/Viewer/Qt3DSViewerApp.cpp
index 4423674a..91647cdf 100644
--- a/src/Runtime/Source/Viewer/Qt3DSViewerApp.cpp
+++ b/src/Runtime/Source/Viewer/Qt3DSViewerApp.cpp
@@ -34,9 +34,6 @@
#include "Qt3DSTegraApplication.h"
#include "Qt3DSViewerApp.h"
#include "Qt3DSTegraInputEngine.h"
-#if !defined(Q_OS_MACOS)
-#include "TCPPerfLogClientStub.h"
-#endif
#include "Qt3DSInputFrame.h" // keyboard mapping
#include "foundation/Qt3DSTime.h"
#include "Qt3DSFNDTimer.h"
@@ -198,30 +195,13 @@ void PerfLogSetStringData(const char *)
{
} // Dummy defination when TCP perf logging isnt used
-//-----------------------------------------------------------------------------
-// KD overwrite
-//-----------------------------------------------------------------------------
-void kdLogMessage(const KDchar *string)
-{
- qCInfo(qt3ds::TRACE_INFO) << string;
-}
-
-void kdHandleAssertion(const KDchar *condition, const KDchar *filename, KDint linenumber)
-{
- qCCritical(qt3ds::TRACE_INFO) << "assertion failed: " << condition
- << " " << filename << " " << linenumber;
-}
-
Q3DStudio::Qt3DSFNDTimer g_GlobalTimeProvider;
-KDust GetTimeUST()
+__int64 GetTimeUST()
{
// this needs to be nano seconds
- // KDust kdTime = static_cast<KDust>( g_gobalTimer.getNanoSeconds() );
Q3DStudio::ITimeProvider &theTimer = g_GlobalTimeProvider;
- KDust kdTime = static_cast<KDust>(theTimer.GetCurrentTimeMicroSeconds() * 1000);
-
- return kdTime;
+ return theTimer.GetCurrentTimeMicroSeconds() * 1000;
}
void initResource() {
@@ -277,22 +257,16 @@ public:
Q3DStudio::IWindowSystem *m_WindowSystem;
IAudioPlayer *m_AudioPlayer;
- QList<KDEvent *> m_pendingEvents;
+ QVector<QMouseEvent *> m_pendingEvents;
QString m_error;
- void queueMouseEvent(int index, int select, int x, int y)
+ void queueMouseEvent(int button, int pressed, int x, int y)
{
- KDEvent *e = new KDEvent;
- e->timestamp = GetTimeUST();
- e->type = KD_EVENT_INPUT_POINTER;
- e->userptr = reinterpret_cast<void*>(KD_NULL);
- KDEventInputPointer *dataPtr = reinterpret_cast<KDEventInputPointer *>(&(e->data));
- dataPtr->index = index;
- dataPtr->select = select;
- dataPtr->x = x;
- dataPtr->y = y;
-
+ QMouseEvent *e = new QMouseEvent(pressed ? QEvent::MouseButtonPress : QEvent::MouseButtonRelease,
+ QPointF(x, y), (Qt::MouseButton)button,
+ (Qt::MouseButtons)button, 0);
+ e->setTimestamp(static_cast<ulong>(GetTimeUST()));
m_pendingEvents.append(e);
}
};
@@ -461,7 +435,7 @@ void Q3DSViewerApp::Render()
{
if (m_Impl.m_tegraApp && m_Impl.m_tegraApp->GetTegraRenderEngine()) {
if (m_Impl.m_appInitSuccessful) {
- for (KDEvent *e : m_Impl.m_pendingEvents) {
+ for (QEvent *e : m_Impl.m_pendingEvents) {
m_Impl.m_tegraApp->HandleMessage(e);
delete e;
}
@@ -549,16 +523,14 @@ QString Q3DSViewerApp::error()
void Q3DSViewerApp::Resize(int width, int height)
{
WindowRect &theWindowRect = static_cast<SWindowSystemImpl *>(m_Impl.m_WindowSystem)->m_Rect;
+ QSize oldSize = QSize(theWindowRect.width, theWindowRect.height);
theWindowRect.width = width;
theWindowRect.height = height;
#if !defined(Q_OS_MACOS)
if (m_Impl.m_appInitSuccessful && m_Impl.m_tegraApp
&& m_Impl.m_tegraApp->GetTegraRenderEngine()) {
- KDEvent event;
- memset(&event, 0, sizeof(KDEvent));
- event.type = KD_EVENT_WINDOWPROPERTY_CHANGE;
- event.data.windowproperty.pname = KD_WINDOWPROPERTY_SIZE;
+ QResizeEvent event = QResizeEvent(QSize(width, height), oldSize);
m_Impl.m_tegraApp->HandleMessage(&event);
}
#endif
diff --git a/src/commonplatform.pri b/src/commonplatform.pri
index 008125b1..ca11f38c 100644
--- a/src/commonplatform.pri
+++ b/src/commonplatform.pri
@@ -14,8 +14,6 @@ DEFINES += \
_TEGRA_NO_LOG_FILE \
EA_COMPILER_HAS_INTTYPES \
EASTL_ALLOCATOR_COPY_ENABLED \
- OPENKODE \
- KD \
UNICODE \
_UNICODE