Export 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. #ifndef OSG_EXPORT_
  14. #define OSG_EXPORT_ 1
  15. #include<osg/Config>
  16. // disable VisualStudio warnings
  17. #if defined(_MSC_VER) && defined(OSG_DISABLE_MSVC_WARNINGS)
  18. #pragma warning( disable : 4244 )
  19. #pragma warning( disable : 4251 )
  20. #pragma warning( disable : 4275 )
  21. #pragma warning( disable : 4512 )
  22. #pragma warning( disable : 4267 )
  23. #pragma warning( disable : 4702 )
  24. #pragma warning( disable : 4511 )
  25. #endif
  26. #if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__) || defined( __BCPLUSPLUS__) || defined( __MWERKS__)
  27. # if defined( OSG_LIBRARY_STATIC )
  28. # define OSG_EXPORT
  29. # elif defined( OSG_LIBRARY )
  30. # define OSG_EXPORT __declspec(dllexport)
  31. # else
  32. # define OSG_EXPORT __declspec(dllimport)
  33. # endif
  34. #else
  35. # define OSG_EXPORT
  36. #endif
  37. // set up define for whether member templates are supported by VisualStudio compilers.
  38. #ifdef _MSC_VER
  39. # if (_MSC_VER >= 1300)
  40. # define __STL_MEMBER_TEMPLATES
  41. # endif
  42. #endif
  43. /* Define NULL pointer value */
  44. #ifndef NULL
  45. #ifdef __cplusplus
  46. #define NULL 0
  47. #else
  48. #define NULL ((void *)0)
  49. #endif
  50. #endif
  51. // helper macro's for quieten unused variable warnings
  52. #define OSG_UNUSED(VAR) (void)(VAR)
  53. #define OSG_UNUSED2(VAR1, VAR2) (void)(VAR1); (void)(VAR2);
  54. #define OSG_UNUSED3(VAR1, VAR2, VAR3) (void)(VAR1); (void)(VAR2); (void)(VAR2);
  55. #define OSG_UNUSED4(VAR1, VAR2, VAR3, VAR4) (void)(VAR1); (void)(VAR2); (void)(VAR3); (void)(VAR4);
  56. #define OSG_UNUSED5(VAR1, VAR2, VAR3, VAR4, VAR5) (void)(VAR1); (void)(VAR2); (void)(VAR3); (void)(VAR4); (void)(VAR5);
  57. /**
  58. \namespace osg
  59. The core osg library provides the basic scene graph classes such as Nodes,
  60. State and Drawables, and maths and general helper classes.
  61. */
  62. #endif