40 #define K_KERNEL_VERSION 18000
43 #define K_NO_PROJECTSETTINGS
46 #if defined(FB_KERNEL)
47 #if defined(K_QUICKTIME_PLUGIN)
52 #ifndef FB_KERNEL_WITH_UI
53 #define K_CONFIG_MEMORY
54 #define K_NO_MANIPULATOR
62 #define K_NO_STEERINGWHEEL
66 #define K_NO_IMAGEOPERATOR
71 #define K_NO_CONSTRUCTION_HISTORY
74 #define K_NO_CGFX_SHADER
83 #if (_MSC_VER >= 1400) // The Visual C++ 2005 compiler version is 1400
84 #ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
85 #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1
87 #ifndef _CRT_NONSTDC_NO_WARNINGS
88 #define _CRT_NONSTDC_NO_WARNINGS 1
90 #ifndef _CRT_SECURE_NO_WARNINGS
91 #define _CRT_SECURE_NO_WARNINGS 1
93 #ifndef _CRT_SECURE_NO_DEPRECATE
94 #define _CRT_SECURE_NO_DEPRECATE 1
104 #define KPROFILING_CODE_ENABLE
106 #if defined(_DEBUG) && !defined(NDEBUG) && !defined(__CUDACC__)
107 #if defined(_MSC_VER) && !defined(_MFC_VER)
110 #define MEMORY_DEBUG_ACTIVE 1
111 #define _CRTDBG_MAP_ALLOC 1
125 #define KaydaraNew new( _NORMAL_BLOCK, __FILE__, __LINE__)
127 #define new KaydaraNew
136 #if !defined(K_ENABLE_STREAM_FCURVE)
137 #define K_ENABLE_STREAM_FCURVE
141 #include <karch/arch.h>
142 #include <karch/types.h>
144 #ifndef K_NO_QUICKTIME
145 #if defined(KARCH_ENV_LINUX) || defined(KARCH_ENV_CYGWIN) || defined(KARCH_ENV_MING32) || (defined(KARCH_ENV_MACOSX) && defined(KARCH_ARCH_X64))
146 #define K_NO_QUICKTIME // No QuickTime implementions for those platforms
150 #ifndef K_NO_ADVANCEDCONSTRAINTS
151 #if defined(KARCH_ENV_CYGWIN) || defined(KARCH_ENV_MING32)
152 #define K_NO_ADVANCEDCONSTRAINTS // No advance constraints
157 #if defined(KARCH_ENV_CYGWIN) || defined(KARCH_ENV_MING32)
164 #define NULL (__null)
169 #define NULL ((void *)0)
174 #if !defined( _MAX_PATH ) && defined( KARCH_ENV_UNIX )
175 #define _MAX_PATH 1024
178 #define K_MAX_TEXT_LENGTH 1020 // Max text length, to be used when declaring fixed width char ptrs directly
180 #define K_FORWARD( ClassName ) class ClassName; typedef ClassName *H##ClassName
181 #define K_FORWARD_HI( ClassName ) class ClassName; typedef ClassName *H##ClassName; typedef H##ClassName HI##ClassName
183 #define K_SAFE_FREE_PTR( p ) if( p ){ free( p ); (p) = NULL; }
184 #define K_SAFE_DELETE_PTR( p ) if( p ){ delete (p); (p) = NULL; }
185 #define K_SAFE_DELETE_ARRAY_PTR( a ) if( a ){ delete [] (a); (a) = NULL; }
187 #define K_SAFE_DESTROY_OBJECT( p ) { if( p ){ (p)->Destroy(); (p) = NULL; } }
191 #define snprintf _snprintf // for stdio.h platform compatibility
192 #ifndef WIN32_LEAN_AND_MEAN
193 #define WIN32_LEAN_AND_MEAN // Defined to speed up compilation
204 #if defined(KARCH_DEV_MSC)
205 #if (_MSC_VER >= 1400) // The Visual C++ 2005 compiler version is 1400
210 #define stricmp _stricmp
213 #define strnicmp _strnicmp
219 #define getcwd _getcwd
222 #define getpid _getpid
225 #define fileno _fileno
228 #define fdopen _fdopen
232 #define _MSC_EMULATOR
234 #if (GCC_VERSION <= 40700) || !defined(__GXX_EXPERIMENTAL_CXX0X__) // override is supported in GCC 4.7 and higher
235 #define override // Indicates that a method must be an override of a base-class version
238 #define sealed // Prevents classes from being used as base classes
239 #define abstract =0 // Indicates functions or classes are abstract
241 #if !defined(_TRUNCATE)
242 #define _TRUNCATE ((size_t)-1)
249 template <
size_t bufsize>
int strcpy_s(
char (&dst)[bufsize],
const char *
src )
256 strncpy( dst,src,count );
261 return strncpy_s( dst,bufsize,src,count );
266 return vsprintf( buffer,format, args );
276 va_start( Arguments, format);
284 va_start( Arguments, format);
295 template <
size_t bufsize>
int strcat_s(
char (&dst)[bufsize],
const char *
src )
301 #define strtok_s( token,sep,context ) strtok( token,sep )
305 #define strncat_s( dst,bufsize,src,len ) strncat( dst,src,len )
309 #define localtime_s( _Tm,_Time ) _Tm = localtime( _Time )
313 #define _stricmp strcasecmp
316 #define strcmpi strcasecmp
319 #define _strcmpi strcasecmp
322 #define stricmp strcasecmp
325 #define strncmpi strncasecmp
328 #define strnicmp strncasecmp
332 #define _atoi64( str ) strtoll( str,NULL,10 )
336 #define _isnan( x ) isnan( x )
339 inline char*
_itoa(
int pValue,
char* pString,
int pRadix)
342 if (pString) sprintf(pString,
"%d", pValue);
351 #if defined(KARCH_ENV_LINUX)
355 #if defined(KARCH_ENV_MACOSX)
360 #if defined(KARCH_DEV_MSC) && !defined(KARCH_DEV_INTEL)
361 #pragma warning(disable : 4097) // warning C4097: typedef-name 'ClassType' used as synonym for class-name 'KTextTag'
362 #pragma warning(disable : 4100) // warning C4100: '?' : unreferenced formal parameter
363 #pragma warning(disable : 4201) // nonstandard extension used : nameless struct/union (Level 4) portability
364 #pragma warning(disable : 4244) // conversion from 'const double' to 'float', possible loss of data
365 #pragma warning(disable : 4481) // warning C4481: nonstandard extension used: override specifier 'override'
366 #pragma warning(disable : 4514) // unreferenced inline function has been removed (Level 4) optimizer
367 #pragma warning(disable : 4660) // template-class specialization 'identifier' is already instantiated (Level 2) compiler
368 #pragma warning(disable : 4710) // function (X) not expanded ??? may be good to know
369 #pragma warning(disable : 4711) // function (X) selected for automatic inline expansion
370 #pragma warning(disable : 4725) // instruction may be inaccurate on some Pentiums
371 #pragma warning(disable : 4251) // needs to have dll-interface to be used by clients of class
373 #pragma warning(error : 4002) // too many actual parameters for macro 'identifier'
374 #pragma warning(error : 4130) // warning C4130: '==' : logical operation on address of string constant
375 #pragma warning(error : 4238) // warning C4238: nonstandard extension used : class rvalue used as lvalue
376 #pragma warning(error : 4265) // warning C4265: 'class': class has virtual functions, but destructor is not virtual
377 #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
378 #pragma warning(error : 4311) // warning C4311: 'type cast' : pointer truncation from 'x *' to 'y'
379 #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
380 #pragma warning(error : 4431) // warning C4431: missing type specifier - int assumed. Note: C no longer supports default-int
381 #pragma warning(error : 4510) // warning C4510: 'class' : default constructor could not be generated
382 #pragma warning(error : 4551) // warning C4551: function call missing argument list
383 #pragma warning(error : 4553) // warning C4553: '==' : operator has no effect; did you intend '='?
384 #pragma warning(error : 4700) // warning C4700: (level 1 and 4) local variable 'name' used without having been initialized
385 #pragma warning(error : 4701) // warning C4700: (level 4) local variable 'name' may be used without having been initialized
386 #pragma warning(error : 4407) // warning C4407: cast between different pointer to member representations, compiler may generate incorrect code
387 #pragma warning(error : 4946) // warning C4946: reinterpret_cast used between related classes: 'class1' and 'class2'
388 #pragma warning(error : 4996) // warning C4996: 'function': was declared deprecated
391 #define K_LOCAL_CLASS
399 #if defined(KARCH_DEV_GNUC) // GNU compiler
400 #define K_DEPRECATED_2014 __attribute__((deprecated))
401 #define K_DEPRECATED_2015 __attribute__((deprecated))
402 #define K_DEPRECATED_2016 __attribute__((deprecated))
403 #define K_DEPRECATED_2017 __attribute__((deprecated))
404 #define K_DEPRECATED_2018 __attribute__((deprecated))
405 #elif defined(KARCH_DEV_MSC) || defined(KARCH_DEV_INTEL) // Microsoft or Intel compiler
406 #define K_DEPRECATED_2014 __declspec(deprecated)
407 #define K_DEPRECATED_2015 __declspec(deprecated)
408 #define K_DEPRECATED_2016 __declspec(deprecated)
409 #define K_DEPRECATED_2017 __declspec(deprecated)
410 #define K_DEPRECATED_2018 __declspec(deprecated)
411 #else // Unknown compiler
412 #define K_DEPRECATED_2014
413 #define K_DEPRECATED_2015
414 #define K_DEPRECATED_2016
415 #define K_DEPRECATED_2017
416 #define K_DEPRECATED_2018
419 #endif // _KAYDARA_H_
int strncpy_s(char *dst, size_t bufsize, const char *src, size_t count)
int vsprintf_s(char *buffer, size_t bufsize, const char *format, va_list args)
int strcat_s(char *dst, size_t bufsize, const char *src)
int sprintf_s(char *buffer, size_t bufsize, const char *format,...)
int strcpy_s(char *dst, size_t bufsize, const char *src)
char * _itoa(int pValue, char *pString, int pRadix)