BsRenderer.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsPrerequisites.h"
  5. #include "BsCoreRenderer.h"
  6. namespace BansheeEngine
  7. {
  8. /** @addtogroup Renderer-Engine-Internal
  9. * @{
  10. */
  11. /** @copydoc CoreRenderer */
  12. class BS_EXPORT Renderer : public CoreRenderer
  13. {
  14. public:
  15. virtual ~Renderer() { }
  16. /**
  17. * Called whenever a new renderable is created.
  18. *
  19. * @note Core thread.
  20. */
  21. virtual void notifyRenderableAdded(RenderableCore* renderable) { }
  22. /**
  23. * Called whenever a renderable is updated.
  24. *
  25. * @note Core thread.
  26. */
  27. virtual void notifyRenderableUpdated(RenderableCore* renderable) { }
  28. /**
  29. * Called whenever a renderable is destroyed.
  30. *
  31. * @note Core thread.
  32. */
  33. virtual void notifyRenderableRemoved(RenderableCore* renderable) { }
  34. /**
  35. * Called whenever a new light is created.
  36. *
  37. * @note Core thread.
  38. */
  39. virtual void notifyLightAdded(LightCore* light) { }
  40. /**
  41. * Called whenever a light is updated.
  42. *
  43. * @note Core thread.
  44. */
  45. virtual void notifyLightUpdated(LightCore* light) { }
  46. /**
  47. * Called whenever a light is destroyed.
  48. *
  49. * @note Core thread.
  50. */
  51. virtual void notifyLightRemoved(LightCore* light) { }
  52. };
  53. /** Provides easy access to Renderer. */
  54. SPtr<Renderer> BS_EXPORT gRenderer();
  55. /** @} */
  56. }