Export 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. // The following symbol has a underscore suffix for compatibility.
  14. #ifndef OSGGA_EXPORT_
  15. #define OSGGA_EXPORT_ 1
  16. #include<osg/Config>
  17. #if defined(_MSC_VER) && defined(OSG_DISABLE_MSVC_WARNINGS)
  18. #pragma warning( disable : 4244 )
  19. #pragma warning( disable : 4251 )
  20. #pragma warning( disable : 4267 )
  21. #pragma warning( disable : 4275 )
  22. #pragma warning( disable : 4290 )
  23. #pragma warning( disable : 4786 )
  24. #pragma warning( disable : 4305 )
  25. #pragma warning( disable : 4996 )
  26. #endif
  27. #if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__) || defined( __BCPLUSPLUS__) || defined( __MWERKS__)
  28. # if defined( OSG_LIBRARY_STATIC )
  29. # define OSGGA_EXPORT
  30. # elif defined( OSGGA_LIBRARY )
  31. # define OSGGA_EXPORT __declspec(dllexport)
  32. # else
  33. # define OSGGA_EXPORT __declspec(dllimport)
  34. #endif
  35. #else
  36. #define OSGGA_EXPORT
  37. #endif
  38. #endif
  39. /**
  40. \namespace osgGA
  41. The 'GA' in osgGA stands for 'GUI Abstraction'; the osgGA namespace provides facilities to
  42. help developers write the glue to allow the osg to work with varying window systems.
  43. As a cross-platform, window system-agnostic class library, the OpenSceneGraph
  44. has no direct ties to any given windowing environment. Viewers, however, must at
  45. some level interact with a window system - where Window system may refer to a windowing
  46. API, e.g. GLUT, Qt, FLTK, MFC, ...
  47. There is much commonality in the implementation of Viewers for varying windowing
  48. environments. E.g. most Viewers will update a Camera position in response to a mouse
  49. event, and may request that a timer be started as a result of a model being 'spun'.
  50. The purpose of the osgGA namespace is to centralise the common areas of this
  51. functionality. The viewer writer needs then only write a GUIEventAdapter, a
  52. GUIActionAdapter, and assemble a collection of GUIEventHandlers
  53. as appropriate for the viewer.
  54. Events from the windowing environment are adpated, and then fed into the GUIEventHandlers.
  55. The GUIEventHandlers analyse and take action, and make requests of the windowing
  56. environment via the GUIActionAdapter. The viewer writer should then honour these
  57. requests, translating them into calls to the windowing API.
  58. */