openscenegraph
osg/Export
Go to the documentation of this file.
1/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
2 *
3 * This library is open source and may be redistributed and/or modified under
4 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
5 * (at your option) any later version. The full license is in LICENSE file
6 * included with this distribution, and on the openscenegraph.org website.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * OpenSceneGraph Public License for more details.
12*/
13
14#ifndef OSG_EXPORT_
15#define OSG_EXPORT_ 1
16
17#include<osg/Config>
18
19// disable VisualStudio warnings
20#if defined(_MSC_VER) && defined(OSG_DISABLE_MSVC_WARNINGS)
21 #pragma warning( disable : 4244 )
22 #pragma warning( disable : 4251 )
23 #pragma warning( disable : 4275 )
24 #pragma warning( disable : 4512 )
25 #pragma warning( disable : 4267 )
26 #pragma warning( disable : 4702 )
27 #pragma warning( disable : 4511 )
28#endif
29
30#if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__) || defined( __BCPLUSPLUS__) || defined( __MWERKS__)
31 # if defined( OSG_LIBRARY_STATIC )
32 # define OSG_EXPORT
33 # elif defined( OSG_LIBRARY )
34 # define OSG_EXPORT __declspec(dllexport)
35 # else
36 # define OSG_EXPORT __declspec(dllimport)
37 # endif
38#else
39 # define OSG_EXPORT
40#endif
41
42// set up define for whether member templates are supported by VisualStudio compilers.
43#ifdef _MSC_VER
44# if (_MSC_VER >= 1300)
45# define __STL_MEMBER_TEMPLATES
46# endif
47#endif
48
49/* Define NULL pointer value */
50
51#ifndef NULL
52 #ifdef __cplusplus
53 #define NULL 0
54 #else
55 #define NULL ((void *)0)
56 #endif
57#endif
58
59// helper macro's for quieten unused variable warnings
60#define OSG_UNUSED(VAR) (void)(VAR)
61#define OSG_UNUSED2(VAR1, VAR2) (void)(VAR1); (void)(VAR2);
62#define OSG_UNUSED3(VAR1, VAR2, VAR3) (void)(VAR1); (void)(VAR2); (void)(VAR2);
63#define OSG_UNUSED4(VAR1, VAR2, VAR3, VAR4) (void)(VAR1); (void)(VAR2); (void)(VAR3); (void)(VAR4);
64#define OSG_UNUSED5(VAR1, VAR2, VAR3, VAR4, VAR5) (void)(VAR1); (void)(VAR2); (void)(VAR3); (void)(VAR4); (void)(VAR5);
65
66/**
67
68\namespace osg
69
70The core osg library provides the basic scene graph classes such as Nodes,
71State and Drawables, and maths and general helper classes.
72*/
73
74#endif
75