diff options
author | Määttä Antti <antti.maatta@qt.io> | 2017-10-30 09:49:41 +0200 |
---|---|---|
committer | Antti Määttä <antti.maatta@qt.io> | 2017-10-31 13:27:10 +0000 |
commit | 068784ead581f690c3677e29971b0e35489c5bdc (patch) | |
tree | 9debbffb147488059dfc3afc22a40ccb80c80188 /src/3rdparty | |
parent | e5c9fd87536e74146d82a494c15af865b9216660 (diff) |
Remove OpenKODE
Also remove unused functionality.
Task-number: QT3DS-14
Change-Id: I989dd321e0a885cc655a48ab22844718614caffa
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/3rdparty')
28 files changed, 0 insertions, 8738 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’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’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’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’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 “dotted quad” 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’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’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’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’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’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 “dotted quad” 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’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’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’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’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’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 “dotted quad” 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’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’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’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’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’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 “dotted quad” 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’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’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’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’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’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 “dotted quad” 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’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’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’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’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’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 “dotted quad” 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’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; -} |