40 #define K_KERNEL_VERSION 19000
43 #define K_NO_PROJECTSETTINGS
44 #define K_NO_NAMESPACE_UPGRADE // Support for NamespaceUpgradeToFileReference and NamespaceDowngradeFromFileReference
45 #define K_NO_PYTHON_CODE_GENERATION // Python code generator
46 #define K_NO_LIVE // No video input/output support, no fullscreen, Live camera switcher ...
49 #if defined(FB_KERNEL)
51 #ifndef FB_KERNEL_WITH_UI
52 #define K_CONFIG_MEMORY
53 #define K_NO_MANIPULATOR
61 #define K_NO_STEERINGWHEEL
65 #define K_NO_IMAGEOPERATOR
70 #define K_NO_CONSTRUCTION_HISTORY
73 #define K_NO_CGFX_SHADER
84 #define K_NO_CGFX_SHADER
91 #if (_MSC_VER >= 1400) // The Visual C++ 2005 compiler version is 1400
92 #ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
93 #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1
95 #ifndef _CRT_NONSTDC_NO_WARNINGS
96 #define _CRT_NONSTDC_NO_WARNINGS 1
98 #ifndef _CRT_SECURE_NO_WARNINGS
99 #define _CRT_SECURE_NO_WARNINGS 1
101 #ifndef _CRT_SECURE_NO_DEPRECATE
102 #define _CRT_SECURE_NO_DEPRECATE 1
112 #define KPROFILING_CODE_ENABLE
114 #if defined(_DEBUG) && !defined(NDEBUG) && !defined(__CUDACC__)
115 #if defined(_MSC_VER) && !defined(_MFC_VER)
118 #define MEMORY_DEBUG_ACTIVE 1
119 #define _CRTDBG_MAP_ALLOC 1
135 #define KaydaraNew new( _NORMAL_BLOCK, __FILE__, __LINE__)
137 #define new KaydaraNew
146 #if !defined(K_ENABLE_STREAM_FCURVE)
147 #define K_ENABLE_STREAM_FCURVE
151 #include <karch/arch.h>
152 #include <karch/types.h>
154 #ifndef K_NO_QUICKTIME
155 #if defined(KARCH_ENV_LINUX) || defined(KARCH_ENV_CYGWIN) || defined(KARCH_ENV_MING32) || (defined(KARCH_ENV_MACOSX) && defined(KARCH_ARCH_X64))
156 #define K_NO_QUICKTIME // No QuickTime implementions for those platforms
160 #ifndef K_NO_ADVANCEDCONSTRAINTS
161 #if defined(KARCH_ENV_CYGWIN) || defined(KARCH_ENV_MING32)
162 #define K_NO_ADVANCEDCONSTRAINTS // No advance constraints
167 #if defined(KARCH_ENV_CYGWIN) || defined(KARCH_ENV_MING32)
174 #define NULL (__null)
179 #define NULL ((void *)0)
184 #if !defined( _MAX_PATH ) && defined( KARCH_ENV_UNIX )
185 #define _MAX_PATH 1024
188 #define K_MAX_TEXT_LENGTH 1020 // Max text length, to be used when declaring fixed width char ptrs directly
190 #define K_FORWARD( ClassName ) class ClassName; typedef ClassName *H##ClassName
191 #define K_FORWARD_HI( ClassName ) class ClassName; typedef ClassName *H##ClassName; typedef H##ClassName HI##ClassName
193 #define K_SAFE_FREE_PTR( p ) if( p ){ free( p ); (p) = NULL; }
194 #define K_SAFE_DELETE_PTR( p ) if( p ){ delete (p); (p) = NULL; }
195 #define K_SAFE_DELETE_ARRAY_PTR( a ) if( a ){ delete [] (a); (a) = NULL; }
197 #define K_SAFE_DESTROY_OBJECT( p ) { if( p ){ (p)->Destroy(); (p) = NULL; } }
201 #if _MSC_VER < 1900 // < VS2015
202 #define snprintf _snprintf // for stdio.h platform compatibility
204 #ifndef WIN32_LEAN_AND_MEAN
205 #define WIN32_LEAN_AND_MEAN // Defined to speed up compilation
216 #if defined(KARCH_DEV_MSC)
217 #if (_MSC_VER >= 1400) // The Visual C++ 2005 compiler version is 1400
222 #define stricmp _stricmp
225 #define strnicmp _strnicmp
231 #define getcwd _getcwd
234 #define getpid _getpid
237 #define fileno _fileno
240 #define fdopen _fdopen
244 #define _MSC_EMULATOR
246 #define sealed // Prevents classes from being used as base classes
247 #define abstract =0 // Indicates functions or classes are abstract
249 #if !defined(_TRUNCATE)
250 #define _TRUNCATE ((size_t)-1)
257 template <
size_t bufsize>
int strcpy_s(
char (&dst)[bufsize],
const char *
src )
264 strncpy( dst,src,count );
269 return strncpy_s( dst,bufsize,src,count );
274 return vsprintf( buffer,format, args );
284 va_start( Arguments, format);
292 va_start( Arguments, format);
303 template <
size_t bufsize>
int strcat_s(
char (&dst)[bufsize],
const char *
src )
309 #define strtok_s( token,sep,context ) strtok( token,sep )
313 #define strncat_s( dst,bufsize,src,len ) strncat( dst,src,len )
317 #define localtime_s( _Tm,_Time ) _Tm = localtime( _Time )
321 #define _stricmp strcasecmp
324 #define strcmpi strcasecmp
327 #define _strcmpi strcasecmp
330 #define stricmp strcasecmp
333 #define strncmpi strncasecmp
336 #define strnicmp strncasecmp
340 #define _atoi64( str ) strtoll( str,NULL,10 )
346 if (pString) sprintf(pString,
"%d", pValue);
355 #if defined(KARCH_ENV_LINUX)
357 #pragma GCC diagnostic ignored "-Wdelete-non-virtual-dtor"
360 #if defined(KARCH_ENV_MACOSX)
365 #if defined(KARCH_DEV_MSC) && !defined(KARCH_DEV_INTEL)
366 #pragma warning(disable : 4097) // warning C4097: typedef-name 'ClassType' used as synonym for class-name 'KTextTag'
367 #pragma warning(disable : 4100) // warning C4100: '?' : unreferenced formal parameter
368 #pragma warning(disable : 4201) // nonstandard extension used : nameless struct/union (Level 4) portability
369 #pragma warning(disable : 4244) // conversion from 'const double' to 'float', possible loss of data
370 #pragma warning(disable : 4251) // needs to have dll-interface to be used by clients of class
371 #pragma warning(disable : 4481) // warning C4481: nonstandard extension used: override specifier 'override'
372 #pragma warning(disable : 4514) // unreferenced inline function has been removed (Level 4) optimizer
373 #pragma warning(disable : 4660) // template-class specialization 'identifier' is already instantiated (Level 2) compiler
374 #pragma warning(disable : 4710) // function (X) not expanded ??? may be good to know
375 #pragma warning(disable : 4711) // function (X) selected for automatic inline expansion
376 #pragma warning(disable : 4725) // instruction may be inaccurate on some Pentiums
378 #pragma warning(error : 4002) // too many actual parameters for macro 'identifier'
379 #pragma warning(error : 4018) // warning C4018: '>': signed/unsigned mismatch
380 #pragma warning(error : 4130) // warning C4130: '==' : logical operation on address of string constant
381 #pragma warning(error : 4189) // warning C4189: local variable is initialized but not referenced
382 #pragma warning(error : 4238) // warning C4238: nonstandard extension used : class rvalue used as lvalue
383 #pragma warning(error : 4265) // warning C4265: 'class': class has virtual functions, but destructor is not virtual
384 #pragma warning(error : 4289) // warning C4289: nonstandard extension used : 'var' : loop control variable declared in the for-loop is used outside the for-loop scope
385 #pragma warning(error : 4311) // warning C4311: 'type cast' : pointer truncation from 'x *' to 'y'
386 #pragma warning(error : 4373) // warning C4373: '%$S': virtual function overrides '%$pS', previous versions of the compiler did not override when parameters only differed by const/volatile qualifiers
387 #pragma warning(error : 4407) // warning C4407: cast between different pointer to member representations, compiler may generate incorrect code
388 #pragma warning(error : 4431) // warning C4431: missing type specifier - int assumed. Note: C no longer supports default-int
389 #pragma warning(error : 4510) // warning C4510: 'class' : default constructor could not be generated
390 #pragma warning(error : 4551) // warning C4551: function call missing argument list
391 #pragma warning(error : 4553) // warning C4553: '==' : operator has no effect; did you intend '='?
392 #pragma warning(error : 4700) // warning C4700: (level 1 and 4) local variable 'name' used without having been initialized
393 #pragma warning(error : 4701) // warning C4701: (level 4) local variable 'name' may be used without having been initialized
394 #pragma warning(error : 4946) // warning C4946: reinterpret_cast used between related classes: 'class1' and 'class2'
395 #pragma warning(error : 4996) // warning C4996: 'function': was declared deprecated
398 #define K_LOCAL_CLASS
406 #if defined(KARCH_DEV_GNUC) // GNU compiler
407 #define K_DEPRECATED_2016 __attribute__((deprecated))
408 #define K_DEPRECATED_2017 __attribute__((deprecated))
409 #define K_DEPRECATED_2018 __attribute__((deprecated))
410 #define K_DEPRECATED_2019 __attribute__((deprecated))
411 #elif defined(KARCH_DEV_MSC) || defined(KARCH_DEV_INTEL) // Microsoft or Intel compiler
412 #define K_DEPRECATED_2016 __declspec(deprecated)
413 #define K_DEPRECATED_2017 __declspec(deprecated)
414 #define K_DEPRECATED_2018 __declspec(deprecated)
415 #define K_DEPRECATED_2019 __declspec(deprecated)
416 #else // Unknown compiler
417 #define K_DEPRECATED_2016
418 #define K_DEPRECATED_2017
419 #define K_DEPRECATED_2018
420 #define K_DEPRECATED_2019
423 #endif // _KAYDARA_H_
int strncpy_s(char *dst, size_t, const char *src, size_t count)
int strcat_s(char *dst, size_t, const char *src)
int vsprintf_s(char *buffer, size_t, const char *format, va_list args)
int strcpy_s(char *dst, size_t, const char *src)
int sprintf_s(char *buffer, size_t bufsize, const char *format,...)
char * _itoa(int pValue, char *pString, int pRadix)