1 // Avisynth C Interface Version 0.20 2 // Copyright 2003 Kevin Atkinson 3 4 // This program is free software; you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation; either version 2 of the License, or 7 // (at your option) any later version. 8 // 9 // This program is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with this program; if not, write to the Free Software 16 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA, or visit 17 // http://www.gnu.org/copyleft/gpl.html . 18 // 19 // As a special exception, I give you permission to link to the 20 // Avisynth C interface with independent modules that communicate with 21 // the Avisynth C interface solely through the interfaces defined in 22 // avisynth_c.h, regardless of the license terms of these independent 23 // modules, and to copy and distribute the resulting combined work 24 // under terms of your choice, provided that every copy of the 25 // combined work is accompanied by a complete copy of the source code 26 // of the Avisynth C interface and Avisynth itself (with the version 27 // used to produce the combined work), being distributed under the 28 // terms of the GNU General Public License plus this exception. An 29 // independent module is a module which is not derived from or based 30 // on Avisynth C Interface, such as 3rd-party filters, import and 31 // export plugins, or graphical user interfaces. 32 33 #ifndef AVS_CONFIG_H 34 #define AVS_CONFIG_H 35 36 // Undefine this to get cdecl calling convention 37 #define AVSC_USE_STDCALL 1 38 39 // NOTE TO PLUGIN AUTHORS: 40 // Because FRAME_ALIGN can be substantially higher than the alignment 41 // a plugin actually needs, plugins should not use FRAME_ALIGN to check for 42 // alignment. They should always request the exact alignment value they need. 43 // This is to make sure that plugins work over the widest range of AviSynth 44 // builds possible. 45 #define FRAME_ALIGN 32 46 47 #if defined(_M_AMD64) || defined(__x86_64) 48 # define X86_64 49 #elif defined(_M_IX86) || defined(__i386__) 50 # define X86_32 51 #else 52 # error Unsupported CPU architecture. 53 #endif 54 55 #if defined(_MSC_VER) 56 # define MSVC 57 #elif defined(__GNUC__) 58 # define GCC 59 #elif defined(__clang__) 60 # define CLANG 61 #else 62 # error Unsupported compiler. 63 #endif 64 65 #if defined(GCC) 66 # undef __forceinline 67 # define __forceinline inline 68 #endif 69 70 #endif //AVS_CONFIG_H 71