/* Copyright (C) 2006-2009 Charlie C & Erwin Coumans http://gamekit.googlecode.com * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages * arising from the use of this software. * * Permission is granted to anyone to use this software for any purpose, * including commercial applications, and to alter it and redistribute it * freely, subject to the following restrictions: * * 1. The origin of this software must not be misrepresented; you must not * claim that you wrote the original software. If you use this software * in a product, an acknowledgment in the product documentation would be * appreciated but is not required. * 2. Altered source versions must be plainly marked as such, and must not be * misrepresented as being the original software. * 3. This notice may not be removed or altered from any source distribution. */ #ifndef __B_DEFINES_H__ #define __B_DEFINES_H__ // MISC defines, see BKE_global.h, BKE_utildefines.h #define B3_SIZEOFBLENDERHEADER 12 // ------------------------------------------------------------ #if defined(__sgi) || defined(__sparc) || defined(__sparc__) || defined(__PPC__) || defined(__ppc__) || defined(__BIG_ENDIAN__) #define B3_MAKE_ID(a, b, c, d) ((int)(a) << 24 | (int)(b) << 16 | (c) << 8 | (d)) #else #define B3_MAKE_ID(a, b, c, d) ((int)(d) << 24 | (int)(c) << 16 | (b) << 8 | (a)) #endif // ------------------------------------------------------------ #if defined(__sgi) || defined(__sparc) || defined(__sparc__) || defined(__PPC__) || defined(__ppc__) || defined(__BIG_ENDIAN__) #define B3_MAKE_ID2(c, d) ((c) << 8 | (d)) #else #define B3_MAKE_ID2(c, d) ((d) << 8 | (c)) #endif // ------------------------------------------------------------ #define B3_ID_SCE B3_MAKE_ID2('S', 'C') #define B3_ID_LI B3_MAKE_ID2('L', 'I') #define B3_ID_OB B3_MAKE_ID2('O', 'B') #define B3_ID_ME B3_MAKE_ID2('M', 'E') #define B3_ID_CU B3_MAKE_ID2('C', 'U') #define B3_ID_MB B3_MAKE_ID2('M', 'B') #define B3_ID_MA B3_MAKE_ID2('M', 'A') #define B3_ID_TE B3_MAKE_ID2('T', 'E') #define B3_ID_IM B3_MAKE_ID2('I', 'M') #define B3_ID_IK B3_MAKE_ID2('I', 'K') #define B3_ID_WV B3_MAKE_ID2('W', 'V') #define B3_ID_LT B3_MAKE_ID2('L', 'T') #define B3_ID_SE B3_MAKE_ID2('S', 'E') #define B3_ID_LF B3_MAKE_ID2('L', 'F') #define B3_ID_LA B3_MAKE_ID2('L', 'A') #define B3_ID_CA B3_MAKE_ID2('C', 'A') #define B3_ID_IP B3_MAKE_ID2('I', 'P') #define B3_ID_KE B3_MAKE_ID2('K', 'E') #define B3_ID_WO B3_MAKE_ID2('W', 'O') #define B3_ID_SCR B3_MAKE_ID2('S', 'R') #define B3_ID_VF B3_MAKE_ID2('V', 'F') #define B3_ID_TXT B3_MAKE_ID2('T', 'X') #define B3_ID_SO B3_MAKE_ID2('S', 'O') #define B3_ID_SAMPLE B3_MAKE_ID2('S', 'A') #define B3_ID_GR B3_MAKE_ID2('G', 'R') #define B3_ID_ID B3_MAKE_ID2('I', 'D') #define B3_ID_AR B3_MAKE_ID2('A', 'R') #define B3_ID_AC B3_MAKE_ID2('A', 'C') #define B3_ID_SCRIPT B3_MAKE_ID2('P', 'Y') #define B3_ID_FLUIDSIM B3_MAKE_ID2('F', 'S') #define B3_ID_NT B3_MAKE_ID2('N', 'T') #define B3_ID_BR B3_MAKE_ID2('B', 'R') #define B3_ID_SEQ B3_MAKE_ID2('S', 'Q') #define B3_ID_CO B3_MAKE_ID2('C', 'O') #define B3_ID_PO B3_MAKE_ID2('A', 'C') #define B3_ID_NLA B3_MAKE_ID2('N', 'L') #define B3_ID_VS B3_MAKE_ID2('V', 'S') #define B3_ID_VN B3_MAKE_ID2('V', 'N') // ------------------------------------------------------------ #define B3_FORM B3_MAKE_ID('F', 'O', 'R', 'M') #define B3_DDG1 B3_MAKE_ID('3', 'D', 'G', '1') #define B3_DDG2 B3_MAKE_ID('3', 'D', 'G', '2') #define B3_DDG3 B3_MAKE_ID('3', 'D', 'G', '3') #define B3_DDG4 B3_MAKE_ID('3', 'D', 'G', '4') #define B3_GOUR B3_MAKE_ID('G', 'O', 'U', 'R') #define B3_BLEN B3_MAKE_ID('B', 'L', 'E', 'N') #define B3_DER_ B3_MAKE_ID('D', 'E', 'R', '_') #define B3_V100 B3_MAKE_ID('V', '1', '0', '0') #define B3_DATA B3_MAKE_ID('D', 'A', 'T', 'A') #define B3_GLOB B3_MAKE_ID('G', 'L', 'O', 'B') #define B3_IMAG B3_MAKE_ID('I', 'M', 'A', 'G') #define B3_TEST B3_MAKE_ID('T', 'E', 'S', 'T') #define B3_USER B3_MAKE_ID('U', 'S', 'E', 'R') // ------------------------------------------------------------ #define B3_DNA1 B3_MAKE_ID('D', 'N', 'A', '1') #define B3_REND B3_MAKE_ID('R', 'E', 'N', 'D') #define B3_ENDB B3_MAKE_ID('E', 'N', 'D', 'B') #define B3_NAME B3_MAKE_ID('N', 'A', 'M', 'E') #define B3_SDNA B3_MAKE_ID('S', 'D', 'N', 'A') #define B3_TYPE B3_MAKE_ID('T', 'Y', 'P', 'E') #define B3_TLEN B3_MAKE_ID('T', 'L', 'E', 'N') #define B3_STRC B3_MAKE_ID('S', 'T', 'R', 'C') // ------------------------------------------------------------ #define B3_SWITCH_INT(a) \ { \ char s_i, *p_i; \ p_i = (char *)&(a); \ s_i = p_i[0]; \ p_i[0] = p_i[3]; \ p_i[3] = s_i; \ s_i = p_i[1]; \ p_i[1] = p_i[2]; \ p_i[2] = s_i; \ } // ------------------------------------------------------------ #define B3_SWITCH_SHORT(a) \ { \ char s_i, *p_i; \ p_i = (char *)&(a); \ s_i = p_i[0]; \ p_i[0] = p_i[1]; \ p_i[1] = s_i; \ } // ------------------------------------------------------------ #define B3_SWITCH_LONGINT(a) \ { \ char s_i, *p_i; \ p_i = (char *)&(a); \ s_i = p_i[0]; \ p_i[0] = p_i[7]; \ p_i[7] = s_i; \ s_i = p_i[1]; \ p_i[1] = p_i[6]; \ p_i[6] = s_i; \ s_i = p_i[2]; \ p_i[2] = p_i[5]; \ p_i[5] = s_i; \ s_i = p_i[3]; \ p_i[3] = p_i[4]; \ p_i[4] = s_i; \ } #endif //__B_DEFINES_H__