CFx SDK Documentation
2020SP3
|
Go to the documentation of this file.
27 #ifndef _OD_PLATFORM_H_
28 #define _OD_PLATFORM_H_
34 #define odmin(X,Y) ((X) < (Y) ? (X) : (Y))
35 #define odmax(X,Y) ((X) > (Y) ? (X) : (Y))
38 #if defined(ODA_WINDOWS)
41 #define Odisnan ::_isnan
42 #define Odfinite ::_finite
43 #ifndef OD_USE_EXTENDED_FUNCTIONS
44 #define GETSS(s,n) ::gets(s)
45 #define OdWprintf wprintf
46 #define OdPrintf printf
48 #define GETSS(s,n) ::gets_s(s,n)
49 #define OdWprintf _wprintf_p
50 #define OdPrintf _printf_p
53 #ifdef ODA_WINDOWS_GCC
57 #if defined(_MSC_VER) && (_MSC_VER < 1400)
59 #define GET_X_LPARAM(lParam) ((int)(short)LOWORD(lParam))
62 #define GET_Y_LPARAM(lParam) ((int)(short)HIWORD(lParam))
69 #define GETSS(s, n) gets(s)
72 #define MAX_PATH PATH_MAX
75 #define OdWprintf wprintf
76 #define OdPrintf printf
78 #if defined(__APPLE__) || defined(__GNUC__) && ( __GNUC__>=5 || __GNUC__==4 && __GNUC_MINOR__>=9 )
80 #define Odisnan std::isnan
81 #define Odfinite std::isfinite
85 #define Odfinite finite
97 #include "../../ThirdParty/wchar/stdlib_.h"
98 #include "../../ThirdParty/wchar/wchar_.h"
99 #define Od_atof Citrus::atof
100 #define Od_abs Citrus::abs
101 #define Od_labs Citrus::labs
102 #define Od_llabs Citrus::llabs
103 #define Od_srand Citrus::srand
104 #define Od_rand Citrus::rand
105 #define Od_wcstombs Citrus::wcstombs
106 #define Od_wcscpy Citrus::wcscpy
107 #define Od_wcscmp Citrus::wcscmp
108 #define Od_wcscat Citrus::wcscat
109 #define Od_wcschr Citrus::wcschr
110 #define Od_wcscpy Citrus::wcscpy
111 #define Od_wcslen Citrus::wcslen
112 #define Od_wcsncpy Citrus::wcsncpy
115 #if defined(_MSC_VER) && (_MSC_VER < 1600)
122 #if defined(__BCPLUSPLUS__) || defined(__BORLANDC__) || defined(__sun)
125 #if OD_SIZEOF_LONG == 4
126 inline int Od_abs(
int val) {
return std::abs(val); }
128 inline double Od_abs(
double val) {
return std::fabs(val); }
130 #define Od_abs std::abs
134 #define Od_labs std::labs
135 #define Od_llabs std::llabs
136 #define Od_srand srand
138 #define Od_wcstombs wcstombs
139 #define Od_wcscpy wcscpy
140 #define Od_wcscmp wcscmp
141 #define Od_wcscat wcscat
142 #define Od_wcschr wcschr
143 #define Od_wcscpy wcscpy
144 #define Od_wcslen wcslen
145 #define Od_wcsncpy wcsncpy
149 #define odStrChr(str, ch) strchr(str, ch)
153 #define odWStrChr(str, ch) Od_wcschr(str, ch)
159 extern int Od_stricmp(
const OdChar*str,
const OdChar* str2);
160 extern int Od_strnicmp(
const OdChar *s1,
const OdChar *s2,
int len);
164 extern int Od_strnicmpA(
const char *s1,
const char *s2,
int len);
165 extern int Od_stricmpA(
const char* str,
const char* str2);
166 extern char* Od_struprA(
char* str);
167 extern char* Od_strlwrA(
char* str);
168 extern char* Od_strrevA(
char* str);
170 #if !defined(_WIN32_WCE)
171 #define odStrUpr(str) Od_strupr(str)
172 #define odStrLwr(str) Od_strlwr(str)
173 #define odStrRev(str) Od_strrev(str)
175 #if !defined(__linux__) && !defined(_WIN32_WCE)
177 #define odStrICmp(str, str2) Od_stricmp(str, str2)
178 #define odStrnICmp(str, str2, n) Od_strnicmp(str, str2, n)
179 #define odStrnICmpA Od_strnicmpA
180 #define odStrICmpA(str, str2) Od_stricmpA(str, str2)
181 #define odStrUprA(str) Od_struprA(str)
182 #define odStrLwrA(str) Od_strlwrA(str)
183 #define odStrRevA(str) Od_strrevA(str)
185 #endif // !defined(__linux__)
191 #if defined(ANDROID_WCHAR)
193 #if !defined(OD_WSTRING_DEFINED) && (!defined(_STRINGFWD_H) || !defined(_GLIBCXX_USE_WCHAR_T))
194 #define OD_WSTRING_DEFINED
195 #include <bits/basic_string.h>
199 typedef basic_string<wchar_t> wstring;
200 typedef basic_istringstream<wchar_t> wistringstream;
201 typedef basic_stringstream<wchar_t> wstringstream;
204 #include "../../ThirdParty/wchar/wchar_.h"
206 #define odStrLen(str) Citrus::wcslen(str)
207 #define odStrCmp(str, str2) Citrus::wcscmp(str, str2)
210 return Citrus::wcstol((
const wchar_t*)str, 0, 10);
212 #define odStrToInt(str) Od_strtoint(str)
214 #pragma MARKMESSAGE("DNA: odStrToInt() looses highest bit of UInt32: FFFFFFFF -> 7FFFFFFF (at least on WIN64)")
215 #define odStrToUInt(str) (unsigned long)(Od_strtoint(str))
225 inline double Od_wtof(
const wchar_t* str)
228 return Citrus::wcstold(str, &endptr);
230 #define odStrToF Od_wtof
231 #define odStrStr Citrus::wcsstr
233 #define wcsicmp Citrus::wcscasecmp
234 #define wcsnicmp Citrus::wcsncasecmp
240 #define odStrLen(str) wcslen(str)
244 #define odStrLenA(str) strlen(str)
248 #define odStrCmp(str, str2) wcscmp(str, str2)
252 #define odStrCmpA(str, str2) strcmp(str, str2)
255 #if defined(ODA_WINDOWS)
259 #if defined( ANDROID ) || defined ( _WIN32_WCE ) || (defined (_MSC_VER) && _MSC_VER < 1400) || defined(_WINRT)
263 #define OFFSETTYPE(offset) (long)offset
265 #elif defined(__APPLE__) || defined( __hpux )
269 #define OFFSETTYPE(offset) offset
271 #define FSEEK fseeko64
272 #define FTELL ftello64
273 #define FOPEN fopen64
274 #define OFFSETTYPE(offset) offset
277 #if defined(__linux__) || defined(EMCC)
280 #if !defined(EMCC) && !defined(__clang__)
281 #include <bits/stl_algobase.h>
286 #define wcsicmp wcscasecmp
290 #define wcsnicmp wcsncasecmp
294 inline wchar_t* wcsupr(
wchar_t* s)
298 for(
wchar_t* p = s; *p; ++p)
305 inline wchar_t* wcslwr(
wchar_t* s)
309 for(
wchar_t* p = s; *p; ++p)
315 inline wchar_t* wcsrev(
wchar_t* s)
319 wchar_t* e = s + wcslen(s) - 1;
334 #define stricmp Od_stricmpA
338 #define strupr Od_struprA
342 #define strlwr Od_strlwrA
346 #define strrev Od_strrevA
350 #define strnicmp Od_strnicmpA
353 #endif //OD_STRING_FNS
355 #endif //defined(__linux__) || defined(EMCC)
361 inline int Od_stricmpW(
const OdChar* str,
const OdChar* str2){
return CompareStringEx( LOCALE_NAME_INVARIANT, NORM_IGNORECASE, (
const wchar_t*)str, -1, (
const wchar_t*)str2, -1,
NULL,
NULL, 0) - 2; }
362 #elif defined(_WIN32) ||defined(_WIN64) || defined(_WIN32_WCE)
363 inline int Od_stricmpW(
const OdChar* str,
const OdChar* str2){
return CompareStringW( LOCALE_NEUTRAL, NORM_IGNORECASE, (
const wchar_t*)str, -1, (
const wchar_t*)str2, -1) - 2; }
364 #elif (defined ( __BORLANDC__ ) && (__BORLANDC__) >= 0x530) ||(defined(_MSC_VER) && _MSC_VER > 1200)
369 #define odStrICmp Od_stricmpW
373 #if defined(_WINRT) || defined(_WIN32_WCE)
374 #define odStrICmpA(str, str2) _stricmp(str, str2)
376 #define odStrICmpA(str, str2) stricmp(str, str2)
383 inline int Od_stricmpW(
const OdChar* str,
const OdChar* str2,
size_t n){
return CompareStringEx( LOCALE_NAME_INVARIANT, NORM_IGNORECASE, (
const wchar_t*)str, (
int)
odmin(wcslen((
const wchar_t*)str), n), (
const wchar_t*)str2, (
int)
odmin(wcslen((
const wchar_t*)str), n),
NULL,
NULL, 0) - 2; }
384 #elif defined(_WIN32) ||defined(_WIN64) || defined(_WIN32_WCE)
385 inline int Od_stricmpW(
const OdChar* str,
const OdChar* str2,
size_t n){
return CompareStringW( LOCALE_NEUTRAL, NORM_IGNORECASE, (
const wchar_t*)str, (
int)
odmin(wcslen((
const wchar_t*)str), n), (
const wchar_t*)str2, (
int)
odmin(wcslen((
const wchar_t*)str2), n))-2;}
386 #elif (defined ( __BORLANDC__ ) && (__BORLANDC__) >= 0x530) || (defined(_MSC_VER) && _MSC_VER > 1200)
391 #define odStrnICmp Od_stricmpW
395 #if defined(_WIN32_WCE)
396 #define odStrnICmpA(str, str2, n) _strnicmp(str, str2, n)
398 #define odStrnICmpA(str, str2, n) strnicmp(str, str2, n)
404 #if defined(ODA_WINDOWS) && !defined(_WINRT)
406 #elif defined(_WINRT)
411 #define odStrUpr(str) Od_struprW(str)
415 #if defined(_WIN32_WCE)
416 #define odStrUprA(str) _strupr(str)
418 #define odStrUprA(str) strupr(str)
423 #if defined(ODA_WINDOWS) && !defined(_WINRT) && !defined(_WIN32_WCE)
425 #elif defined (_WINRT) || defined(_WIN32_WCE)
430 #define odStrLwr(str) Od_strlwrW(str)
434 #if defined(_WIN32_WCE)
435 #define odStrLwrA(str) _strlwr(str)
437 #define odStrLwrA(str) strlwr(str)
442 #if defined(ODA_WINDOWS)
447 #define odStrRev(str) Od_strrevW(str)
451 #if defined(_WIN32_WCE)
452 #define odStrRevA(str) _strrev(str)
454 #define odStrRevA(str) strrev(str)
460 #define odStrToInt(str) Od_strtoint(str)
465 #define odStrToUInt(str) Od_strtouint(str)
469 #define Od_isspace(ch) isspace(ch)
473 #if defined(_MSC_VER) && (_MSC_VER <= 1310)
474 #define Od_iswspace(ch) iswctype(ch,_SPACE)
476 #define Od_iswspace(ch) iswspace(ch)
481 #define Od_isdigit(ch) isdigit(ch)
485 #if defined(_MSC_VER) && (_MSC_VER <= 1310)
486 #define Od_iswdigit(ch) iswctype(ch,_DIGIT)
488 #define Od_iswdigit(ch) iswdigit(ch)
493 #if (defined(sgi) || defined(_AIX) || defined(sparc)) && !defined(__GNUC__)
494 #define TD_NEED_SWFNS
496 #if defined(TD_NEED_SWFNS) || defined(__APPLE__) || defined(EMCC)// #7324
497 #define TD_NEED_SWFNS_SCANF
499 #if defined(TD_NEED_SWFNS) || defined(__APPLE__) || defined(__hpux) || defined(ANDROID) || defined(EMCC) || defined(ODA_WINDOWS_GCC) // #7324 & #8357 & #9786
500 #define TD_NEED_SWFNS_PRINTF
504 #if defined(TD_NEED_SWFNS_SCANF)
506 #include "../../ThirdParty/wchar/wchar_.h"
514 inline int ddswscanf(
const wchar_t*
buffer,
const wchar_t*
format, ...)
517 va_start(argList,
format);
522 #define odSScanf ddswscanf
525 #define odSScanf swscanf_s
527 #define odSScanf swscanf
533 #if defined(ODA_WINDOWS)
534 #define odSprintf _snwprintf
535 #elif defined(TD_NEED_SWFNS_PRINTF)
539 extern std::wstring Od_vswprintfV(
const wchar_t* lpszFormat, va_list argList);
543 va_start(argList,
format);
544 std::wstring ws = Od_vswprintfV(
format, argList);
546 int toCopy = ws.length() <
count - 1 ? ws.length() :
count - 1;
551 #define odSprintf ddswprintf
553 #define odSprintf swprintf
558 #if defined(ODA_WINDOWS)
559 #define odSprintfA _snprintf
561 #define odSprintfA snprintf
566 #if defined (ODA_WINDOWS) && !defined(_WIN32_WCE)
567 #define odStrToF _wtof
573 return wcstod(str, &endptr);
575 #define odStrToF Od_wtof
593 #define OD_BSEARCH ::bsearch
597 #define TD_USING(a) using a
600 #ifndef OD_LINKEDARRAY_SCOPE
601 #define OD_LINKEDARRAY_SCOPE
605 #ifdef TD_NEED_WCSSTR
607 extern wchar_t *wcsstr(
const wchar_t* wcs1,
const wchar_t* wcs2);
609 #define odStrStr ::wcsstr
613 #define OD_MAKEWORD(a, b) ((OdUInt16)(((OdUInt8)(a)) | ((OdUInt16)((OdUInt8)(b))) << 8))
614 #define OD_MAKELONG(a, b) ((OdInt32)(((OdUInt16)(a)) | ((OdUInt32)((OdUInt16)(b))) << 16))
615 #define OD_LOWORD(l) ((OdUInt16)(l))
616 #define OD_HIWORD(l) ((OdUInt16)(((OdUInt32)(l) >> 16) & 0xFFFF))
617 #define OD_LOBYTE(w) ((OdUInt8)(w))
618 #define OD_HIBYTE(w) ((OdUInt8)(((OdUInt16)(w) >> 8) & 0xFF))
648 tmp = p[0]; p[0] = p[3]; p[3] = tmp;
649 tmp = p[1]; p[1] = p[2]; p[2] = tmp;
652 #if OD_SIZEOF_LONG == 4
675 #define odSwapInt64(n)
679 #define odSwap2BytesNumber(n)
680 #define odSwap4BytesNumber(n)
681 #define odSwap8Bytes(bytes)
682 #define odSwap4Bytes(bytes)
692 #endif // ODA_BIGENDIAN
701 int nExponent = (buf[0] & 0x7F) << 4 | (buf[1] & 0xF0) >> 4;
703 int nExponent = (buf[7] & 0x7F) << 4 | (buf[6] & 0xF0) >> 4;
721 ::memset((
void*)pD, 0,
sizeof(
double));
726 #define OD_INT8_FROM_BUFFPTR(pBuffPtr) *(pBuffPtr++)
731 low |= ((
OdUInt32)*pBuffPtr++) << 8;
732 low |= ((
OdUInt32)*pBuffPtr++) << 16;
733 low |= ((
OdUInt32)*pBuffPtr++) << 24;
736 high |= ((
OdUInt32)*pBuffPtr++) << 8;
737 high |= ((
OdUInt32)*pBuffPtr++) << 16;
738 high |= ((
OdUInt32)*pBuffPtr++) << 24;
746 #define OD_BYTES_FROM_BUFFPTR(pBuffPtr, ResBuff, nCount) (pBuffPtr+=nCount, ::memcpy(ResBuff, pBuffPtr-nCount, nCount))
748 #define OD_INT8_TO_BUFFPTR(pBuffPtr, val) (++pBuffPtr, pBuffPtr[-1] = OdUInt8(val))
749 #define OD_BYTES_TO_BUFFPTR(pBuffPtr, FromBuff, nCount) (pBuffPtr+=nCount, ::memcpy(pBuffPtr-nCount, FromBuff, nCount))
753 #ifndef ODA_BIGENDIAN
755 #ifdef TD_STRICT_ALIGNMENT
757 #if defined(_WIN32_WCE)
758 #define VISIBILITY_ATTR FIRSTDLL_EXPORT
759 FIRSTDLL_EXPORT void *bsearch(
const void *key,
const void *base,
size_t numeles,
size_t widthele,
int(__cdecl *cfunc)(
const void *elem1,
const void *elem2));
761 #define VISIBILITY_ATTR extern
764 VISIBILITY_ATTR
double getStrictDouble(
OdUInt8** ppBuff);
765 VISIBILITY_ATTR
void setStrictDouble(
OdUInt8** ppBuff,
double d);
766 VISIBILITY_ATTR
void setStrictInt16(
OdUInt8** ppBuff,
OdInt16 val);
767 VISIBILITY_ATTR
void setStrictInt32(
OdUInt8** ppBuff,
OdInt32 val);
768 VISIBILITY_ATTR
void setStrictInt64(
OdUInt8** ppBuff,
OdInt64 val);
770 #define OD_INT16_FROM_BUFFPTR(pBuffPtr) (pBuffPtr += 2, (OdInt16)( *(pBuffPtr - 2) \
771 | (*(pBuffPtr - 1) << 8)))
772 #define OD_INT32_FROM_BUFFPTR(pBuffPtr) (pBuffPtr += 4, (OdInt32)( *(pBuffPtr - 4) \
773 | (*(pBuffPtr - 3) << 8) \
774 | (*(pBuffPtr - 2) << 16) \
775 | (*(pBuffPtr - 1) << 24)))
777 #define OD_INT64_FROM_BUFFPTR(pBuffPtr) (pBuffPtr += 8, (OdInt64)( *(pBuffPtr - 8) \
778 | (OdInt64(*(pBuffPtr - 7)) << 8) \
779 | (OdInt64(*(pBuffPtr - 6)) << 16) \
780 | (OdInt64(*(pBuffPtr - 5)) << 24) \
781 | (OdInt64(*(pBuffPtr - 4)) << 32) \
782 | (OdInt64(*(pBuffPtr - 3)) << 40) \
783 | (OdInt64(*(pBuffPtr - 2)) << 48) \
784 | (OdInt64(*(pBuffPtr - 1)) << 56)))
786 #define OD_DOUBLE_FROM_BUFFPTR(pBuffPtr) getStrictDouble(&pBuffPtr)
788 #define OD_INT16_TO_BUFFPTR(pBuffPtr, val) setStrictInt16(&pBuffPtr, val)
789 #define OD_INT32_TO_BUFFPTR(pBuffPtr, val) setStrictInt32(&pBuffPtr, val)
790 #define OD_INT64_TO_BUFFPTR(pBuffPtr, val) setStrictInt64(&pBuffPtr, val)
792 #define OD_DOUBLE_TO_BUFFPTR(pBuffPtr, val) setStrictDouble(&pBuffPtr, val)
804 #define OD_INT16_FROM_BUFFPTR(pBuffPtr) (pBuffPtr += 2, *((OdInt16*)(pBuffPtr - 2)))
805 #define OD_INT32_FROM_BUFFPTR(pBuffPtr) (pBuffPtr += 4, *((OdInt32*)(pBuffPtr - 4)))
806 #define OD_INT64_FROM_BUFFPTR(pBuffPtr) (pBuffPtr += 8, *((OdInt64*)(pBuffPtr - 8)))
808 #define OD_DOUBLE_FROM_BUFFPTR(pBuffPtr) getValidDouble(&pBuffPtr)
811 #define OD_INT16_TO_BUFFPTR(pBuffPtr, val) (pBuffPtr+=2, *((OdInt16*)(pBuffPtr-2)) = OdInt16(val))
812 #define OD_INT32_TO_BUFFPTR(pBuffPtr, val) (pBuffPtr+=4, *((OdInt32*)(pBuffPtr-4)) = OdInt32(val))
813 #define OD_INT64_TO_BUFFPTR(pBuffPtr, val) (pBuffPtr+=8, *((OdInt64*)(pBuffPtr-8)) = OdInt64(val))
815 #define OD_DOUBLE_TO_BUFFPTR(pBuffPtr, val) (pBuffPtr+=8, *((double*)(pBuffPtr-8)) = double(val))
818 #endif // TD_STRICT_ALIGNMENT
824 extern double getBeDouble(
OdUInt8** ppBuff);
829 extern void setBeDouble(
OdUInt8** ppBuff,
double d);
837 #define OD_INT16_FROM_BUFFPTR(pBuffPtr) (pBuffPtr += 2, (OdInt16)( *(pBuffPtr - 2) \
838 | (*(pBuffPtr - 1) << 8)))
839 #define OD_INT32_FROM_BUFFPTR(pBuffPtr) (pBuffPtr += 4, (OdInt32)( *(pBuffPtr - 4) \
840 | (*(pBuffPtr - 3) << 8) \
841 | (*(pBuffPtr - 2) << 16) \
842 | (*(pBuffPtr - 1) << 24)))
843 #define OD_INT64_FROM_BUFFPTR(pBuffPtr) (pBuffPtr += 8, (OdInt64)( *(pBuffPtr - 8) \
844 | (((OdInt64)(*(pBuffPtr - 7))) << 8) \
845 | (((OdInt64)(*(pBuffPtr - 6))) << 16) \
846 | (((OdInt64)(*(pBuffPtr - 5))) << 24) \
847 | (((OdInt64)(*(pBuffPtr - 4))) << 32) \
848 | (((OdInt64)(*(pBuffPtr - 3))) << 40) \
849 | (((OdInt64)(*(pBuffPtr - 2))) << 48) \
850 | (((OdInt64)(*(pBuffPtr - 1))) << 56)))
852 #define OD_DOUBLE_FROM_BUFFPTR(pBuffPtr) getBeDouble(&pBuffPtr)
855 #define OD_INT16_TO_BUFFPTR(pBuffPtr, val) setStrictInt16(&pBuffPtr, val)
856 #define OD_INT32_TO_BUFFPTR(pBuffPtr, val) setStrictInt32(&pBuffPtr, val)
857 #define OD_INT64_TO_BUFFPTR(pBuffPtr, val) setStrictInt64(&pBuffPtr, val)
859 #define OD_DOUBLE_TO_BUFFPTR(pBuffPtr, val) setBeDouble(&pBuffPtr, val)
862 #endif // ODA_BIGENDIAN
865 #if defined(ODA_WINDOWS)
870 #if defined(_WIN32) && !defined(WIN64) && !defined(_WINRT)
872 #define ODCOLORREF COLORREF
873 #define ODRGB(r,g,b) RGB(r,g,b)
874 #define ODRGBA(r,g,b,a) (((ODCOLORREF)ODRGB(r,g,b))|(((DWORD)(BYTE)(a))<<24))
875 #define ODGETRED(rgb) GetRValue(rgb)
876 #define ODGETGREEN(rgb) GetGValue(rgb)
877 #define ODGETBLUE(rgb) GetBValue(rgb)
878 #define ODGETALPHA(rgba) ((BYTE)((rgba)>>24))
881 #else //#ifdef _WIN32
883 #define ODCOLORREF OdUInt32
884 #define ODRGB(r,g,b) ((ODCOLORREF)(((OdUInt8)(r)|((OdUInt16)((OdUInt8)(g))<<8))|(((OdUInt32)(OdUInt8)(b))<<16)))
885 #define ODRGBA(r,g,b,a) (((ODCOLORREF)ODRGB(r,g,b))|(((OdUInt32)(OdUInt8)(a))<<24))
887 #define ODGETRED(rgb) ((OdUInt8)(rgb))
888 #define ODGETGREEN(rgb) ((OdUInt8)(((OdUInt16)(rgb)) >> 8))
889 #define ODGETBLUE(rgb) ((OdUInt8)((rgb)>>16))
890 #define ODGETALPHA(rgba) ((OdUInt8)((rgba)>>24))
899 #if (!defined(WIN64) && !defined(ODA_WINDOWS_GCC)) || defined(_WINRT)
902 #ifndef RGBQUAD_DEFINED
903 #define RGBQUAD_DEFINED
926 #ifndef BITMAPINFOHEADER_DEFINED
927 #define BITMAPINFOHEADER_DEFINED
1000 #ifndef BITMAPINFO_DEFINED
1001 #define BITMAPINFO_DEFINED
1007 #endif //BITMAPINFO_DEFINED
1010 #ifndef BITMAPFILEHEADER_DEFINED
1011 #define BITMAPFILEHEADER_DEFINED
1015 #pragma pack(push,2)
1035 #endif //#ifndef WIN64
1036 #endif //#ifdef _WIN32
1040 #define CLSID OdGUID
1044 #define ODTOCMCOLOR(colorref) OdCmEntityColor( ODGETRED(colorref), ODGETGREEN(colorref), ODGETBLUE(colorref) )
1045 #define ODTOCOLORREF(cmColor) ODRGB( cmColor.red(), cmColor.green(), cmColor.blue() )
1052 #if defined(_TOOLKIT_IN_DLL_) && defined(__GNUC__) && defined(__APPLE__) // GNU compiler MacOS X
1054 #include <mach-o/dyld.h>
1057 # define RTLD_LAZY 0x1
1060 # define RTLD_NOW 0x2
1063 # define RTLD_LOCAL 0x4
1065 # ifndef RTLD_GLOBAL
1066 # define RTLD_GLOBAL 0x8
1068 # ifndef RTLD_NOLOAD
1069 # define RTLD_NOLOAD 0x10
1071 # ifndef RTLD_NODELETE
1072 # define RTLD_NODELETE 0x80
1076 void* LoadSharedLibrary(
const OdString& path,
int mode = 2);
1077 void *GetFunction(
void *handle,
char *symbol);
1078 bool FreeSharedLibrary(
void *handle);
1080 #endif //defined(__GNUC__) && defined(__APPLE__) // GNU compiler MacOS X
1082 #if defined(_TOOLKIT_IN_DLL_) && defined(__GNUC__) && !defined(__APPLE__) // GNU compiler Linux
1086 #endif // defined(_TOOLKIT_IN_DLL_) && defined(__GNUC__) && !defined(__APPLE__) // GNU compiler Linux
1095 #endif // _OD_PLATFORM_H_
OdUInt32 bV4V4Compression
ODA_ASSUME(sizeof(OdRxValue)==32)
void swap(signal< Handler, SignalTraits, Allocator > &lhs, signal< Handler, SignalTraits, Allocator > &rhs)
BITMAPINFOHEADER bmiHeader
GLint GLint GLint GLsizei GLsizei GLenum format
CIEXYZTRIPLE bV4Endpoints