39#define K_NO_PROJECTSETTINGS
40#define K_NO_NAMESPACE_UPGRADE
41#define K_NO_PYTHON_CODE_GENERATION
47#ifndef FB_KERNEL_WITH_UI
48 #define K_NO_MANIPULATOR
56 #define K_NO_STEERINGWHEEL
60 #define K_NO_IMAGEOPERATOR
65 #define K_NO_CONSTRUCTION_HISTORY
68 #define K_NO_CGFX_SHADER
79 #define K_NO_CGFX_SHADER
87 #ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
88 #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1
90 #ifndef _CRT_NONSTDC_NO_WARNINGS
91 #define _CRT_NONSTDC_NO_WARNINGS 1
93 #ifndef _CRT_SECURE_NO_WARNINGS
94 #define _CRT_SECURE_NO_WARNINGS 1
106#define KPROFILING_CODE_ENABLE
108#if defined(MEMORY_DEBUG) && defined(_DEBUG) && !defined(NDEBUG) && !defined(__CUDACC__) && defined(_MSC_VER) && !defined(_MFC_VER)
113 #define _CRTDBG_MAP_ALLOC
117 #define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )
121 #define MEMORY_DEBUG_ACTIVE 1
127 #if !defined(K_ENABLE_STREAM_FCURVE)
128 #define K_ENABLE_STREAM_FCURVE
135#ifndef K_NO_QUICKTIME
136 #if defined(KARCH_ENV_LINUX) || defined(KARCH_ENV_CYGWIN) || defined(KARCH_ENV_MING32)
137 #define K_NO_QUICKTIME
141#ifndef K_NO_ADVANCEDCONSTRAINTS
142 #if defined(KARCH_ENV_CYGWIN) || defined(KARCH_ENV_MING32)
143 #define K_NO_ADVANCEDCONSTRAINTS
148 #if defined(KARCH_ENV_CYGWIN) || defined(KARCH_ENV_MING32)
155 #define NULL (__null)
160 #define NULL ((void *)0)
165#if !defined( _MAX_PATH ) && defined( KARCH_ENV_UNIX )
166 #define _MAX_PATH 1024
169#define K_MAX_TEXT_LENGTH 1020
171#define K_FORWARD( ClassName ) class ClassName; typedef ClassName *H##ClassName
172#define K_FORWARD_HI( ClassName ) class ClassName; typedef ClassName *H##ClassName; typedef H##ClassName HI##ClassName
174#define K_SAFE_FREE_PTR( p ) if( p ){ free( p ); (p) = NULL; }
175#define K_SAFE_DELETE_PTR( p ) if( p ){ delete (p); (p) = NULL; }
176#define K_SAFE_DELETE_ARRAY_PTR( a ) if( a ){ delete [] (a); (a) = NULL; }
178#define K_SAFE_DESTROY_OBJECT( p ) { if( p ){ (p)->Destroy(); (p) = NULL; } }
180#define K_UNUSED_ARG(x) ((void)(x))
183 #ifndef WIN32_LEAN_AND_MEAN
184 #define WIN32_LEAN_AND_MEAN
199#if defined(KARCH_DEV_MSC)
201 #define stricmp _stricmp
204 #define strnicmp _strnicmp
207 #define getcwd _getcwd
210 #define getpid _getpid
213 #define fileno _fileno
216 #define fdopen _fdopen
224 #define _MSC_EMULATOR
229 #if !defined(_TRUNCATE)
230 #define _TRUNCATE ((size_t)-1)
232 inline int strcpy_s(
char* dst,
size_t ,
const char* src )
237 template <
size_t bufsize>
int strcpy_s(
char (&dst)[bufsize],
const char *src )
239 return strcpy_s( dst,bufsize,src );
242 inline int strncpy_s(
char* dst,
size_t ,
const char* src,
size_t count )
244 strncpy( dst,src,count );
247 template <
size_t bufsize>
int strncpy_s(
char (&dst)[bufsize],
const char *src,
size_t count )
249 return strncpy_s( dst,bufsize,src,count );
252 inline int vsprintf_s(
char *buffer,
size_t ,
const char *format, va_list args )
254 return vsprintf( buffer,format, args );
256 template <
size_t bufsize>
int vsprintf_s(
char (&buffer)[bufsize],
const char *format, va_list args )
258 return vsprintf_s( buffer,bufsize,format, args );
261 inline int sprintf_s(
char *buffer,
size_t bufsize,
const char *format, ... )
264 va_start( Arguments, format);
265 int result = vsprintf_s( buffer,bufsize,format, Arguments );
269 template <
size_t bufsize>
int sprintf_s(
char (&buffer)[bufsize],
const char *format, ... )
272 va_start( Arguments, format);
273 int result = vsprintf_s( buffer,bufsize,format, Arguments );
279 #define sscanf_s sscanf
282 inline int strcat_s(
char *dst,
size_t ,
const char *src )
287 template <
size_t bufsize>
int strcat_s(
char (&dst)[bufsize],
const char *src )
289 return strcat_s( dst,bufsize,src );
293 #define strtok_s( token,sep,context ) strtok( token,sep ); K_UNUSED_ARG(context)
297 #define strncat_s( dst,bufsize,src,len ) strncat( dst,src,len ); K_UNUSED_ARG(bufsize)
301 #define localtime_s( _Tm,_Time ) _Tm = localtime( _Time )
305 #define _strdup strdup
309 #define _stricmp strcasecmp
312 #define strcmpi strcasecmp
315 #define _strcmpi strcasecmp
318 #define stricmp strcasecmp
321 #define strncmpi strncasecmp
324 #define strnicmp strncasecmp
328 #define _atoi64( str ) strtoll( str,NULL,10 )
333#if defined(KARCH_ENV_LINUX)
335 #pragma GCC diagnostic ignored "-Wdelete-non-virtual-dtor"
339#if defined(KARCH_DEV_MSC)
340 #pragma warning(disable : 4097)
341 #pragma warning(disable : 4100)
342 #pragma warning(disable : 4201)
343 #pragma warning(disable : 4244)
344 #pragma warning(disable : 4251)
345 #pragma warning(disable : 4481)
346 #pragma warning(disable : 4514)
347 #pragma warning(disable : 4660)
348 #pragma warning(disable : 4710)
349 #pragma warning(disable : 4711)
350 #pragma warning(disable : 4725)
352 #pragma warning(error : 4002)
353 #pragma warning(error : 4013)
354 #pragma warning(error : 4018)
356 #pragma warning(error : 4101)
357 #pragma warning(error : 4130)
358 #pragma warning(error : 4189)
359 #pragma warning(error : 4238)
360 #pragma warning(error : 4265)
361 #pragma warning(error : 4289)
362 #pragma warning(error : 4311)
363 #pragma warning(error : 4373)
364 #pragma warning(error : 4407)
365 #pragma warning(error : 4431)
366 #pragma warning(error : 4510)
367 #pragma warning(error : 4551)
368 #pragma warning(error : 4553)
369 #pragma warning(error : 4700)
370 #pragma warning(error : 4701)
371 #pragma warning(error : 4946)
372 #pragma warning(error : 4996)
374 #pragma warning(error : 5245)
389#if(PRODUCT_VERSION>2025)
390 #error "Update the deprecated versions and removed deprecated code"
392#if(PRODUCT_VERSION<=2025)
393 #define K_DEPRECATED_2022 [[deprecated]]
395#if(PRODUCT_VERSION<=2026)
396 #define K_DEPRECATED_2023 [[deprecated]]
398#if(PRODUCT_VERSION<=2027)
399 #define K_DEPRECATED_2024 [[deprecated]]
401#if(PRODUCT_VERSION<=2028)
402 #define K_DEPRECATED_2025 [[deprecated]]